aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar MarkKoz <[email protected]>2021-12-26 20:42:07 -0800
committerGravatar MarkKoz <[email protected]>2021-12-26 20:42:07 -0800
commit856bc7ccb370d7c7a5a2c717654c7c1a1c431788 (patch)
tree547d13f38f3fe7920f5972f18ede4bddc188ed72
parentCI: 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.yaml14
-rw-r--r--.github/workflows/deploy.yaml7
-rw-r--r--.github/workflows/lint.yaml7
-rw-r--r--.github/workflows/main.yaml3
-rw-r--r--.github/workflows/test.yaml7
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