@@ -47,21 +47,19 @@ const String stablePostReleaseMsg = """
47
47
// * `String presentState(pb.ConductorState state)` - pretty print the state file.
48
48
// This is a little easier to read than the raw JSON.
49
49
50
- String luciConsoleLink (String channel , String groupName ) {
50
+ String luciConsoleLink (String candidateBranch , String repoName ) {
51
51
assert (
52
- globals.kReleaseChannels. contains (channel ),
53
- 'channel "$ channel " not recognized ' ,
52
+ globals.releaseCandidateBranchRegex. hasMatch (candidateBranch ),
53
+ 'Malformed candidateBranch argument passed: "$ candidateBranch " ' ,
54
54
);
55
55
assert (
56
- < String > ['flutter' , 'engine' , 'packaging' ].contains (groupName ),
57
- 'group named $groupName not recognized' ,
56
+ < String > ['flutter' , 'engine' , 'packaging' ].contains (repoName ),
57
+ 'group named $repoName not recognized' ,
58
58
);
59
- final String consoleName =
60
- channel == 'master' ? groupName : '${channel }_$groupName ' ;
61
- if (groupName == 'packaging' ) {
59
+ if (repoName == 'packaging' ) {
62
60
return 'https://luci-milo.appspot.com/p/dart-internal/g/flutter_packaging/console' ;
63
61
}
64
- return 'https://ci.chromium.org/p/flutter/g/$ consoleName /console ' ;
62
+ return 'https://flutter-dashboard.appspot.com/#/build?repo=$ repoName &branch=$ candidateBranch ' ;
65
63
}
66
64
67
65
String defaultStateFilePath (Platform platform) {
@@ -93,7 +91,7 @@ String presentState(pb.ConductorState state) {
93
91
buffer.writeln ('\t Current git HEAD: ${state .engine .currentGitHead }' );
94
92
buffer.writeln ('\t Path to checkout: ${state .engine .checkoutPath }' );
95
93
buffer.writeln (
96
- '\t Post-submit LUCI dashboard: ${luciConsoleLink (state .releaseChannel , 'engine' )}' );
94
+ '\t Post-submit LUCI dashboard: ${luciConsoleLink (state .engine . candidateBranch , 'engine' )}' );
97
95
if (state.engine.cherrypicks.isNotEmpty) {
98
96
buffer.writeln ('${state .engine .cherrypicks .length } Engine Cherrypicks:' );
99
97
for (final pb.Cherrypick cherrypick in state.engine.cherrypicks) {
@@ -111,7 +109,7 @@ String presentState(pb.ConductorState state) {
111
109
buffer.writeln ('\t Current git HEAD: ${state .framework .currentGitHead }' );
112
110
buffer.writeln ('\t Path to checkout: ${state .framework .checkoutPath }' );
113
111
buffer.writeln (
114
- '\t Post-submit LUCI dashboard: ${luciConsoleLink (state .releaseChannel , 'flutter' )}' );
112
+ '\t Post-submit LUCI dashboard: ${luciConsoleLink (state .framework . candidateBranch , 'flutter' )}' );
115
113
if (state.framework.cherrypicks.isNotEmpty) {
116
114
buffer.writeln (
117
115
'${state .framework .cherrypicks .length } Framework Cherrypicks:' );
@@ -180,7 +178,7 @@ String phaseInstructions(pb.ConductorState state) {
180
178
case ReleasePhase .VERIFY_ENGINE_CI :
181
179
if (! requiresEnginePR (state)) {
182
180
return 'You must verify engine CI has passed: '
183
- '${luciConsoleLink (state .releaseChannel , 'engine' )}' ;
181
+ '${luciConsoleLink (state .engine . candidateBranch , 'engine' )}' ;
184
182
}
185
183
// User's working branch was pushed to their mirror, but a PR needs to be
186
184
// opened on GitHub.
@@ -189,11 +187,12 @@ String phaseInstructions(pb.ConductorState state) {
189
187
repoName: 'engine' ,
190
188
state: state,
191
189
);
190
+ final String consoleLink = luciConsoleLink (state.engine.candidateBranch, 'engine' );
192
191
return < String > [
193
192
'Your working branch ${state .engine .workingBranch } was pushed to your mirror.' ,
194
193
'You must now open a pull request at $newPrLink , verify pre-submit CI' ,
195
194
'builds on your engine pull request are successful, merge your pull request,' ,
196
- 'validate post-submit CI, and then codesign the binaries on the merge commit .' ,
195
+ 'validate post-submit CI at $ consoleLink .' ,
197
196
].join ('\n ' );
198
197
case ReleasePhase .APPLY_FRAMEWORK_CHERRYPICKS :
199
198
final List <pb.Cherrypick > outstandingCherrypicks =
@@ -232,7 +231,7 @@ String phaseInstructions(pb.ConductorState state) {
232
231
'pull request, validate post-submit CI.' ,
233
232
].join ('\n ' );
234
233
case ReleasePhase .VERIFY_RELEASE :
235
- return 'Release archive packages must be verified on cloud storage: ${luciConsoleLink (state .releaseChannel , 'packaging' )}' ;
234
+ return 'Release archive packages must be verified on cloud storage: ${luciConsoleLink (state .framework . candidateBranch , 'packaging' )}' ;
236
235
case ReleasePhase .RELEASE_COMPLETED :
237
236
if (state.releaseChannel == 'beta' ) {
238
237
return < String > [
0 commit comments