The env context in GitHub Actions expressions only exposes variables
explicitly defined via env: keys in the workflow YAML. It does not
expose runner-injected variables such as GITHUB_SHA.
As a result, the commit parameter passed to
dawidd6/action-download-artifact was an empty string, causing the
action to silently fall back to the artifact from the latest available
commit. This happened to resolve correctly in practice, but relied on
implicit fallback behavior that is not guaranteed.
Replace with ${{ github.sha }}, which is the correct and explicit way
to reference the triggering commit SHA in an expression context.
Replaced the not recommended "implicit concatenation"
formatting in deploy.yml with a literal block scalar (|).
This adopts a more robust YAML structure and helps
prevent future formatting mistakes.
Replace the exclusion-based condition with an explicit list
of events that should push an image. Any future trigger
added to the workflow will default to not pushing, which
is the safe behavior.
The push condition only excluded pull_request events, causing
the builder to attempt a push on merge_group events too.
Since no meta-tag rule matches merge_group, this results in
a push with no tag, which fails or produces a broken image.
Now only pushes on branch/tag push and workflow_dispatch.
Implement a prefix-based concurrency group to ensure GitHub Merge Queue
events are not prematurely cancelled by simultaneous push events.
- Use 'mq-' prefix in concurrency keys for merge_group events to create
isolated groups distinct from standard push events.
- Maintain PR number in keys to allow synchronize events to cancel
stale runs, preserving CI efficiency.
- Simplify job filters to skip redundant push runs on internal merge
queue branches.
When a PR enters the merge queue, GitHub triggers both a 'merge_group'
and a 'push' event. These events might share the same concurrency key
as they both reference the temporary 'gh-readonly-queue/' branch.
This creates a race condition where the redundant 'push' job could
incorrectly cancel the official 'merge_group' run. This commit adds
an explicit filter to ignore 'push' events on queue branches,
ensuring CI stability and saving runner minutes.
* Updates .dockerignore to exclude /.git/, /.gitignore, and /target/
to optimize the build context transfer since switching to local ref.
* Standardizes both files with leading and trailing slashes for
increased precision (root-anchoring and directory targeting).
* Organizes entries alphabetically to improve maintainability.
* Updates docker.yml to set the build context to the
local directory.
* This prevents "ref not found" errors when the
workflow runs on temporary branches generated by
the GitHub Merge Queue.
* Ensures the Docker builder utilizes the files
already present in the runner's workspace from
the checkout step.
- Add merge_group event to oxipng.yml and docker.yml for native
Merge Queue support.
- Implement concurrency groups with cancel-in-progress: true to
terminate obsolete builds on new pushes.
- Remove explicit pull_request types to allow default triggers
(including reopened).