1
- name : e2e
1
+ name : Guided notebooks tests
2
2
3
3
on :
4
4
pull_request :
76
76
77
77
- name : Install NVidia GPU operator for KinD
78
78
uses : ./common/github-actions/nvidia-gpu-operator
79
+ with :
80
+ enable-time-slicing : ' true'
79
81
80
82
- name : Deploy CodeFlare stack
81
83
id : deploy
@@ -113,46 +115,70 @@ jobs:
113
115
kubectl create clusterrolebinding sdk-user-list-secrets --clusterrole=list-secrets --user=sdk-user
114
116
kubectl config use-context sdk-user
115
117
116
- - name : Run e2e tests
118
+ - name : Setup Guided notebooks execution
117
119
run : |
118
- export CODEFLARE_TEST_OUTPUT_DIR=${{ env.TEMP_DIR }}
119
- echo "CODEFLARE_TEST_OUTPUT_DIR=${CODEFLARE_TEST_OUTPUT_DIR}" >> $GITHUB_ENV
120
+ echo "Installing papermill and dependencies..."
121
+ pip install poetry papermill ipython ipykernel
122
+ # Disable virtualenv due to problems using packaged in virtualenv in papermill
123
+ poetry config virtualenvs.create false
120
124
121
- set -euo pipefail
122
- pip install poetry
125
+ echo "Installing SDK..."
123
126
poetry install --with test,docs
124
- echo "Running e2e tests..."
125
- poetry run pytest -v -s ./tests/e2e -m 'kind and nvidia_gpu' > ${CODEFLARE_TEST_OUTPUT_DIR}/pytest_output.log 2>&1
127
+
128
+ - name : Run 0_basic_ray.ipynb
129
+ run : |
130
+ set -euo pipefail
131
+
132
+ jq -r 'del(.cells[] | select(.source[] | contains("Create authentication object for user permissions")))' 0_basic_ray.ipynb > 0_basic_ray.ipynb.tmp && mv 0_basic_ray.ipynb.tmp 0_basic_ray.ipynb
133
+ jq -r 'del(.cells[] | select(.source[] | contains("auth.logout()")))' 0_basic_ray.ipynb > 0_basic_ray.ipynb.tmp && mv 0_basic_ray.ipynb.tmp 0_basic_ray.ipynb
134
+ poetry run papermill 0_basic_ray.ipynb 0_basic_ray_out.ipynb --log-output --execution-timeout 600
135
+ working-directory : demo-notebooks/guided-demos
136
+
137
+ - name : Run 1_cluster_job_client.ipynb
138
+ run : |
139
+ set -euo pipefail
140
+
141
+ jq -r 'del(.cells[] | select(.source[] | contains("Create authentication object for user permissions")))' 1_cluster_job_client.ipynb > 1_cluster_job_client.ipynb.tmp && mv 1_cluster_job_client.ipynb.tmp 1_cluster_job_client.ipynb
142
+ jq -r 'del(.cells[] | select(.source[] | contains("auth.logout()")))' 1_cluster_job_client.ipynb > 1_cluster_job_client.ipynb.tmp && mv 1_cluster_job_client.ipynb.tmp 1_cluster_job_client.ipynb
143
+ poetry run papermill 1_cluster_job_client.ipynb 1_cluster_job_client_out.ipynb --log-output --execution-timeout 600
126
144
env :
127
145
GRPC_DNS_RESOLVER : " native"
146
+ working-directory : demo-notebooks/guided-demos
128
147
129
148
- name : Switch to kind-cluster context to print logs
130
149
if : always() && steps.deploy.outcome == 'success'
131
150
run : kubectl config use-context kind-cluster
132
151
133
- - name : Print Pytest output log
152
+ - name : Print debug info
134
153
if : always() && steps.deploy.outcome == 'success'
135
154
run : |
136
- echo "Printing Pytest output logs "
137
- cat ${CODEFLARE_TEST_OUTPUT_DIR}/pytest_output.log
155
+ echo "Printing debug info "
156
+ kubectl describe pods -n default
138
157
139
158
- name : Print CodeFlare operator logs
140
159
if : always() && steps.deploy.outcome == 'success'
141
160
run : |
142
161
echo "Printing CodeFlare operator logs"
143
- kubectl logs -n openshift-operators --tail -1 -l app.kubernetes.io/name=codeflare-operator | tee ${CODEFLARE_TEST_OUTPUT_DIR}/codeflare-operator.log
162
+ kubectl logs -n openshift-operators --tail -1 -l app.kubernetes.io/name=codeflare-operator | tee ${TEMP_DIR}/codeflare-operator.log
163
+
164
+ - name : Print Kueue operator logs
165
+ if : always() && steps.deploy.outcome == 'success'
166
+ run : |
167
+ echo "Printing Kueue operator logs"
168
+ KUEUE_CONTROLLER_POD=$(kubectl get pods -n kueue-system | grep kueue-controller | awk '{print $1}')
169
+ kubectl logs -n kueue-system --tail -1 ${KUEUE_CONTROLLER_POD} | tee ${TEMP_DIR}/kueue.log
144
170
145
171
- name : Print KubeRay operator logs
146
172
if : always() && steps.deploy.outcome == 'success'
147
173
run : |
148
174
echo "Printing KubeRay operator logs"
149
- kubectl logs -n ray-system --tail -1 -l app.kubernetes.io/name=kuberay | tee ${CODEFLARE_TEST_OUTPUT_DIR }/kuberay.log
175
+ kubectl logs -n ray-system --tail -1 -l app.kubernetes.io/name=kuberay | tee ${TEMP_DIR }/kuberay.log
150
176
151
177
- name : Export all KinD pod logs
152
178
uses : ./common/github-actions/kind-export-logs
153
179
if : always() && steps.deploy.outcome == 'success'
154
180
with :
155
- output-directory : ${CODEFLARE_TEST_OUTPUT_DIR }
181
+ output-directory : ${TEMP_DIR }
156
182
157
183
- name : Upload logs
158
184
uses : actions/upload-artifact@v4
@@ -161,4 +187,4 @@ jobs:
161
187
name : logs
162
188
retention-days : 10
163
189
path : |
164
- ${{ env.CODEFLARE_TEST_OUTPUT_DIR }}/**/*.log
190
+ ${{ env.TEMP_DIR }}/**/*.log
0 commit comments