diff options
author | 2021-12-26 20:42:07 -0800 | |
---|---|---|
committer | 2021-12-26 20:42:07 -0800 | |
commit | 856bc7ccb370d7c7a5a2c717654c7c1a1c431788 (patch) | |
tree | 547d13f38f3fe7920f5972f18ede4bddc188ed72 | |
parent | CI: use buildx's integrated GH Actions cache feature (diff) |
CI: pass artefact name as an input to workflows
Make the artefact and file names identical to simplify things. The
artefact name doesn't have to be unique anyway since it can only be
downloaded by the same workflow run.
-rw-r--r-- | .github/workflows/build.yaml | 14 | ||||
-rw-r--r-- | .github/workflows/deploy.yaml | 7 | ||||
-rw-r--r-- | .github/workflows/lint.yaml | 7 | ||||
-rw-r--r-- | .github/workflows/main.yaml | 3 | ||||
-rw-r--r-- | .github/workflows/test.yaml | 7 |
5 files changed, 28 insertions, 10 deletions
diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index bd9bb55..e0bbdbe 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -3,15 +3,21 @@ name: Build image on: workflow_call: outputs: + artefact: + description: The name of the uploaded image aretfact. + value: ${{ jobs.build.outputs.artefact }} tag: - description: The tag used for the built image + description: The tag used for the built image. value: ${{ jobs.build.outputs.tag }} jobs: build: runs-on: ubuntu-latest outputs: + artefact: ${{ env.artefact }} tag: ${{ steps.sha_tag.outputs.tag }} + env: + artefact: image_artefact_snekbox-venv steps: # Create a short SHA with which to tag built images. @@ -72,7 +78,7 @@ jobs: push: false target: venv build-args: DEV=1 - outputs: type=docker,dest=image_artefact_snekbox-venv.tar + outputs: type=docker,dest=${{ env.artefact }}.tar cache-from: | ${{ steps.cache_config.outputs.cache_from }} ghcr.io/python-discord/snekbox-base:latest @@ -85,7 +91,7 @@ jobs: - name: Upload image archive as an artefact uses: actions/upload-artifact@v2 with: - name: image_artefact_snekbox-venv_${{ steps.sha_tag.outputs.tag }} - path: image_artefact_snekbox-venv.tar + name: ${{ env.artefact }} + path: ${{ env.artefact }}.tar retention-days: 1 # It's only needed for the duration of the workflow. if-no-files-found: error diff --git a/.github/workflows/deploy.yaml b/.github/workflows/deploy.yaml index a04cf86..4183917 100644 --- a/.github/workflows/deploy.yaml +++ b/.github/workflows/deploy.yaml @@ -3,6 +3,9 @@ name: Deploy & push images on: workflow_call: inputs: + artefact: + required: true + type: string tag: required: true type: string @@ -16,11 +19,11 @@ jobs: - name: Download image artefact uses: actions/download-artifact@v2 with: - name: image_artefact_snekbox-venv_${{ inputs.tag }} + name: ${{ inputs.artefact }} # Load the image to make use of common layers during the final build. - name: Load image from archive - run: docker load -i image_artefact_snekbox-venv.tar + run: docker load -i ${{ inputs.artefact }}.tar - name: Set up Docker Buildx uses: docker/setup-buildx-action@v1 diff --git a/.github/workflows/lint.yaml b/.github/workflows/lint.yaml index 585e8e4..111df54 100644 --- a/.github/workflows/lint.yaml +++ b/.github/workflows/lint.yaml @@ -3,6 +3,9 @@ name: Lint on: workflow_call: inputs: + artefact: + required: true + type: string tag: required: true type: string @@ -16,10 +19,10 @@ jobs: - name: Download image artefact uses: actions/download-artifact@v2 with: - name: image_artefact_snekbox-venv_${{ inputs.tag }} + name: ${{ inputs.artefact }} - name: Load image from archive - run: docker load -i image_artefact_snekbox-venv.tar + run: docker load -i ${{ inputs.artefact }}.tar # Needed for the Docker Compose file. - name: Checkout code diff --git a/.github/workflows/main.yaml b/.github/workflows/main.yaml index ef59f78..cc8a1e0 100644 --- a/.github/workflows/main.yaml +++ b/.github/workflows/main.yaml @@ -13,15 +13,18 @@ jobs: uses: ./.github/workflows/lint.yaml needs: build with: + artefact: ${{ needs.build.outputs.artefact }} tag: ${{ needs.build.outputs.tag }} test: uses: ./.github/workflows/test.yaml needs: build with: + artefact: ${{ needs.build.outputs.artefact }} tag: ${{ needs.build.outputs.tag }} deploy: uses: ./.github/workflows/deploy.yaml if: ${{ github.event_name != 'pull_request' && github.ref == 'refs/heads/main' }} needs: [build, lint, test] with: + artefact: ${{ needs.build.outputs.artefact }} tag: ${{ needs.build.outputs.tag }} diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index 05145d5..8a4078a 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -3,6 +3,9 @@ name: Test on: workflow_call: inputs: + artefact: + required: true + type: string tag: required: true type: string @@ -19,10 +22,10 @@ jobs: - name: Download image artefact uses: actions/download-artifact@v2 with: - name: image_artefact_snekbox-venv_${{ inputs.tag }} + name: ${{ inputs.artefact }} - name: Load image from archive - run: docker load -i image_artefact_snekbox-venv.tar + run: docker load -i ${{ inputs.artefact }}.tar # Needed for the Docker Compose file. - name: Checkout code |