You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
ci(docker): add workflow_dispatch to build a SHA-tagged preview image
`docker.yml` only triggered on `push` to `master` and on `v*` tags, so
there was no way to build an image from an unmerged branch. Previewing a
change end to end before merging therefore had no image to deploy, and
because the concurrency group is `docker-${github.ref}` a *pending*
master run can still be superseded by the next push — so an arbitrary
master SHA is not guaranteed to have an image either.
Add a `workflow_dispatch` trigger with an optional `ref` input:
- The manual run checks out `inputs.ref` (falling back to `github.sha`),
resolves the exact commit, and publishes a `sha-<short>` image tag for
that commit. The `latest` and `v*`/semver tags stay gated to the push
and tag events, so a dispatch never publishes a release tag.
- `type=sha` is kept exactly as-is for push/tag events; the dispatch tag
is emitted as a raw `sha-<short>` of the resolved commit so it is
correct even when the built ref differs from `github.sha`.
- The commit stamped into the image (`PAPERCLIP_BUILD_COMMIT`) is taken
from the same resolved commit; on push/tag it equals `github.sha`, so
those builds are unchanged.
This is intentionally not the release workflow, which publishes a stable
`v*` tag — a much bigger act than building a review image. The resulting
`sha-<short>` tag is consumed as an ordinary app ref by the fleet deploy
tooling, so nothing downstream changes.
Tested: `actionlint` clean on the workflow; YAML parses; verified the
diff leaves the push/tag paths byte-for-byte behaviourally identical
(`ref` and `PAPERCLIP_BUILD_COMMIT` both resolve to `github.sha`, and
`type=sha` is unchanged when `github.event_name != 'workflow_dispatch'`).
Co-Authored-By: Paperclip <noreply@paperclip.ing>
0 commit comments