BuildKite: Install runtime using STAGED_BINARIES, clean it up properly.

Prior to this, `STAGED_BINARIES` was executed as a command
(`$(STAGED_BINARIES)`), which didn't work. This change fixes this, and adds
cleanup of the runtime directory in `post-command`.

PiperOrigin-RevId: 456900530
This commit is contained in:
Etienne Perot
2022-06-23 17:49:41 -07:00
committed by gVisor bot
parent bd90c6b241
commit ffabadf010
2 changed files with 25 additions and 5 deletions
+17
View File
@@ -1,3 +1,5 @@
set -x
# Clear any downloaded credentials.
rm -f repo.key
@@ -71,3 +73,18 @@ for container in $(docker ps -q); do
docker container kill "${container}"
fi
done
set -euo pipefail
# Remove all Docker runtimes that may be installed.
if grep -qE runtimes /etc/docker/daemon.json; then
cat /etc/docker/daemon.json | jq 'del(.runtimes) + {runtimes: {}}' \
| sudo tee /etc/docker/daemon.json.tmp
sudo mv /etc/docker/daemon.json.tmp /etc/docker/daemon.json
bash -c "$DOCKER_RELOAD_COMMAND"
fi
# Cleanup temporary directory where STAGED_BINARIES may have been extracted.
if [[ -n "${BUILDKITE_STAGED_BINARIES_DIRECTORY:-}" ]]; then
rm -rf "$BUILDKITE_STAGED_BINARIES_DIRECTORY" || true
fi
+8 -5
View File
@@ -1,3 +1,5 @@
set -euo pipefail
# Download any build-specific configuration that has been uploaded.
# This allows top-level steps to override all subsequent steps.
buildkite-agent artifact download 'tools/bazeldefs/*' . || true
@@ -47,12 +49,13 @@ fi
HAD_EXPERIMENTAL="$(docker version --format='{{.Server.Experimental}}')"
if [[ -n "${STAGED_BINARIES:-}" ]]; then
# Used `runsc` from STAGED_BINARIES instead of building it from scratch.
tmpdir="$(mktemp -d)"
gsutil cat "$(STAGED_BINARIES)" | tar -C "$tmpdir" -zxvf - runsc
chmod +x "$tmpdir/runsc"
"$tmpdir/runsc" install --experimental=true --runtime="${RUNTIME}" \
export BUILDKITE_STAGED_BINARIES_DIRECTORY="$(mktemp -d)"
gsutil cat "$STAGED_BINARIES" \
| tar -C "$BUILDKITE_STAGED_BINARIES_DIRECTORY" -zxvf - runsc
chmod +x "$BUILDKITE_STAGED_BINARIES_DIRECTORY/runsc"
sudo "$BUILDKITE_STAGED_BINARIES_DIRECTORY/runsc" install \
--experimental=true --runtime="${RUNTIME}" \
-- "${RUNTIME_ARGS:-}"
rm -rf "$tmpdir"
else
make sudo TARGETS=//runsc:runsc \
ARGS="install --experimental=true --runtime=${RUNTIME} -- ${RUNTIME_ARGS:-}"