| #!/usr/bin/env bash |
| |
| # Copyright (c) 2019, 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. |
| |
| # Uploads the following dill files to CIPD, indexed by the current ABI version: |
| # $build_dir/vm_platform_strong.dill |
| # $build_dir/gen/kernel_service.dill |
| # $build_dir/gen_kernel_bytecode.dill |
| # This script is a no-op unless $BUILDBOT_BUILDERNAME is "dart-sdk-linux-be". |
| # It's also a no-op if dill files were already uploaded today. |
| set -e |
| set -x |
| |
| if [ -z "$2" ]; then |
| echo "Usage: upload_abi_dills.sh version_file build_dir" |
| exit 1 |
| fi |
| |
| if [ "$BUILDBOT_BUILDERNAME" != "dart-sdk-linux-be" ]; then |
| echo "This script only works on the dart-sdk-linux-be buildbot" |
| exit 0 |
| fi |
| |
| abi_version=$(sed -n "s/^ABI_VERSION \([0-9]*\)$/\1/p" "$1") |
| git_revision=$(git rev-parse HEAD) |
| current_date=$(date +%F) |
| search_results=$(cipd search \ |
| "dart/abiversions/$abi_version" \ |
| -tag "date:$current_date" | grep "Instances:" || echo "") |
| |
| if [ ! -z "$search_results" ]; then |
| exit 0 |
| fi |
| |
| sdk_dir=$(pwd) |
| tmpdir=$(mktemp -d) |
| chmod 755 $tmpdir |
| cleanup() { |
| rm -rf "$tmpdir" |
| } |
| trap cleanup EXIT HUP INT QUIT TERM PIPE |
| pushd "$tmpdir" |
| |
| mkdir abiversions |
| cp "$sdk_dir/$2/vm_platform_strong.dill" "abiversions/vm_platform_strong.dill" |
| cp "$sdk_dir/$2/gen/kernel_service.dill" "abiversions/kernel_service.dill" |
| cp "$sdk_dir/$2/gen_kernel_bytecode.dill" "abiversions/gen_kernel_bytecode.dill" |
| |
| cipd create \ |
| -name dart/abiversions/$abi_version \ |
| -in abiversions \ |
| -install-mode copy \ |
| -tag version:$abi_version \ |
| -tag date:$current_date \ |
| -tag git_revision:$git_revision \ |
| -ref latest \ |
| -ref version_$abi_version |
| |
| popd |