From be2873c78af6ab74a2a33617a34ff751d4ad37a7 Mon Sep 17 00:00:00 2001 From: Ayaz Salikhov Date: Thu, 12 May 2022 16:55:02 +0300 Subject: [PATCH] Start adding platform support --- .github/workflows/build-docker.yml | 16 ++++++++++------ .github/workflows/sub-build-push-image.yml | 18 +++++++++++++----- .github/workflows/sub-test-image.yml | 11 +++++++++-- 3 files changed, 32 insertions(+), 13 deletions(-) diff --git a/.github/workflows/build-docker.yml b/.github/workflows/build-docker.yml index 790b2e06..fcdb58d0 100644 --- a/.github/workflows/build-docker.yml +++ b/.github/workflows/build-docker.yml @@ -49,27 +49,31 @@ concurrency: cancel-in-progress: true jobs: - build-base-notebook: + build-amd64-base-notebook: uses: ./.github/workflows/sub-build-push-image.yml with: - imageName: base-notebook parentImageName: "" + imageName: base-notebook + platform: amd64 - test-base-notebook: + test-amd64-base-notebook: needs: [build-base-notebook] uses: ./.github/workflows/sub-test-image.yml with: imageName: base-notebook + platform: amd64 - build-minimal-notebook: + build-amd64-minimal-notebook: needs: [build-base-notebook] uses: ./.github/workflows/sub-build-push-image.yml with: - imageName: minimal-notebook parentImageName: base-notebook + imageName: minimal-notebook + platform: amd64 - test-minimal-notebook: + test-amd64-minimal-notebook: needs: [build-minimal-notebook] uses: ./.github/workflows/sub-test-image.yml with: imageName: minimal-notebook + platform: amd64 diff --git a/.github/workflows/sub-build-push-image.yml b/.github/workflows/sub-build-push-image.yml index a0c2b6eb..1040cf73 100644 --- a/.github/workflows/sub-build-push-image.yml +++ b/.github/workflows/sub-build-push-image.yml @@ -11,6 +11,13 @@ on: description: "Parent image name" required: true type: string + platform: + description: "Target platform for the built image" + required: true + type: choice + options: + - amd64 + - arm64 jobs: build-push-image: @@ -25,12 +32,12 @@ jobs: if: ${{ inputs.parentImageName != '' }} uses: actions/download-artifact@v3 with: - name: ${{ inputs.parentImageName }} + name: ${{ inputs.parentImageName }}-${{ inputs.platform }} path: /tmp/ - name: Load downloaded image to docker 📥 if: ${{ inputs.parentImageName != '' }} run: | - docker load --input /tmp/${{ inputs.parentImageName }}.tar + docker load --input /tmp/${{ inputs.parentImageName }}-${{ inputs.platform }}.tar docker image ls -a shell: bash @@ -40,9 +47,10 @@ jobs: context: ${{ inputs.imageName }}/ file: ${{ inputs.imageName }}/Dockerfile tags: jupyter/${{ inputs.imageName }}:latest - outputs: type=docker,dest=/tmp/${{ inputs.imageName }}.tar + outputs: type=docker,dest=/tmp/${{ inputs.imageName }}-${{ inputs.platform }}.tar + platform: linux/${{ inputs.platform }} - name: Upload artifact 💾 uses: actions/upload-artifact@v3 with: - name: ${{ inputs.imageName }} - path: /tmp/${{ inputs.imageName }}.tar + name: ${{ inputs.imageName }}-${{ inputs.platform }} + path: /tmp/${{ inputs.imageName }}-${{ inputs.platform }}.tar diff --git a/.github/workflows/sub-test-image.yml b/.github/workflows/sub-test-image.yml index 5ba58c6c..3ef705bd 100644 --- a/.github/workflows/sub-test-image.yml +++ b/.github/workflows/sub-test-image.yml @@ -7,6 +7,13 @@ on: description: "Image name to be tested" required: true type: string + platform: + description: "Target platform for the built image" + required: true + type: choice + options: + - amd64 + - arm64 jobs: test-image: @@ -20,11 +27,11 @@ jobs: - name: Download built image 📥 uses: actions/download-artifact@v3 with: - name: ${{ inputs.imageName }} + name: ${{ inputs.imageName }}-${{ inputs.platform }} path: /tmp/ - name: Load downloaded image to docker 📥 run: | - docker load --input /tmp/${{ inputs.imageName }}.tar + docker load --input /tmp/${{ inputs.imageName }}-${{ inputs.platform }}.tar docker image ls -a shell: bash