blob: d989e2653da32ffda6c6017bb1f60bc6d07de458 [file] [log] [blame]
#!/bin/sh
# Copyright (c) 2020, the Dart project authors. Please see the AUTHORS file
# for details. All rights reserved. Use of this source code is governed by a
# BSD-style license that can be found in the LICENSE file.
set -xe
if [[ ! -f "tools/android-ndk/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-symbolizer" ]]; then
echo "Missing linux-x86_64 build of llvm-symbolizer."
echo "Point get-tools-from-ndk.sh to Linux NDK to extract it."
exit 1
fi
if [[ ! -f "tools/android-ndk/toolchains/llvm/prebuilt/linux-x86_64/bin/x86_64-linux-android-readelf" ]]; then
echo "Missing linux-x86_64 build of x86_64-linux-android-readelf."
echo "Point get-tools-from-ndk.sh to Linux NDK to extract it."
exit 1
fi
if [[ ! -f "tools/android-ndk/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-objdump" ]]; then
echo "Missing linux-x86_64 build of llvm-objdump."
echo "Point get-tools-from-ndk.sh to Linux NDK to extract it."
exit 1
fi
DART_VERSION=$(dart --version 2>&1 | grep -o -e '\d*\.\d*.\d*')
if [[ $DART_VERSION != "2.10.1" ]]; then
echo "Version mismatch with server version: $DART_VERSION expected 2.10.1"
exit 1
fi
# Run all tests
pub run test --no-chain-stack-traces -j1
rm -rf deploy
mkdir -p deploy/symbolizer
dart --snapshot-kind=kernel --snapshot=deploy/symbolizer/symbolizer.dill bin/server.dart
cp -r tools deploy/symbolizer/tools
dart bin/configure.dart --output=deploy/symbolizer/.config.json \
--github-token=$GITHUB_TOKEN \
--sendgrid-token=$SENDGRID_TOKEN \
--failure-email=$FAILURE_EMAIL
pushd deploy
zip -r symbolizer.zip symbolizer
rm -rf symbolizer
popd
cat <<EOT >deploy/deploy.sh
#!/bin/sh
set -ex
DEPLOY_CMD='rm -rf symbolizer && unzip symbolizer.zip && sudo supervisorctl restart all'
gcloud beta compute scp --zone "us-central1-a" --project "dart-ci" symbolizer.zip crash-symbolizer:~/
gcloud beta compute ssh --zone "us-central1-a" --project "dart-ci" --command "\$DEPLOY_CMD" crash-symbolizer
EOT
chmod +x deploy/deploy.sh
if [[ -z "$DEPLOYMENT_PROXY" ]]; then
cd deploy && ./deploy.sh
else
scp deploy/symbolizer.zip $DEPLOYMENT_PROXY:/tmp/symbolizer.zip
scp deploy/deploy.sh $DEPLOYMENT_PROXY:/tmp/deploy.sh
ssh $DEPLOYMENT_PROXY 'cd /tmp && ./deploy.sh'
fi