From 95e9d8d72e892814927d854a4c4bb10eb9fb47fe Mon Sep 17 00:00:00 2001 From: Hayden Spitzley <105455169+hspitzley-czi@users.noreply.github.com> Date: Wed, 3 Jul 2024 14:44:45 -0600 Subject: [PATCH] feat: support build_args in argus docker builder workflow (#276) --- .github/workflows/argus-docker-build.yaml | 30 +++++++++++++---------- 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/.github/workflows/argus-docker-build.yaml b/.github/workflows/argus-docker-build.yaml index a56cf86d..6868d3d7 100644 --- a/.github/workflows/argus-docker-build.yaml +++ b/.github/workflows/argus-docker-build.yaml @@ -82,6 +82,17 @@ jobs: - uses: actions/checkout@v4 with: fetch-depth: 0 + - name: Get build tag + id: build-tags + run: | + echo "IMAGE_TAG=sha-$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT + - name: Validate build tag + id: validate_image_tag + uses: actions/github-script@v7 + with: + script: | + const imageTag = `${{ steps.build-tags.outputs.IMAGE_TAG }}`; + core.setOutput('image_tag_valid', imageTag !== '' && imageTag !== 'sha-'); - name: Parse inputs id: parse_inputs uses: actions/github-script@v7 @@ -92,6 +103,11 @@ jobs: core.setOutput('filters', filtersStr); const images = JSON.parse(`${{ inputs.images }}`); + images.forEach(image => { + const buildArgs = image.build_args || []; + image.build_args = ["IMAGE_TAG=${{ steps.build-tags.outputs.IMAGE_TAG }}", ...buildArgs].join("\n"); + }); + core.info(`Images to build: ${JSON.stringify(images, null, 2)}`); core.setOutput('images', images); const envs = `${{ inputs.envs }}`.split(',').map(env => env.trim()).filter(b => b.length > 0); @@ -105,17 +121,6 @@ jobs: ${{ steps.parse_inputs.outputs.filters }} base: ${{ inputs.path_filters_base }} list-files: json - - name: Get build tag - id: build-tags - run: | - echo "IMAGE_TAG=sha-$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT - - name: Validate build tag - id: validate_image_tag - uses: actions/github-script@v7 - with: - script: | - const imageTag = `${{ steps.build-tags.outputs.IMAGE_TAG }}`; - core.setOutput('image_tag_valid', imageTag !== '' && imageTag !== 'sha-'); build-docker: name: Build Docker Image @@ -172,8 +177,7 @@ jobs: registry: 533267185808.dkr.ecr.us-west-2.amazonaws.com custom_tag: ${{ env.IMAGE_TAG }} platforms: ${{ matrix.image.platform == 'linux/amd64' && 'linux/amd64' || 'linux/arm64' }} - build_args: IMAGE_TAG=${{ env.IMAGE_TAG }} - + build_args: ${{ matrix.image.build_args }} update-manifests: name: Update ArgoCD manifests needs: [prep, build-docker]