| #!/usr/bin/env bash |
| # Uploads a new version of the co19_2 CIPD package. |
| # This script requires access to the dart-build-access group, which EngProd has. |
| |
| set -e |
| set -x |
| |
| if [ ! -e tests/co19_2 ]; 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_2/src.git |
| git clone https://dart.googlesource.com/co19 tests/co19_2/src.git |
| CO19=tests/co19_2/src.git |
| OLD=$(gclient getdep --var=co19_2_rev) |
| NEW=$(cd $CO19 && git fetch origin && git rev-parse origin/pre-nnbd) |
| |
| 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 \ |
| -p variant=legacy \ |
| dart/ci/co19-roller \ |
| | jq -r '.id') |
| bb collect -interval 10s $BUILD_ID |
| |
| # Update DEPS: |
| gclient setdep --var=co19_2_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_2 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_2/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(.=="co19_2"))))| |
| 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. |
| EOF |