dart-sdk/tests/co19/update.sh
Alexander Thomas c7b933a832 [co19] Handle builders using co19 with test selectors
Previously, the script would look for an argument that is matches "co19"
exactly. NNBD builders currently use "co19/LanguageFeatures/nnbd" as a
test selector. This change will make the update script recognize both
the raw suite, as well as "suite with selectors".

Change-Id: I22d3274b7e99e4bfd96859bdb2ad47f4ff5acc37
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/128721
Reviewed-by: William Hesse <whesse@google.com>
2019-12-17 17:24:09 +00:00

71 lines
2 KiB
Bash
Executable file

#!/usr/bin/env bash
# Uploads a new version of the co19 CIPD package.
# This script requires access to the dart-build-access group, which EngProd has.
set -e
set -x
if [ ! -e tests/co19 ]; then
echo "$0: error: Run this script at the root of the Dart SDK" >&2
exit 1
fi
# Find the latest co19 commit.
rm -rf tests/co19/src.git
git clone https://dart.googlesource.com/co19 tests/co19/src.git
CO19=tests/co19/src.git
OLD=$(gclient getdep --var=co19_rev)
NEW=$(cd $CO19 && git fetch origin && git rev-parse origin/master)
git fetch origin
git branch cl-co19-roll-co19-to-$NEW origin/master
git checkout cl-co19-roll-co19-to-$NEW
# Build a cipd package of the commit.
BUILD_ID=$(bb add \
-commit https://dart.googlesource.com/co19/+/$NEW \
-json \
dart/ci/co19-roller \
| jq -r '.id')
bb collect -interval 10s $BUILD_ID
# Update DEPS:
gclient setdep --var=co19_rev=$NEW
# Make a nice commit. Don't include the '#' character to avoid referencing Dart
# SDK issues.
git commit DEPS -m \
"$(printf "[co19] Roll co19 to $NEW\n\n" &&
cd $CO19 &&
git log --date='format:%Y-%m-%d' --pretty='format:%ad %ae %s' \
$OLD..$NEW | tr -d '#')"
rm -rf tests/co19/src.git
GIT_EDITOR=true git cl upload
ISSUE=$(git config --get branch.cl-co19-roll-co19-to-$NEW.gerritissue)
BUILDERS=$(jq '.builder_configurations|
map(select(.steps|
any(.arguments|
select(.!=null)|
any(test("co19($|(/.*))")))))|
map(.builders)|
flatten|
sort' \
tools/bots/test_matrix.json \
| tr -d '[",]')
git cl try -B dart/try $(for BUILDER in $BUILDERS; do echo -b $BUILDER-try; done)
git cl web
set +x
cat << EOF
Wait for the builders to finish. If any failed, pre-approve them:
tools/sdks/dart-sdk/bin/dart tools/approve_results.dart \
-p https://dart-review.googlesource.com/c/sdk/+/$ISSUE
EOF