Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Sign in
Toggle navigation
F
Front-End
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
abdullh.alsoleman
Front-End
Commits
217bcfe2
Unverified
Commit
217bcfe2
authored
Jan 31, 2018
by
Ian Hickson
Committed by
GitHub
Jan 31, 2018
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Update the roll dev script to actually work (#14376)
parent
82ddabd3
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
45 additions
and
17 deletions
+45
-17
archive_publisher.dart
dev/tools/lib/archive_publisher.dart
+5
-6
roll_dev.dart
dev/tools/lib/roll_dev.dart
+40
-11
No files found.
dev/tools/lib/archive_publisher.dart
View file @
217bcfe2
...
...
@@ -22,7 +22,7 @@ class ArchivePublisherException implements Exception {
}
final
String
stderr
=
result
?.
stderr
??
''
;
if
(
stderr
.
isNotEmpty
)
{
output
+=
':
\n
$
result
.stderr
'
;
output
+=
':
\n
$
{result.stderr}
'
;
}
return
output
;
}
...
...
@@ -87,9 +87,6 @@ class ArchivePublisher {
/// Publishes the archive for the given constructor parameters.
bool
publishArchive
()
{
assert
(
channel
==
Channel
.
dev
,
'Channel must be dev (beta not yet supported)'
);
// Check for access early so that we don't try to publish things if the
// user doesn't have access to the metadata file.
_checkForGSUtilAccess
();
final
List
<
String
>
platforms
=
<
String
>[
'linux'
,
'mac'
,
'win'
];
final
Map
<
String
,
String
>
metadata
=
<
String
,
String
>{};
for
(
String
platform
in
platforms
)
{
...
...
@@ -108,12 +105,14 @@ class ArchivePublisher {
/// Checks to make sure the user has access to the Google Storage bucket
/// required to publish. Will throw an [ArchivePublisherException] if not.
void
_
checkForGSUtilAccess
()
{
void
checkForGSUtilAccess
()
{
// Fetching ACLs requires FULL_CONTROL access.
final
ProcessResult
result
=
_runGsUtil
(<
String
>[
'acl'
,
'get'
,
metadataGsPath
]);
if
(
result
.
exitCode
!=
0
)
{
throw
new
ArchivePublisherException
(
'GSUtil cannot get ACLs for metadata file
$metadataGsPath
'
,
result
);
'GSUtil cannot get ACLs for metadata file
$metadataGsPath
'
,
result
,
);
}
}
...
...
dev/tools/lib/roll_dev.dart
View file @
217bcfe2
...
...
@@ -16,13 +16,12 @@ const String kIncrement = 'increment';
const
String
kX
=
'x'
;
const
String
kY
=
'y'
;
const
String
kZ
=
'z'
;
const
String
kCommit
=
'commit'
;
const
String
kHelp
=
'help'
;
void
main
(
List
<
String
>
args
)
{
// Set the cwd to the repo root, since we know where this script is located.
final
Directory
scriptLocation
=
new
Directory
(
Platform
.
script
.
toFilePath
());
Directory
.
current
=
scriptLocation
.
parent
.
parent
.
parent
;
const
String
kUpstreamRemote
=
'git@github.com:flutter/flutter.git'
;
void
main
(
List
<
String
>
args
)
{
final
ArgParser
argParser
=
new
ArgParser
(
allowTrailingOptions:
false
);
argParser
.
addOption
(
kIncrement
,
...
...
@@ -35,6 +34,12 @@ void main(List<String> args) {
kZ:
'Indicates the least notable level of change. You normally want this.'
,
},
);
argParser
.
addOption
(
kCommit
,
help:
'Specifies which git commit to roll to the dev branch.'
,
valueHelp:
'hash'
,
defaultsTo:
'upstream/master'
,
);
argParser
.
addFlag
(
kHelp
,
negatable:
false
,
help:
'Show this help message.'
,
hide:
true
);
ArgResults
argResults
;
try
{
...
...
@@ -46,14 +51,21 @@ void main(List<String> args) {
}
final
String
level
=
argResults
[
kIncrement
];
final
bool
commit
=
argResults
[
kCommit
];
final
bool
help
=
argResults
[
kHelp
];
if
(
help
||
level
==
null
)
{
print
(
'roll_dev.dart --increment=
x
• update the version tags and roll a new dev build.
\n
'
);
print
(
'roll_dev.dart --increment=
level --commit=hash
• update the version tags and roll a new dev build.
\n
'
);
print
(
argParser
.
usage
);
exit
(
0
);
}
if
(
getGitOutput
(
'remote get-url upstream'
,
'check whether this is a flutter checkout'
)
!=
kUpstreamRemote
)
{
print
(
'The current directory is not a Flutter repository checkout with a correctly configured upstream remote.'
);
print
(
'For more details see: https://github.com/flutter/flutter/wiki/Release-process'
);
exit
(
1
);
}
runGit
(
'checkout master'
,
'switch to master branch'
);
if
(
getGitOutput
(
'status --porcelain'
,
'check status of your local checkout'
)
!=
''
)
{
...
...
@@ -62,6 +74,9 @@ void main(List<String> args) {
exit
(
1
);
}
runGit
(
'fetch upstream'
,
'fetch upstream'
);
runGit
(
'reset
$commit
--hard'
,
'check out master branch'
);
String
version
=
getFullTag
();
final
Match
match
=
parseFullTag
(
version
);
if
(
match
==
null
)
{
...
...
@@ -97,10 +112,24 @@ void main(List<String> args) {
}
version
=
parts
.
join
(
'.'
);
runGit
(
'fetch upstream'
,
'fetch upstream'
);
runGit
(
'reset upstream/master --hard'
,
'check out master branch'
);
final
String
hash
=
getGitOutput
(
'rev-parse HEAD'
,
'Get git hash for
$commit
'
);
final
ArchivePublisher
publisher
=
new
ArchivePublisher
(
hash
,
version
,
Channel
.
dev
);
// Check for access early so that we don't try to publish things if the
// user doesn't have access to the metadata file.
try
{
publisher
.
checkForGSUtilAccess
();
}
on
ArchivePublisherException
{
print
(
'You do not appear to have the credentials required to update the archive links.'
);
print
(
'Make sure you have "gsutil" installed, then run "gsutil config".'
);
print
(
'Talk to @gspencergoog for details on which project to use.'
);
exit
(
1
);
}
runGit
(
'tag v
$version
'
,
'tag the commit with the version label'
);
final
String
hash
=
getGitOutput
(
'rev-parse HEAD'
,
'Get git hash for
$version
tag'
);
// PROMPT
print
(
'Your tree is ready to publish Flutter
$version
(
${hash.substring(0, 10)}
) '
'to the "dev" channel.'
);
...
...
@@ -114,12 +143,12 @@ void main(List<String> args) {
// Publish the archive before pushing the tag so that if something fails in
// the publish step, we can clean up.
try
{
new
ArchivePublisher
(
hash
,
version
,
Channel
.
dev
).
.
publishArchive
();
publisher
.
publishArchive
();
}
on
ArchivePublisherException
catch
(
e
)
{
print
(
'Archive publishing failed.
\n
$e
'
);
runGit
(
'tag -d
$version
'
,
'remove the tag that was not published'
);
runGit
(
'tag -d
v
$version
'
,
'remove the tag that was not published'
);
print
(
'The dev roll has been aborted.'
);
exit
(
0
);
exit
(
1
);
}
runGit
(
'push upstream v
$version
'
,
'publish the version'
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment