feat(ci): split release fixture builds across multiple fork-range runners#2592
Draft
danceratopz wants to merge 2 commits intoforks/amsterdamfrom
Draft
feat(ci): split release fixture builds across multiple fork-range runners#2592danceratopz wants to merge 2 commits intoforks/amsterdamfrom
danceratopz wants to merge 2 commits intoforks/amsterdamfrom
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## forks/amsterdam #2592 +/- ##
===================================================
- Coverage 86.35% 86.24% -0.12%
===================================================
Files 599 599
Lines 36904 36984 +80
Branches 3771 3795 +24
===================================================
+ Hits 31868 31895 +27
- Misses 4485 4525 +40
- Partials 551 564 +13
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
…evelop Add a top-level fork-ranges list for splitting multi-fork releases across parallel runners. Bump stable to --until=Osaka (latest mainnet fork) and develop to --until=Amsterdam (current fork in development).
…nners Split multi-fork fixture releases (stable, develop) across parallel runners using the shared fork-ranges in feature.yaml. Each runner fills its fork range to a directory, then a combine job merges the results into a single release tarball. Features without --until (e.g., benchmark with --fork) continue to build on a single runner with unchanged behavior. Also adds integration tests for the new scripts and a single-fork-range parameter set to the fill output directory tests.
9aade46 to
526edd1
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
🗒️ Description
STILL WIP, needs self-review
Split multi-fork fixture releases (
stable,develop) across parallel runners by fork range, reducing release CI wall-clock time. Follows the same pattern established in #2529 for thepy3tox env.How it works:
feature.yamlcan now declarefork-ranges— a list of{label, from, until}entries that partition the fork range across runners.generate_build_matrix.pyscript reads the config and emits a flat build matrix (feature × fork-range) for GitHub Actions.--generate-all-formats, then acombinejob merges the directories and creates the final tarball viacreate_release_tarball.py.fork-ranges(e.g.,benchmark) keep current single-runner behavior unchanged.Workflow structure changes from:
to:
Pre-alloc groups are fork-scoped (a group cannot span multiple forks, though a fork may have many groups), so phase 1 runs independently per runner with no cross-runner coordination needed. Merging is conflict-free directory combination since fixture files live under fork subdirectories (
for_cancun/,for_prague/, etc.).Also bumps
stablefork range to include Osaka (latest mainnet fork) anddevelopto include Amsterdam (current fork in development).🔗 Related Issues or PRs
py3tox env.✅ Checklist
toxchecks to avoid unnecessary CI fails, see also Code Standards and Enabling Pre-commit Checks:uvx tox -e statictype(scope):.Cute Animal Picture