[build] consolidate pre-release workflow by titusfortner · Pull Request #16997 · SeleniumHQ/selenium
User description
Ruby & Rust version bumps update their lockfiles requiring re-pinning, which makes things inconsistent, this is here to help
What does this PR do?
- Ruby & Rust version tasks no longer include calling update task
- Neither versions
nor changelogsneed to be managed in separate jobs during pre-release - Edit: turns out changelogs does need to be in a separate job so it can use calculate-depth job, it will still run in parallel just not in the matrix
- Explicitly calling version and update in same step for pre-release workflow
- Adding explicit Rust handling since Rust is no longer part of
all:tasks
Implementation Notes
Pre-release workflow runs the updates separately in parallel for visibility. The same functionality in one task:
./go release_updates
The pre-release workflow matrix for release-updates now includes:
bindings-versions:./go all:version && ./go all:update(bindings)rust-versions:./go rust:version && ./go rust:update(Rust separately)changelogs:./go all:changelogs && ./go rust:changelogs
This ensures:
- Ruby's lockfile coupling is handled (version runs before update in same job)
- Rust is handled separately since it's excluded from
all:tasks - Reduced workflow complexity without creating top-level jobs
- The separate Rust release flow (generate-rust-version -> push-rust-version -> selenium-manager) remains unchanged for Selenium Manager releases
Additional Considerations
Plan to merge this before #16987
Types of changes
- Cleanup (formatting, renaming)
PR Type
Enhancement
Description
-
Consolidate pre-release workflow by merging separate jobs into single matrix job
-
Remove automatic update invocations from Ruby and Rust version bump tasks
-
Add explicit Rust handling in release workflow since excluded from
all:tasks -
Rename and restructure release preparation task for clarity and consistency
Diagram Walkthrough
flowchart LR
A["Pre-release Workflow"] -->|"Consolidate"| B["Single release-updates Job"]
B -->|"Matrix includes"| C["Browsers, DevTools, Manager"]
B -->|"Matrix includes"| D["Multitool, Binding-versions, Rust-versions"]
B -->|"Matrix includes"| E["Authors, Changelogs"]
F["Ruby/Rust version tasks"] -->|"Remove auto-update"| G["Manual update invocation"]
H["prep_release task"] -->|"Rename to"| I["release_updates task"]
File Walkthrough
| Relevant files | |||||||||
|---|---|---|---|---|---|---|---|---|---|
| Enhancement |
|