chore(ci) Check the contract pin in the PR pipeline #57

Merged
araemer merged 1 commit from contract-pin-check into stage 2026-10-03 17:57:26 +00:00
Owner

Adds a separate job contract_pin to the PR pipeline. It is the same job as in recipe-backend#29.

Why

contract.ref names the recipe-platform commit this repo builds against. During development a feature branch may pin a commit on an unmerged platform contract branch. To get into stage, the pin has to be on platform main and must not be older than the pin on the base branch. See the recipe-platform ADR docs/adr/2026-10-03-contract-pin.md (recipe-platform#39).

The two checks

  • check_pin_on_platform_main: fails while the pinned commit is not on recipe-platform main. Message: merge the platform contract PR first, then re-run this check.
  • check_pin_not_older_than_base: fails when the pin is older than the pin on the PR's base branch. Message: take the base branch in. It is skipped when the base branch has no contract.ref, which is the case for a release PR against main until main carries one.

The existing test job is unchanged and keeps its own status, so a PR shows real build and lint results while its pin is still on a contract branch. After a platform contract PR is merged, the contract_pin check has to be re-run by hand.

CLAUDE.md describes the check in the contract.ref paragraph. No UI changed, so no UI verification.

🤖 Generated with Claude Code

Adds a separate job `contract_pin` to the PR pipeline. It is the same job as in recipe-backend#29. ## Why `contract.ref` names the recipe-platform commit this repo builds against. During development a feature branch may pin a commit on an unmerged platform contract branch. To get into `stage`, the pin has to be on platform `main` and must not be older than the pin on the base branch. See the recipe-platform ADR `docs/adr/2026-10-03-contract-pin.md` (recipe-platform#39). ## The two checks - **`check_pin_on_platform_main`:** fails while the pinned commit is not on recipe-platform `main`. Message: merge the platform contract PR first, then re-run this check. - **`check_pin_not_older_than_base`:** fails when the pin is older than the pin on the PR's base branch. Message: take the base branch in. It is skipped when the base branch has no `contract.ref`, which is the case for a release PR against `main` until `main` carries one. The existing `test` job is unchanged and keeps its own status, so a PR shows real build and lint results while its pin is still on a contract branch. After a platform contract PR is merged, the `contract_pin` check has to be re-run by hand. `CLAUDE.md` describes the check in the `contract.ref` paragraph. No UI changed, so no UI verification. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
chore(ci) Check the contract pin in the PR pipeline
All checks were successful
/ test (pull_request) Successful in 1m9s
/ contract_pin (pull_request) Successful in 3s
1f709e8d7c
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
araemer merged commit 9eb0e3579c into stage 2026-10-03 17:57:26 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
araemer/recipe-app!57
No description provided.