mirror of
https://github.com/penpot/penpot.git
synced 2026-09-19 10:26:14 +00:00
The bundle and docker-image build/dedup checks used different cache keys: the bundle was cached by ref name (`penpot-<gh_ref>.zip`) while the docker image marker was cached by commit sha (`markers/images-sha-<sha>`). A tag built from a commit already promoted under another ref (e.g. `develop`) would rebuild the bundle unnecessarily, while `build-docker`'s `promote` job silently inherited the skip from `build` and never created that ref's branch tags (`backend:<gh_ref>`, `frontend:<gh_ref>`, ...), even though the underlying sha-tagged images already existed. - Key the bundle S3 object by commit sha (`penpot-sha-<sha>.zip`) instead of by ref name, matching the docker marker's semantics. - Drop the S3 metadata round-trip for `bundle_version` in build-docker.yml; compute it locally with `git describe`, same as build-bundle.yml (requires fetch-depth: 0 on that checkout). - Split `promote` into two mutually-exclusive jobs, `promote` (needs `build` to succeed) and `retag` (needs only `prepare`, runs when `prepare.outputs.exists == 'true'`), each moving the `:<gh_ref>` branch tags to the current sha. This replaces relying on `build`'s skip/success state with two explicit conditions, so the tags always get moved regardless of which path built the images. Signed-off-by: David Barragán Merino <david.barragan@kaleidos.net>