Skip to content

[build] improve pre-release workflow ordering - #17963

Merged
titusfortner merged 2 commits into
trunkfrom
pre-release-parallel
Aug 28, 2026
Merged

titusfortner merged 2 commits into
trunkfrom
pre-release-parallel

Conversation

@titusfortner

Copy link
Copy Markdown
Member

💥 What does this PR do?

  • Splits up the release-updates matrix in pre-release.yml to better reflect requirements and dependencies

🔧 Implementation Notes

  • Version bumps, changelogs, and the AUTHORS update now run alongside the Selenium Manager release instead of after it.
  • update-manager does not need the deeper checkout
  • create-pr's gate is now language-explicit. Decoupling the version bump removes the cascade that used to skip update-changelogs when the manager release failed, so the old release-updates.result != 'failure' check would have let a skipped manager update through and opened a release PR without it.

🤖 AI assistance

  • AI assisted
    • Tool(s): Claude Code (Opus 5)
    • What was generated: the workflow timing analysis, the change, and this description
    • I reviewed all AI output and can explain the change

🔄 Types of changes

  • Cleanup (CI workflow ordering)

@selenium-ci selenium-ci added the B-build Includes scripting, bazel and CI integrations label Aug 28, 2026
@qodo-code-review

Copy link
Copy Markdown
Contributor

PR Summary by Qodo

Parallelize release updates by their actual dependencies

🐞 Bug fix ⚙️ Configuration changes ✨ Enhancement 🕐 10-20 Minutes

Grey Divider

AI Description

• Runs version, changelog, author, and manager updates as soon as prerequisites complete.
• Splits matrix jobs so each release task declares only its actual dependencies.
• Requires every full-release update to succeed before creating the release pull request.
Diagram

graph TD
  A["Release Inputs"] --> B["Restrict Trunk"] --> C["Version Pipeline"] --> D["Changelog Updates"] --> H{"Create PR Gate"}
  A --> E["Manager Release"] --> F["Manager Update"] --> H
  A --> G["Authors Update"] --> H
Loading
High-Level Assessment

The following are alternative approaches to this PR:

1. Keep a shared update matrix
  • ➕ Keeps repetitive reusable-workflow configuration centralized.
  • ➕ Makes adding uniform release update tasks straightforward.
  • ➖ Forces every matrix entry to inherit the union of all prerequisites.
  • ➖ Preserves unnecessary waiting and ambiguous aggregate skipped-job behavior at the PR gate.

Recommendation: Use separate jobs as implemented because these tasks have materially different dependency and checkout requirements. The additional YAML is justified by earlier parallel execution, explicit failure semantics, and a PR gate that cannot omit a skipped manager update.

Files changed (1) +38 / -29

Other (1) +38 / -29
pre-release.ymlSplit release updates into dependency-specific jobs +38/-29

Split release updates into dependency-specific jobs

• Removes Selenium Manager from version bump prerequisites and replaces the shared release update matrix with dedicated Rust changelog, AUTHORS, and manager update jobs. Makes PR creation language-aware and success-explicit, then exposes each new job in failure cleanup and Slack reporting.

.github/workflows/pre-release.yml

@qodo-code-review

Copy link
Copy Markdown
Contributor

Code Review by Qodo

🐞 Bugs (0) 📘 Rule violations (0) 📎 Requirement gaps (0)

Grey Divider

Great, no issues found!

Qodo reviewed your code and found no material issues that require review

Grey Divider

Tip of the day
💡 Did you know, you can reply 'qodo' on any finding to push back, ask questions, or dig deeper

More tips ↗ | Customize Qodo ↗ | Qodo docs ↗

Grey Divider

Qodo Logo

@titusfortner titusfortner changed the title [build] split release update matrix to reflect real dependencies [build] improve pre-release workflow ordering Aug 28, 2026
@titusfortner
titusfortner merged commit 8f8d464 into trunk Aug 28, 2026
30 checks passed
@titusfortner
titusfortner deleted the pre-release-parallel branch August 28, 2026 15:35
This was referenced Sep 9, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

B-build Includes scripting, bazel and CI integrations

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants