Skip to content

fix(ci): include bash in docker image build matrix#64

Merged
aron-muon merged 1 commit into
aron-muon:mainfrom
mani-muon:mani/ci-include-bash-in-docker-publish
May 19, 2026
Merged

fix(ci): include bash in docker image build matrix#64
aron-muon merged 1 commit into
aron-muon:mainfrom
mani-muon:mani/ci-include-bash-in-docker-publish

Conversation

@mani-muon
Copy link
Copy Markdown
Contributor

Summary

Adds bash to docker-publish.yml's build matrix. The bash language image landed in #63 / 3.5.0 but the workflow's hardcoded matrix wasn't updated, so the 3.5.0 release built every other language image and skipped kubecoderun-bash. This patches the gap.

Fixes # (no existing issue — happy to file one if preferred)

Type of change

  • Bug fix (non-breaking change which fixes an issue)

What changed

Four parallel insertions in .github/workflows/docker-publish.yml, each mirroring the existing d (D-lang) entry:

  1. outputs.bash on the changes job
  2. bash: entry in the dorny/paths-filter filter list
  3. New bash: build job (calls docker-build-reusable.yml with kubecoderun-bash / docker/bash.Dockerfile)
  4. New retag-bash: job (calls docker-retag-reusable.yml)

Bootstrap caveat for the first release after merge

The next release's retag-bash job will fail because ghcr.io/aron-muon/kubecoderun-bash:3.5.0 doesn't exist for it to retag from. Workaround: after the tag is cut, manually re-run "Docker Images Build" on the new tag with force_all: true — that bypasses the change-detection filter and runs every build job (including bash), populating the missing image. Future releases retag cleanly because the image will exist at the previous tag.

If you'd prefer to avoid the manual rerun, I can add a small change to docker/bash.Dockerfile in this PR (e.g., LANG=C.UTF-8 / LC_ALL=C.UTF-8 in the ENTRYPOINT — a real ergonomics fix for non-ASCII output, which also has the side effect of making paths-filter detect bash as changed in the next release). Let me know.

How Has This Been Tested?

  • Diff matches the existing per-language pattern verbatim (built-by-substitution from the d: and retag-d: blocks)
  • Will validate end-to-end on next release tag

Checklist

  • My code follows the style guidelines of this project
  • I have performed a self-review of my own code
  • I have commented my code, particularly in hard-to-understand areas
  • I have made corresponding changes to the documentation
  • My changes generate no new warnings
  • I have added tests that prove my fix is effective or that my feature works
  • New and existing unit tests pass locally with my changes
  • Any dependent changes have been merged and published in downstream modules

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.
@mani-muon mani-muon marked this pull request as ready for review May 19, 2026 17:36
@mani-muon mani-muon requested a review from aron-muon as a code owner May 19, 2026 17:36
@aron-muon aron-muon merged commit d792596 into aron-muon:main May 19, 2026
30 checks passed
@github-actions
Copy link
Copy Markdown

🎉 This PR is included in version 3.5.1 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

@mani-muon mani-muon deleted the mani/ci-include-bash-in-docker-publish branch May 19, 2026 17:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants