From 540b8647bd581f92c87004c156ebb20748e818b2 Mon Sep 17 00:00:00 2001 From: Tim Daniel Metzler Date: Fri, 19 Apr 2024 16:33:30 +0200 Subject: [PATCH] Require image path in workflows and add code notebook --- .../workflows/build_and_push_all_images.yml | 75 ++++++++++++++----- .github/workflows/build_image.yml | 8 +- 2 files changed, 62 insertions(+), 21 deletions(-) diff --git a/.github/workflows/build_and_push_all_images.yml b/.github/workflows/build_and_push_all_images.yml index ed5cbf1..6f7694a 100644 --- a/.github/workflows/build_and_push_all_images.yml +++ b/.github/workflows/build_and_push_all_images.yml @@ -48,10 +48,11 @@ jobs: uses: ./.github/workflows/build_image.yml with: force_build: ${{ inputs.force_build }} - image_name: minimal-notebook registry: ${{ inputs.registry }} base_image_name: jupyter/minimal-notebook base_image_tag: notebook-6.5.4 + image_path: images/minimal-notebook + image_name: minimal-notebook image_tag: ${{ inputs.tag }} push: ${{ inputs.push }} secrets: inherit @@ -61,11 +62,12 @@ jobs: uses: ./.github/workflows/build_image.yml with: force_build: ${{ inputs.force_build || needs.minimal_notebook.outputs.did_build_image == 'true' }} - image_name: desktop-notebook - image_tag: ${{ inputs.tag }} registry: ${{ inputs.registry }} base_image_name: ${{ inputs.registry }}/digiklausur/docker-stacks/minimal-notebook base_image_tag: ${{ inputs.tag }} + image_path: images/desktop-notebook + image_name: desktop-notebook + image_tag: ${{ inputs.tag }} push: ${{ inputs.push }} secrets: inherit @@ -74,11 +76,12 @@ jobs: uses: ./.github/workflows/build_image.yml with: force_build: ${{ inputs.force_build || needs.desktop_notebook.outputs.did_build_image == 'true' }} - image_name: dbmain-notebook - image_tag: ${{ inputs.tag }} registry: ${{ inputs.registry }} base_image_name: ${{ inputs.registry }}/digiklausur/docker-stacks/desktop-notebook - base_image_tag: ${{ inputs.tag }} + base_image_tag: ${{ inputs.tag }} + image_path: images/dbmain-notebook + image_name: dbmain-notebook + image_tag: ${{ inputs.tag }} push: ${{ inputs.push }} secrets: inherit @@ -88,10 +91,10 @@ jobs: with: force_build: ${{ inputs.force_build || needs.dbmain_notebook.outputs.did_build_image == 'true' }} registry: ${{ inputs.registry }} - image_name: dbmain-notebook - image_tag: ${{ inputs.tag }} base_image_name: ${{ inputs.registry }}/digiklausur/docker-stacks/dbmain-notebook base_image_tag: ${{ inputs.tag }} + image_name: dbmain-notebook + image_tag: ${{ inputs.tag }} push: ${{ inputs.push }} e2xgrader_installation_source: ${{ inputs.e2xgrader_installation_source }} e2xgrader_version: ${{ inputs.e2xgrader_version }} @@ -103,11 +106,12 @@ jobs: uses: ./.github/workflows/build_image.yml with: force_build: ${{ inputs.force_build || needs.minimal_notebook.outputs.did_build_image == 'true' }} - image_name: datascience-notebook - image_tag: ${{ inputs.tag }} registry: ${{ inputs.registry }} base_image_name: ${{ inputs.registry }}/digiklausur/docker-stacks/minimal-notebook base_image_tag: ${{ inputs.tag }} + image_path: images/datascience-notebook + image_name: datascience-notebook + image_tag: ${{ inputs.tag }} push: ${{ inputs.push }} secrets: inherit @@ -132,11 +136,12 @@ jobs: uses: ./.github/workflows/build_image.yml with: force_build: ${{ inputs.force_build || needs.datascience_notebook.outputs.did_build_image == 'true' }} - image_name: sql-notebook - image_tag: ${{ inputs.tag }} registry: ${{ inputs.registry }} base_image_name: ${{ inputs.registry }}/digiklausur/docker-stacks/datascience-notebook - base_image_tag: ${{ inputs.tag }} + base_image_tag: ${{ inputs.tag }} + image_path: images/sql-notebook + image_name: sql-notebook + image_tag: ${{ inputs.tag }} push: ${{ inputs.push }} secrets: inherit @@ -156,16 +161,47 @@ jobs: e2xgrader_branch: ${{ inputs.e2xgrader_branch }} secrets: inherit - ml_notebook: + code_datascience_notebook: needs: [datascience_notebook] uses: ./.github/workflows/build_image.yml with: force_build: ${{ inputs.force_build || needs.datascience_notebook.outputs.did_build_image == 'true' }} - image_name: ml-notebook + registry: ${{ inputs.registry }} + base_image_name: ${{ inputs.registry }}/digiklausur/docker-stacks/datascience-notebook + base_image_tag: ${{ inputs.tag }} + image_path: images/code-notebook + image_name: datascience-notebook-code + image_tag: ${{ inputs.tag }} + push: ${{ inputs.push }} + secrets: inherit + + e2x_code_datascience_notebook: + needs: [code_datascience_notebook] + uses: ./.github/workflows/build_e2xgrader_images.yml + with: + force_build: ${{ inputs.force_build || needs.code_datascience_notebook.outputs.did_build_image == 'true' }} + registry: ${{ inputs.registry }} + image_name: datascience-notebook-code image_tag: ${{ inputs.tag }} + base_image_name: ${{ inputs.registry }}/digiklausur/docker-stacks/datasience-notebook-code + base_image_tag: ${{ inputs.tag }} + push: ${{ inputs.push }} + e2xgrader_installation_source: ${{ inputs.e2xgrader_installation_source }} + e2xgrader_version: ${{ inputs.e2xgrader_version }} + e2xgrader_branch: ${{ inputs.e2xgrader_branch }} + secrets: inherit + + ml_notebook: + needs: [datascience_notebook] + uses: ./.github/workflows/build_image.yml + with: + force_build: ${{ inputs.force_build || needs.datascience_notebook.outputs.did_build_image == 'true' }} registry: ${{ inputs.registry }} base_image_name: ${{ inputs.registry }}/digiklausur/docker-stacks/datascience-notebook - base_image_tag: ${{ inputs.tag }} + base_image_tag: ${{ inputs.tag }} + image_path: images/ml-notebook + image_name: ml-notebook + image_tag: ${{ inputs.tag }} push: ${{ inputs.push }} secrets: inherit @@ -190,11 +226,12 @@ jobs: uses: ./.github/workflows/build_image.yml with: force_build: ${{ inputs.force_build || needs.ml_notebook.outputs.did_build_image == 'true' }} - image_name: nlp-notebook - image_tag: ${{ inputs.tag }} registry: ${{ inputs.registry }} base_image_name: ${{ inputs.registry }}/digiklausur/docker-stacks/ml-notebook - base_image_tag: ${{ inputs.tag }} + base_image_tag: ${{ inputs.tag }} + image_path: images/nlp-notebook + image_name: nlp-notebook + image_tag: ${{ inputs.tag }} push: ${{ inputs.push }} secrets: inherit diff --git a/.github/workflows/build_image.yml b/.github/workflows/build_image.yml index 4672f4f..b28c2bc 100644 --- a/.github/workflows/build_image.yml +++ b/.github/workflows/build_image.yml @@ -43,6 +43,10 @@ on: type: string required: false default: latest + image_path: + description: The path to the Dockerfile and other files needed to build the image + type: string + required: true outputs: did_build_image: description: If the image was built @@ -67,7 +71,7 @@ jobs: with: filters: | image_changed: - images/${{ inputs.image_name }}/!(README.md) + ${{ inputs.image_path }}/!(README.md) base: ${{ github.ref }} - name: Login to ghcr.io if: ${{ inputs.registry == 'ghcr.io' }} @@ -88,7 +92,7 @@ jobs: id: build_image uses: docker/build-push-action@v5 with: - context: images/${{ inputs.image_name }} + context: ${{ inputs.image_path }} push: ${{ inputs.push }} tags: ${{ inputs.registry }}/digiklausur/docker-stacks/${{ inputs.image_name }}:${{ inputs.image_tag }} build-args: |