Skip to content

breaking: review_url output; test free /review URL via it (drift cleanup)#123

Open
reuvenharrison wants to merge 3 commits into
mainfrom
fix/entrypoint-drift
Open

breaking: review_url output; test free /review URL via it (drift cleanup)#123
reuvenharrison wants to merge 3 commits into
mainfrom
fix/entrypoint-drift

Conversation

@reuvenharrison
Copy link
Copy Markdown
Contributor

First slice of the entrypoint drift / test-fidelity work, scoped to the breaking action so the approach can be validated before applying it to changelog and pr-comment.

What this does

  • New review_url output on the breaking action (the free /review link it already emits as a ::notice::).
  • URL tests rewritten to run the real action via uses: ./breaking and assert on steps.brk.outputs.review_url — instead of invoking the entrypoint directly on the runner (dash). They now run on the production platform (Alpine/busybox ash), with no stub / docker run / bash workaround.
  • The strip test uses base: HEAD:specs/base.yaml, exercising real git-ref resolution (the action's recommended base form) which had no CI coverage.

Drift alignment (breaking entrypoint)

  • write_output now matches changelog/diff (was a prefixed-var variant).
  • set -o pipefail added (consistent with changelog/diff; safe now that every breaking test runs in-container).
  • Removed an em-dash from a comment.

Why a review_url output instead of stubbing

Annotations (::notice::) and step logs can't be read by a later step; only declared outputs cross the step boundary. Exposing the URL as an output lets the tests use the normal uses: + output pattern (fully faithful) and is genuinely useful for real workflows.

Follow-ups (same branch, after this is green)

  • changelog: same output approach for its 2 URL tests.
  • pr-comment: output approach for its 2 URL tests; its 4 non-URL tests (fail-on, abort, ARG_MAX) + pipefail standardization still to be decided.

Test plan

  • breaking URL tests pass (validates: test1->test3 is breaking; HEAD: resolves in CI)
  • all other workflows stay green

Add a `review_url` output to the breaking action (the free /review link
it already emits as a notice) so tests can assert on it directly.

Rewrite the two free-review URL tests to run the real action via `uses:`
and check the output, instead of invoking the entrypoint on the runner
under dash. They now run on the production platform (Alpine/busybox ash)
with no shell-compat workarounds, and the strip test exercises real
git-ref resolution (HEAD:specs/base.yaml), which had no CI coverage.

Also align entrypoint drift: write_output now matches changelog/diff,
add set -o pipefail (consistent with changelog/diff; safe now that every
breaking test runs in-container), and drop an em-dash from a comment.
The review_url echo was between `breaking<<$delimiter` and its closing
delimiter, so it got folded into the `breaking` output value (breaking
the existing output-comparison tests) and never became its own output
(so the URL tests saw it empty). Move it after the block closes.
Mirror the breaking change: add a review_url output (written after the
multiline changelog block closes) and rewrite the two free-review URL
tests to run the real action via uses: + assert on the output, dropping
the bash/dash workaround. Also expands the base_sha comment to match
breaking's (drift cleanup).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant