Skip to content

Add GitHub workflows to assist with release tasks#181978

Merged
auto-submit[bot] merged 8 commits intoflutter:masterfrom
eyebrowsoffire:release_tracker_workflow
Mar 6, 2026
Merged

Add GitHub workflows to assist with release tasks#181978
auto-submit[bot] merged 8 commits intoflutter:masterfrom
eyebrowsoffire:release_tracker_workflow

Conversation

@eyebrowsoffire
Copy link
Contributor

@eyebrowsoffire eyebrowsoffire commented Feb 6, 2026

This is a PR which adds some new GitHub Action workflows which assist in release tasks for the engineer on the release rotation.

Release Tracker

This workflow creates a GitHub issue which tracks the release process for a particular release. When running the workflow, the engineer provides a version number, the release channel (beta or stable) and whether the release is a hotfix or not. The issue contains a checklist with all the steps needed for a particular release type and channel.

I have been testing this workflow on a separate repository here: https://github.com/eyebrowsoffire/flutter_release_workflow_test

You can see examples of the issues that were generated from the workflow here:

Stable initial release: eyebrowsoffire/flutter_release_workflow_test#9
Stable hotfix release: eyebrowsoffire/flutter_release_workflow_test#10
Beta initial release: eyebrowsoffire/flutter_release_workflow_test#11
Beat hotfix release: eyebrowsoffire/flutter_release_workflow_test#12

Cut Release Branch

This workflow creates a new flutter-X.Y-candidate.0 branch with a commit which writes out the bin/internal/release-candidate-branch.version file with the proper branch name inside. The user supplies the version number and the git hash that the branch should be forked from.

Roll Dart Dependencies

This workflow creates a PR which updates the DEPS file with a new dart hash and updates the transitive dependencies with the create_updated_flutter_deps.py script. The user runs the workflow on a specific candidate branch and passes the dart hash to update to. Unlike the dart autoroller, this can be manually invoked on any branch. If the dart hash and deps are already up to date, the workflow succeeds and doesn't create a PR.

Sync Engine Version

This workflow creates a PR that updates the engine.version file. The user runs the workflow on a specific candidate branch, and the correct dart hash is automatically calculated by the workflow. If the engine hash is already up to date, the workflow succeeds and doesn't create a PR.

@gemini-code-assist
Copy link
Contributor

Note

Gemini is unable to generate a review for this pull request due to the file types involved not being currently supported.

@eyebrowsoffire eyebrowsoffire marked this pull request as draft February 6, 2026 00:37
@kevmoo
Copy link
Contributor

kevmoo commented Feb 10, 2026

Is this Dart code?
Is there any way for the code to be in a...like...regular file?

@eyebrowsoffire
Copy link
Contributor Author

Is this Dart code? Is there any way for the code to be in a...like...regular file?

No. This uses the standard Github script action which is Node JS by default. We might not be able to actually use that action though, so I might have to rewrite this in some other way. This is a proof of concept.

@eyebrowsoffire
Copy link
Contributor Author

Discussed with @jtmcdole, and apparently the GitHub official actions are allowlisted as part of our actions that we can use. We explicitly added it as one of the actions allowed for this project.

With that being the case, I personally think it's better to actually leave this as inline NodeJS code, for a few reasons:

  • Github's standard action runs really fast and doesn't require any extra setup (like downloading the Dart SDK onto whatever host is running the action).
  • All of Github's API for reading and manipulating issues and pull requests are simple and available by default.
  • The logic here is fairly straightforward, and keeping it encapsulated in a simple single file seems to be the path of least maintenance.

@jtmcdole
Copy link
Member

Yeah, unless GitHub has an official dart package for this, I think its safe to stay on the JS package. For any testing of flutter code, we can stick to dart.

@github-actions github-actions bot added the engine flutter/engine related. See also e: labels. label Mar 4, 2026
@eyebrowsoffire eyebrowsoffire changed the title Add a workflow for creating GitHub issues which track releases Add GitHub workflows to assist with release tasks Mar 4, 2026
@eyebrowsoffire eyebrowsoffire marked this pull request as ready for review March 4, 2026 23:45
Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces GitHub workflows for release automation and updates create_updated_flutter_deps.py to support Dart revision specification and refactor file processing. A high-severity code injection vulnerability was found in create_updated_flutter_deps.py where unsanitized dart_revision input from command-line arguments is written to a file executed as Python code, creating a supply chain attack risk. Additionally, the refactoring in create_updated_flutter_deps.py, despite fixing bugs, introduces code duplication that impacts readability and maintainability.

@eyebrowsoffire eyebrowsoffire requested a review from jtmcdole March 5, 2026 19:20
@eyebrowsoffire eyebrowsoffire added the autosubmit Merge PR when tree becomes green via auto submit App label Mar 5, 2026
@auto-submit auto-submit bot added this pull request to the merge queue Mar 6, 2026
Merged via the queue into flutter:master with commit b6bcf47 Mar 6, 2026
183 checks passed
@flutter-dashboard flutter-dashboard bot removed the autosubmit Merge PR when tree becomes green via auto submit App label Mar 6, 2026
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Mar 6, 2026
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Mar 6, 2026
auto-submit bot pushed a commit to flutter/packages that referenced this pull request Mar 6, 2026
Roll Flutter from d3dd7744e81f to d18214307703 (33 revisions)

flutter/flutter@d3dd774...d182143

