crosvm/ci/kokoro/common.sh
Daniel Verkamp 44495f3a8e kokoro: update submodules after rebasing
In case the rebase brought in a commit that updated the submodules, we
should update them after the rebase instead of before. Otherwise the
submodules will be out of date compared to the source.

BUG=None
TEST=None

Change-Id: I398755abc76e9e6672c71ff1fe358a7c201c09fb
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/crosvm/+/3403133
Reviewed-by: Dennis Kempin <denniskempin@google.com>
Tested-by: kokoro <noreply+kokoro@google.com>
Commit-Queue: Daniel Verkamp <dverkamp@chromium.org>
2022-01-22 00:05:23 +00:00

68 lines
2.1 KiB
Bash
Executable file

#!/bin/bash
# Copyright 2021 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
# Enable SSH access to the kokoro builder.
# Use the fusion2/ UI to trigger a build and set the DEBUG_SSH_KEY environment
# variable to your public key, that will allow you to connect to the builder
# via SSH.
# Note: Access is restricted to the google corporate network.
# Details: https://yaqs.corp.google.com/eng/q/6628551334035456
if [[ ! -z "${DEBUG_SSH_KEY}" ]]; then
echo "${DEBUG_SSH_KEY}" >>~/.ssh/authorized_keys
external_ip=$(
curl -s -H "Metadata-Flavor: Google" \
http://metadata/computeMetadata/v1/instance/network-interfaces/0/access-configs/0/external-ip
)
echo "SSH Debug enabled. Connect to: kbuilder@${external_ip}"
fi
setup_source() {
if [ -z "${KOKORO_ARTIFACTS_DIR}/git" ]; then
echo "This script must be run in kokoro"
exit 1
fi
mkdir -p "${KOKORO_ARTIFACTS_DIR}/logs"
cd "${KOKORO_ARTIFACTS_DIR}/git/crosvm"
echo "Rebasing changes to ToT"
# We cannot use the original origin that kokoro used, as we no longer have
# access the GoB host via rpc://.
git remote remove origin
git remote add origin https://chromium.googlesource.com/chromiumos/platform/crosvm
git fetch -q origin
# For some mysterious reason symlinks show up as modified, which prevents
# us from rebasing the changes.
git checkout -f
git rebase origin/main
echo "Fetching Submodules..."
git submodule update --init
}
cleanup() {
# Sleep after the build to allow for SSH debugging to continue.
if [[ ! -z "${DEBUG_SSH_KEY}" ]]; then
echo "Build done. Blocking for SSH debugging."
sleep 1h
fi
# List files in the logs directory which are uploaded to sponge.
echo "Build Artifacts:"
ls "${KOKORO_ARTIFACTS_DIR}/logs"
}
# Setup source when the script is loaded. Clean up on exit.
trap cleanup EXIT
setup_source || {
echo "Failed to setup_source"
exit 1
}
# Set logs directory so we can copy them to sponge
export CROSVM_BUILDER_LOGS_DIR="${KOKORO_ARTIFACTS_DIR}/logs"
cd "${KOKORO_ARTIFACTS_DIR}/git/crosvm"