@@ -311,17 +311,57 @@ undeploy-c9s-%-c9s-python-3.9: bin/kubectl
311
311
$(info # Undeploying notebook from $(NOTEBOOK_DIR ) directory...)
312
312
$(KUBECTL_BIN ) delete -k $(NOTEBOOK_DIR )
313
313
314
- # Check if the notebook is ready by pinging the /api endpoint
314
+ # Verify the notebook's readiness by pinging the /api endpoint and executing the corresponding test_notebook.ipynb file in accordance with the build chain logic.
315
315
.PHONY : test
316
316
test-% : bin/kubectl
317
317
$(eval NOTEBOOK_NAME := $(subst .,-,$(subst cuda-,,$* ) ) )
318
318
$(info # Running tests for $(NOTEBOOK_NAME ) notebook...)
319
- $(KUBECTL_BIN ) wait --for=condition=ready pod -l app=$(NOTEBOOK_NAME ) --timeout=600s
320
- $(KUBECTL_BIN ) port-forward svc/$(NOTEBOOK_NAME ) -notebook 8888:8888 &
321
- curl --retry 5 --retry-delay 5 --retry-connrefused \
322
- http://localhost:8888/notebook/opendatahub/jovyan/api; EXIT_CODE=$$? ; echo && \
323
- pkill --full " ^$( KUBECTL_BIN) .*port-forward.*" ; \
324
- exit $$ {EXIT_CODE}
319
+ $(KUBECTL_BIN ) wait --for=condition=ready pod -l app=$(NOTEBOOK_NAME ) --timeout=300s
320
+ $(KUBECTL_BIN ) port-forward svc/$(NOTEBOOK_NAME ) -notebook 8888:8888 & curl --retry 5 --retry-delay 5 --retry-connrefused http://localhost:8888/notebook/opendatahub/jovyan/api ; EXIT_CODE=$$? ; echo && pkill --full " ^$( KUBECTL_BIN) .*port-forward.*" ; \
321
+ $(eval FULL_NOTEBOOK_NAME = $(shell ($(KUBECTL_BIN ) get pods -l app=$(NOTEBOOK_NAME ) -o custom-columns=":metadata.name" | tr -d '\n') ) )
322
+ echo " => Checking $( FULL_NOTEBOOK_NAME) notebook execution..." ; \
323
+ $(KUBECTL_BIN ) exec $(FULL_NOTEBOOK_NAME ) -- /bin/sh -c " python3 -m pip install papermill" ; \
324
+ if echo " $( FULL_NOTEBOOK_NAME) " | grep -q " minimal-ubi9" ; then \
325
+ $(KUBECTL_BIN ) exec $(FULL_NOTEBOOK_NAME ) -- /bin/sh -c " wget https://raw.githubusercontent.com/opendatahub-io/notebooks/main/jupyter/minimal/ubi9-python-3.9/test/test_notebook.ipynb -O test_notebook.ipynb && python3 -m papermill test_notebook.ipynb minimal_ubi9_output.ipynb --kernel python3 > /dev/null" ; \
326
+ elif echo " $( FULL_NOTEBOOK_NAME) " | grep -q " datascience-ubi9" ; then \
327
+ $(MAKE ) validate-ubi9-datascience -e FULL_NOTEBOOK_NAME=$(FULL_NOTEBOOK_NAME ) ; \
328
+ elif echo " $( FULL_NOTEBOOK_NAME) " | grep -q " pytorch-ubi9" ; then \
329
+ $(MAKE ) validate-ubi9-datascience -e FULL_NOTEBOOK_NAME=$(FULL_NOTEBOOK_NAME ) ; \
330
+ $(KUBECTL_BIN ) exec $(FULL_NOTEBOOK_NAME ) -- /bin/sh -c " wget https://raw.githubusercontent.com/opendatahub-io/notebooks/main/jupyter/pytorch/ubi9-python-3.9/test/test_notebook.ipynb -O test_notebook.ipynb && python3 -m papermill test_notebook.ipynb pytorch_ubi9_output.ipynb --kernel python3 > /dev/null" ; \
331
+ elif echo " $( FULL_NOTEBOOK_NAME) " | grep -q " tensorflow-ubi9" ; then \
332
+ $(MAKE ) validate-ubi9-datascience -e FULL_NOTEBOOK_NAME=$(FULL_NOTEBOOK_NAME ) ; \
333
+ $(KUBECTL_BIN ) exec $(FULL_NOTEBOOK_NAME ) -- /bin/sh -c " wget https://raw.githubusercontent.com/opendatahub-io/notebooks/main/jupyter/tensorflow/ubi9-python-3.9/test/test_notebook.ipynb -O test_notebook.ipynb && python3 -m papermill test_notebook.ipynb tensorflow_ubi9_output.ipynb --kernel python3 > /dev/null" ; \
334
+ elif echo " $( FULL_NOTEBOOK_NAME) " | grep -q " trustyai-ubi9" ; then \
335
+ $(MAKE ) validate-ubi9-datascience -e FULL_NOTEBOOK_NAME=$(FULL_NOTEBOOK_NAME ) ; \
336
+ $(KUBECTL_BIN ) exec $(FULL_NOTEBOOK_NAME ) -- /bin/sh -c " wget https://raw.githubusercontent.com/opendatahub-io/notebooks/main/jupyter/trustyai/ubi9-python-3.9/test/test_notebook.ipynb -O test_notebook.ipynb && python3 -m papermill test_notebook.ipynb trustyai_ubi9_output.ipynb --kernel python3 > /dev/null" ; \
337
+ elif echo " $( FULL_NOTEBOOK_NAME) " | grep -q " minimal-ubi8" ; then \
338
+ $(KUBECTL_BIN ) exec $(FULL_NOTEBOOK_NAME ) -- /bin/sh -c " wget https://raw.githubusercontent.com/opendatahub-io/notebooks/main/jupyter/minimal/ubi8-python-3.8/test/test_notebook.ipynb -O test_notebook.ipynb && python3 -m papermill test_notebook.ipynb minimal_ubi8_output.ipynb --kernel python3 > /dev/null" ; \
339
+ elif echo " $( FULL_NOTEBOOK_NAME) " | grep -q " datascience-ubi8" ; then \
340
+ $(MAKE ) validate-ubi8-datascience -e FULL_NOTEBOOK_NAME=$(FULL_NOTEBOOK_NAME ) ; \
341
+ elif echo " $( FULL_NOTEBOOK_NAME) " | grep -q " pytorch-ubi8" ; then \
342
+ $(MAKE ) validate-ubi8-datascience -e FULL_NOTEBOOK_NAME=$(FULL_NOTEBOOK_NAME ) ; \
343
+ $(KUBECTL_BIN ) exec $(FULL_NOTEBOOK_NAME ) -- /bin/sh -c " wget https://raw.githubusercontent.com/opendatahub-io/notebooks/main/jupyter/pytorch/ubi8-python-3.8/test/test_notebook.ipynb -O test_notebook.ipynb && python3 -m papermill test_notebook.ipynb pytorch_ubi8_output.ipynb --kernel python3 > /dev/null" ; \
344
+ elif echo " $( FULL_NOTEBOOK_NAME) " | grep -q " tensorflow-ubi8" ; then \
345
+ $(MAKE ) validate-ubi8-datascience -e FULL_NOTEBOOK_NAME=$(FULL_NOTEBOOK_NAME ) ; \
346
+ $(KUBECTL_BIN ) exec $(FULL_NOTEBOOK_NAME ) -- /bin/sh -c " wget https://raw.githubusercontent.com/opendatahub-io/notebooks/main/jupyter/tensorflow/ubi8-python-3.8/test/test_notebook.ipynb -O test_notebook.ipynb && python3 -m papermill test_notebook.ipynb tensorflow_ubi8_output.ipynb --kernel python3 > /dev/null" ; \
347
+ elif echo " $( FULL_NOTEBOOK_NAME) " | grep -q " trustyai-ubi8" ; then \
348
+ $(MAKE ) validate-ubi8-datascience -e FULL_NOTEBOOK_NAME=$(FULL_NOTEBOOK_NAME ) ; \
349
+ $(KUBECTL_BIN ) exec $(FULL_NOTEBOOK_NAME ) -- /bin/sh -c " wget https://raw.githubusercontent.com/opendatahub-io/notebooks/main/jupyter/trustyai/ubi8-python-3.8/test/test_notebook.ipynb -O test_notebook.ipynb && python3 -m papermill test_notebook.ipynb trustyai_ubi8_output.ipynb --kernel python3 > /dev/null" ; \
350
+ elif echo " $( FULL_NOTEBOOK_NAME) " | grep -q " anaconda" ; then \
351
+ echo " There is no test notebook implemented yet for Anaconda Notebook...." ; \
352
+ else \
353
+ echo " No matching condition found for $( FULL_NOTEBOOK_NAME) ." ; \
354
+ fi
355
+
356
+ .PHONY : validate-ubi9-datascience
357
+ validate-ubi9-datascience :
358
+ $(KUBECTL_BIN ) exec $(FULL_NOTEBOOK_NAME ) -- /bin/sh -c " wget https://raw.githubusercontent.com/opendatahub-io/notebooks/main/jupyter/minimal/ubi9-python-3.9/test/test_notebook.ipynb -O test_notebook.ipynb && python3 -m papermill test_notebook.ipynb minimal_ubi9_output.ipynb --kernel python3 > /dev/null" ; \
359
+ $(KUBECTL_BIN ) exec $(FULL_NOTEBOOK_NAME ) -- /bin/sh -c " wget https://raw.githubusercontent.com/opendatahub-io/notebooks/main/jupyter/datascience/ubi9-python-3.9/test/test_notebook.ipynb -O test_notebook.ipynb && python3 -m papermill test_notebook.ipynb datascience_ubi9_output.ipynb --kernel python3 > /dev/null" ; \
360
+
361
+ .PHONY : validate-ubi8-datascience
362
+ validate-ubi8-datascience :
363
+ $(KUBECTL_BIN ) exec $(FULL_NOTEBOOK_NAME ) -- /bin/sh -c " wget https://raw.githubusercontent.com/opendatahub-io/notebooks/main/jupyter/minimal/ubi8-python-3.8/test/test_notebook.ipynb -O test_notebook.ipynb && python3 -m papermill test_notebook.ipynb minimal_ubi8_output.ipynb --kernel python3 > /dev/null" ; \
364
+ $(KUBECTL_BIN ) exec $(FULL_NOTEBOOK_NAME ) -- /bin/sh -c " wget https://raw.githubusercontent.com/opendatahub-io/notebooks/main/jupyter/datascience/ubi8-python-3.8/test/test_notebook.ipynb -O test_notebook.ipynb && python3 -m papermill test_notebook.ipynb datascience_ubi8_output.ipynb --kernel python3 > /dev/null" ; \
325
365
326
366
# Validate that runtime image meets minimum criteria
327
367
# This validation is created from subset of https://github.com/elyra-ai/elyra/blob/9c417d2adc9d9f972de5f98fd37f6945e0357ab9/Makefile#L325
0 commit comments