Skip to content

🔧 Run engine CI on automated release-validation PRs - #157

Merged
pboling merged 6 commits into
mainfrom
engines/fix-release-pr-ci-gate
Sep 13, 2026
Merged

pboling merged 6 commits into
mainfrom
engines/fix-release-pr-ci-gate

Conversation

@pboling

@pboling pboling commented Sep 13, 2026

Copy link
Copy Markdown
Member

kettle-release opens a "release validation PR" before merging a release
branch into main, titled Release <branch-name> — reusing whatever
branch happened to be checked out rather than a conventionally-prefixed
one. The JRuby/TruffleRuby job if: conditions in the kettle-jem
templates only ran on PRs whose branch started with engines/,
jruby//truffleruby/, or feature/release, so a validation PR on an
arbitrarily-named branch silently skipped engine CI instead of
validating the release (observed live on galtzo-floss/turbo_tests2#50).

Adds startsWith(github.event.pull_request.title, 'Release ') as an
additional match alongside the existing branch-prefix checks, so engine
CI runs for these release-validation PRs regardless of the branch name
kettle-release reuses.

This is a scripted, family-wide interim patch of already-generated
workflow files, applied ahead of a kettle-jem release: the real fix is
merged at the template source (structuredmerge/structuredmerge-ruby#63)
but isn't in a released kettle-jem version yet, so a normal retemplate
wouldn't pick it up.

🤖 Generated with Claude Code

https://claude.ai/code/session_01URwq1vEg3L7F3ddUr5eEn4

@coveralls

coveralls commented Sep 13, 2026

Copy link
Copy Markdown

Coverage Report for CI Build 34748162879

Coverage increased (+0.005%) to 95.073%

Details

  • Coverage increased (+0.005%) from the base build.
  • Patch coverage: 1 of 1 lines across 1 file are fully covered (100%).
  • No coverage regressions found.

Uncovered Changes

No uncovered changes found.

Coverage Regressions

No coverage regressions found.


Coverage Stats

Coverage Status
Relevant Lines: 749
Covered Lines: 730
Line Coverage: 97.46%
Relevant Branches: 205
Covered Branches: 177
Branch Coverage: 86.34%
Branches in Coverage %: Yes
Coverage Strength: 188.7 hits per line

💛 - Coveralls

kettle-release opens a "release validation PR" before merging a release
branch into main, titled "Release <branch-name>" — reusing whatever
branch happened to be checked out rather than a conventionally-prefixed
one. The JRuby/TruffleRuby job `if:` conditions only ran on PRs whose
branch started with `engines/`, `jruby/`/`truffleruby/`, or
`feature/release`, so a validation PR on an arbitrarily-named branch
silently skips engine CI instead of validating the release.

Add `startsWith(github.event.pull_request.title, 'Release ')` as an
additional match alongside the existing branch-prefix checks, so engine
CI runs for these release-validation PRs regardless of the branch name
kettle-release reuses. Applied identically to every job in this repo
that shares the condition.

Same fix as galtzo-floss/turbo_tests2#50, scripted across the family
instead of waiting for a full kettle-jem retemplate; also needs landing
in the kettle-jem template itself.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01URwq1vEg3L7F3ddUr5eEn4
@pboling
pboling force-pushed the engines/fix-release-pr-ci-gate branch from e0c03dc to 8f1dbcf Compare September 13, 2026 06:32
pboling and others added 5 commits September 13, 2026 03:07
Bundler git sources must be fetchable anonymously over HTTPS. The
SSH `git_source(:github)` recorded `git@github.com:` remotes in
Gemfile.lock, which CI runners (no SSH key) cannot clone. This
surfaced once setup-ruby-flash v2.2 began forcing `rv ci --force`
on non-exact bundler cache restores.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01P8aveNcdgPobyMrq8DkD9r
`github: "org/repo"` is built into Bundler and already resolves to
https://github.com/org/repo.git, so redefining it is unnecessary.
Gemfile.lock is unchanged (verified with `bundle lock --print`).

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01P8aveNcdgPobyMrq8DkD9r
- Drop the inline json < 2.19 in ruby-3-2; it duplicated the TruffleRuby 23.1
  json pin and made Bundler reject the gemfile on that engine.
- json 3.0 removed the quirks_mode keyword ActiveSupport < 8.1 passes to
  JSON.generate; keep ruby-3-1 on json 2.x.
- TruffleRuby 23.1 cannot load ActiveSupport >= 7.2 or parse minitest >= 5.26.2.
- Apply the TruffleRuby json default-gem pins to the root appraisal bundle.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01P8aveNcdgPobyMrq8DkD9r
ActiveSupport 7.1's log_subscriber calls ActiveSupport.deprecator at load
time, which only exists once active_support itself is required. Loading
the component directly raised NoMethodError whenever ActiveSupport 7.1 is
resolved (e.g. the TruffleRuby 23.1 appraisal).

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01P8aveNcdgPobyMrq8DkD9r
@github-actions

Copy link
Copy Markdown

Code Coverage

Package Line Rate Branch Rate Health
debug_logging 97% 86%
Summary 97% (730 / 749) 86% (177 / 205)

Minimum allowed line rate is 92%

@pboling
pboling merged commit 42f56cf into main Sep 13, 2026
26 checks passed
@pboling
pboling deleted the engines/fix-release-pr-ci-gate branch September 13, 2026 21:10
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.

2 participants