#!/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