2026-03-06 [email protected] Roll Packages from 8d5c5cd to fe3de64 (2 revisions) (flutter/flutter#183308)
2026-03-06 [email protected] Roll Dart SDK from 1b51451cdb99 to 7c7c1e3d024d (2 revisions) (flutter/flutter#183294)
2026-03-06 [email protected] Roll Dart SDK from 9ac06cdd1801 to 1b51451cdb99 (9 revisions) (flutter/flutter#183289)
2026-03-06 [email protected] Add GitHub workflows to assist with release tasks (flutter/flutter#181978)
2026-03-06 [email protected] [Impeller] Fix new convex path shadow generation in perspective (flutter/flutter#183187)
2026-03-06 [email protected] Roll pub packages (flutter/flutter#183178)
2026-03-05 [email protected] fix: use double quotes in settings.gradle.kts template (flutter/flutter#183081)
2026-03-05 [email protected] Add fallbackColor for PredictiveBackPageTransitionBuilder and PredictiveBackFullscreenPageTransitionBuilder (flutter/flutter#182690)
2026-03-05 [email protected] Simplify TesterContextGLES (multithreading logic not needed), and enable some tests that now pass (flutter/flutter#183250)
2026-03-05 [email protected] Roll Skia from a94df1cdabb0 to a69ef43650ee (14 revisions) (flutter/flutter#183280)
2026-03-05 [email protected] Windowing implementation of `showDialog` that uses a native desktop window to display the content  (flutter/flutter#181861)
2026-03-05 [email protected] Build CocoaPod plugin frameworks for Add to App FlutterPluginRegistrant (flutter/flutter#183239)
2026-03-05 [email protected] Extend the Linux web_skwasm_tests_1 timeout to 45 minutes (flutter/flutter#183247)
2026-03-05 [email protected] Update Dart to 3.12 beta 2 (flutter/flutter#183251)
2026-03-05 [email protected] Replace the rest of the references to `flutter/engine` with `flutter/flutter` (flutter/flutter#182938)
2026-03-05 [email protected] chore: convert android_verified_input to pub-workspace (flutter/flutter#183175)
2026-03-05 [email protected] Add await to flutter_test callsites (flutter/flutter#182983)
2026-03-05 [email protected] [iOS] Skip gesture recognizer reset workaround on iOS 26+  (flutter/flutter#183186)
2026-03-05 [email protected] Add warning for plugins not migrated to UIScene (flutter/flutter#182826)
2026-03-05 [email protected] Roll Fuchsia Linux SDK from JJw5EJ87vLGqFVl4h... to 8ay15_eQOEgPHCypm... (flutter/flutter#183255)
2026-03-05 [email protected] Roll Skia from ada0b7628c79 to a94df1cdabb0 (2 revisions) (flutter/flutter#183249)
2026-03-05 [email protected] Roll Packages from 82baf93 to 8d5c5cd (2 revisions) (flutter/flutter#183269)
2026-03-05 [email protected] Add `UnlabaledLeafNodeEvaluation` (flutter/flutter#182872)
2026-03-04 [email protected] Re-specify the ndk version in various test apps, to prevent ndk download (flutter/flutter#183134)
2026-03-04 [email protected] Eliminate rebuilds for Scaffold FAB animation (flutter/flutter#182331)
2026-03-04 [email protected] Add Michal Kucharski to AUTHORS (flutter/flutter#182366)
2026-03-04 [email protected] Merge changelog from 3.41.4 stable. (flutter/flutter#183243)
2026-03-04 [email protected] Allow stylus support on windows (flutter/flutter#165323)
2026-03-04 [email protected] Fix docs on SingletonFlutterWindow.supportsShowingSystemContextMenu (flutter/flutter#183142)
2026-03-04 [email protected] Roll Packages from 9083bc9 to 82baf93 (5 revisions) (flutter/flutter#183240)
2026-03-04 [email protected] Fixes FocusHighlightMode on Android when typing in software keyboard (flutter/flutter#180753)
2026-03-04 [email protected] Make compileShader() retry without sksl if it fails with sksl. (flutter/flutter#183146)
2026-03-04 [email protected] [web] Use pointer-events: auto for non-interactive leaf semantics nodes (flutter/flutter#183077)

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-packages
Please CC [email protected],[email protected] on the revert to ensure that a human
is aware of the problem.

To file a bug in Packages: https://github.com/flutter/flutter/issues/new/choose

To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622

Documentation for the AutoRoller is here:
...
github-merge-queue bot pushed a commit that referenced this pull request Mar 6, 2026
…ps.py` (#183314)

This line was accidentally deleted in
#181978, which has caused some of
our autorollers to fail.
xxxOVALxxx pushed a commit to xxxOVALxxx/flutter that referenced this pull request Mar 10, 2026
This is a PR which adds some new GitHub Action workflows which assist in
release tasks for the engineer on the release rotation.

## Release Tracker

This workflow creates a GitHub issue which tracks the release process
for a particular release. When running the workflow, the engineer
provides a version number, the release channel (beta or stable) and
whether the release is a hotfix or not. The issue contains a checklist
with all the steps needed for a particular release type and channel.

I have been testing this workflow on a separate repository here:
https://github.com/eyebrowsoffire/flutter_release_workflow_test

You can see examples of the issues that were generated from the workflow
here:

Stable initial release:
eyebrowsoffire/flutter_release_workflow_test#9
Stable hotfix release:
eyebrowsoffire/flutter_release_workflow_test#10
Beta initial release:
eyebrowsoffire/flutter_release_workflow_test#11
Beat hotfix release:
eyebrowsoffire/flutter_release_workflow_test#12

## Cut Release Branch

This workflow creates a new `flutter-X.Y-candidate.0` branch with a
commit which writes out the
`bin/internal/release-candidate-branch.version` file with the proper
branch name inside. The user supplies the version number and the git
hash that the branch should be forked from.

## Roll Dart Dependencies

This workflow creates a PR which updates the DEPS file with a new dart
hash and updates the transitive dependencies with the
`create_updated_flutter_deps.py` script. The user runs the workflow on a
specific candidate branch and passes the dart hash to update to. Unlike
the dart autoroller, this can be manually invoked on any branch. If the
dart hash and deps are already up to date, the workflow succeeds and
doesn't create a PR.

## Sync Engine Version

This workflow creates a PR that updates the engine.version file. The
user runs the workflow on a specific candidate branch, and the correct
dart hash is automatically calculated by the workflow. If the engine
hash is already up to date, the workflow succeeds and doesn't create a
PR.
xxxOVALxxx pushed a commit to xxxOVALxxx/flutter that referenced this pull request Mar 10, 2026
…ps.py` (flutter#183314)

This line was accidentally deleted in
flutter#181978, which has caused some of
our autorollers to fail.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

engine flutter/engine related. See also e: labels.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants