[infra] Flutter SDK version checking/updating automation#8954
Merged
Conversation
Contributor
There was a problem hiding this comment.
Code Review
This pull request introduces CIIntegrityTest.java, a new meta-test suite designed to ensure synchronization between the Flutter SDK provisioning script and the automated GitHub Actions workflow. The feedback suggests aligning the version validation regex to be less restrictive and more consistent with the automation's expectations. Additionally, it is recommended to use a more robust pattern matching approach instead of simple string containment when verifying the GitHub workflow configuration.
Collaborator
Author
|
When this lands, I can manually trigger the action and we should see a PR to bump to 3.41.9. |
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.
CI/CD Automation: Automated Flutter SDK Version Bumping & Integrity Verification
Why This Matters
To ensure stable and reproducible builds, our CI/CD scripts are pinned to a specific stable version of the Flutter SDK in
tool/provision_flutter.sh(see: #8951). Manually monitoring and upgrading this pin is tedious, while a rolling pin risks introducing silent test breakages.This PR automates the maintenance of our pinned Flutter SDK version with safe, presubmit-verified upgrades, backed by compile-time integrity checks to prevent syntax or synchronization bugs.
Fixes: #8953
Proposed Changes
1. Automated Version-Pin Bumping
tool/provision_flutter.sh.2. Compile-Time Integrity Verification
testFlutterProvisioningScriptIntegrity(): Assertstool/provision_flutter.shexists and contains a valid semver-formattedFLUTTER_VERSION="..."constant.testGitHubWorkflowRegexSync(): Asserts.github/workflows/update_flutter.yamlmatches the exact constant pattern used in its search-and-replace step.Verification Results
./gradlew test --tests io.flutter.CIIntegrityTestResult: BUILD SUCCESSFUL (Both assertions compiled and passed successfully in 4 seconds).
Until this is landed the action can't be tested on GH but this verifies that it should work:
Review the contribution guidelines below:
AUTHORSfile.CHANGELOG.mdif appropriate.Contribution guidelines:
our contributor guide and
the Flutter organization contributor guide
for general expectations for PRs.
dart format.practices (discussion).