From 3ce067ee43d7bdac97677e7cfda9f5eb4edd2667 Mon Sep 17 00:00:00 2001 From: Mani Japra Date: Tue, 19 May 2026 13:33:58 -0400 Subject: [PATCH] fix(ci): include bash in docker image build matrix MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The bash language image was added in 3.5.0 but not registered in docker-publish.yml, so the 3.5.0 release built every other language image and skipped bash. Adds bash to the changes job outputs, the paths-filter, the per-language build job, and the retag job — same shape as every other language entry. Bootstrap note: the retag-bash job on the first release after this change will fail because no kubecoderun-bash image exists at the previous tag. After tagging, manually re-run "Docker Images Build" on the new tag with force_all=true to populate the missing image. Future releases will retag cleanly. --- .github/workflows/docker-publish.yml | 35 ++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml index 75759d9..532a63f 100644 --- a/.github/workflows/docker-publish.yml +++ b/.github/workflows/docker-publish.yml @@ -32,6 +32,7 @@ jobs: r: ${{ steps.filter.outputs.r }} fortran: ${{ steps.filter.outputs.fortran }} d: ${{ steps.filter.outputs.d }} + bash: ${{ steps.filter.outputs.bash }} force_all: ${{ github.event.inputs.force_all == 'true' }} image_tag: ${{ steps.tag.outputs.image_tag }} is_release: ${{ steps.tag.outputs.is_release }} @@ -102,6 +103,8 @@ jobs: - 'docker/fortran.Dockerfile' d: - 'docker/d.Dockerfile' + bash: + - 'docker/bash.Dockerfile' - name: Set image tag id: tag @@ -342,6 +345,23 @@ jobs: version: ${{ needs.changes.outputs.version }} runner_image: ${{ needs.changes.outputs.runner_image }} + bash: + needs: [changes, runner] + if: | + !failure() && !cancelled() && + needs.changes.outputs.is_cross_repo_pr != 'true' && + (needs.changes.outputs.bash == 'true' || needs.changes.outputs.runner == 'true' || needs.changes.outputs.force_all == 'true') + uses: ./.github/workflows/docker-build-reusable.yml + secrets: inherit + with: + image_name: kubecoderun-bash + dockerfile: docker/bash.Dockerfile + context: docker + image_tag: ${{ needs.changes.outputs.image_tag }} + is_release: ${{ needs.changes.outputs.is_release == 'true' }} + version: ${{ needs.changes.outputs.version }} + runner_image: ${{ needs.changes.outputs.runner_image }} + # ==================== Retag Unchanged Images (for releases) ==================== # These jobs run when an image didn't change but we still want it tagged with the new version @@ -537,3 +557,18 @@ jobs: image_name: kubecoderun-d new_tag: ${{ needs.changes.outputs.image_tag }} previous_tag: ${{ needs.changes.outputs.previous_tag }} + + retag-bash: + needs: changes + if: | + needs.changes.outputs.is_release == 'true' && + needs.changes.outputs.previous_tag != '' && + needs.changes.outputs.bash != 'true' && + needs.changes.outputs.runner != 'true' && + needs.changes.outputs.force_all != 'true' + uses: ./.github/workflows/docker-retag-reusable.yml + secrets: inherit + with: + image_name: kubecoderun-bash + new_tag: ${{ needs.changes.outputs.image_tag }} + previous_tag: ${{ needs.changes.outputs.previous_tag }}