blob: 0e40e4a9cbf2031f20e8a900b720ebfaabdd68e4 [file] [log] [blame]
#!/bin/bash
# Copyright 2019 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.
set -ex
build_guest_tools() {
local src_root="${KOKORO_ARTIFACTS_DIR}"/git/cros-container-guest-tools
local result_dir="${src_root}"/guest_debs
mkdir -p "${result_dir}"
cd "${src_root}"
curl -sSL https://bazel.build/bazel-release.pub.gpg \
| gpg --dearmor \
| sudo tee /etc/apt/trusted.gpg.d/bazel.gpg > /dev/null
sudo tee /etc/apt/sources.list.d/bazel.list > /dev/null << EOF
deb [arch=amd64 signed-by=/etc/apt/trusted.gpg.d/bazel.gpg] https://storage.googleapis.com/bazel-apt stable jdk1.8
EOF
sudo apt-get -q update
sudo DEBIAN_FRONTEND=noninteractive apt-get -q -y install \
bazel-4.2.2 python-is-python3
# Build all targets.
bazel-4.2.2 build //cros-debs:debs
# Copy resulting debs to results directory.
chmod 644 bazel-bin/cros-debs/*/*.deb
cp -r bazel-bin/cros-debs/* "${result_dir}"
}
# Builds one of the mesa-related tools. Usage is:
# build_mesa_shard <distro> <architecture> [<package> ...]
# Which will build <package> for the <distro> debian version with the given
# processor <architecture>.
build_mesa_shard() {
[[ $# -ge 3 ]]
local dist="$1"
local arch="$2"
shift 2
local pkg="$@"
local base_image="buildmesa_${dist}"
local base_image_tarball="${KOKORO_GFILE_DIR}"/"${base_image}".tar.xz
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json > /dev/null << EOF
{
"data-root": "/tmpfs/docker"
}
EOF
sudo apt-get -q update
sudo DEBIAN_FRONTEND=noninteractive apt-get -q -y install docker.io
if [[ -z $(sudo docker images -q "${base_image}" 2> /dev/null) ]]; then
sudo docker load -i "${base_image_tarball}"
fi
sudo docker run \
--rm \
--privileged \
--volume "${KOKORO_ARTIFACTS_DIR}/${dist}_mesa_debs":/artifacts \
--volume "${KOKORO_ARTIFACTS_DIR}/git/mesa":/scratch/mesa \
--env ARCHES="${arch}" \
--env PACKAGES="${pkg}" \
"${base_image}" \
./sync-and-build.sh
}