mirror of
https://chromium.googlesource.com/crosvm/crosvm
synced 2025-02-06 02:25:23 +00:00
This CL fixes some of the issues that prevented the test system from running on other workstations. - Builders run by Kokoro will not use a scratch mount. It's not needed, and will cause issues if stored on /tmp with noexec set. - Running podman with label=disable to prevent selinux issues. The run_tests implementation has been moved to a separate file and updated with parsing of cargo test output. This allows simpler test output and integration with the test results UI in sponge. The sponge test UI can make it much easier to see which tests failed, and to find the log of that test case. This CL also includes an ./ci/kokoro/uprev script to uprev the manifest versions. And runs the uprev. BUG=b:174861002 TEST=Tested by forcing a kokoro build with this CL Change-Id: I0cba9bb68915e2558a4ea6061dd9ba0a7050421b Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/crosvm/+/2669712 Reviewed-by: Zach Reizner <zachr@chromium.org> Tested-by: kokoro <noreply+kokoro@google.com> Tested-by: Dennis Kempin <denniskempin@google.com> Commit-Queue: Dennis Kempin <denniskempin@google.com>
78 lines
2.5 KiB
Docker
78 lines
2.5 KiB
Docker
# 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.
|
|
#
|
|
# Base image for crosvm_builder and crosvm_aarch64_builder containing basic
|
|
# devleopment environment for building rust.
|
|
|
|
# TODO(b/177078591): Use debian buster and backports (or manual dpkg downloads)
|
|
# of outdated libraries. Sid could blow up on us any day.
|
|
FROM debian:buster
|
|
|
|
# Set timezone so apt-get won't try to prompt
|
|
ARG DEBIAN_FRONTEND=noninteractive
|
|
ENV TZ=US/Pacific
|
|
|
|
# Add bullseye to sources so we can install some newer versions of packages.
|
|
RUN echo 'deb http://deb.debian.org/debian bullseye main' >/etc/apt/sources.list.d/testing.list
|
|
RUN echo 'APT::Default-Release "stable";' >/etc/apt/apt.conf.d/99_default_stable
|
|
|
|
RUN apt-get update && apt-get install --yes --no-install-recommends \
|
|
ca-certificates \
|
|
curl \
|
|
g++ \
|
|
gcc \
|
|
git \
|
|
jq \
|
|
make \
|
|
meson/testing \
|
|
nasm \
|
|
ninja-build \
|
|
openssh-client \
|
|
pkg-config \
|
|
protobuf-compiler \
|
|
python3 \
|
|
python3-setuptools \
|
|
rsync \
|
|
screen \
|
|
sudo
|
|
|
|
# This is a scratch volume for build files. It can be used to allow incremental
|
|
# builds between container runs.
|
|
# Note: This volume is optional if incremental builds are not required.
|
|
VOLUME /workspace/scratch
|
|
|
|
# This is where the chromiumos source tree will be mounted
|
|
VOLUME /workspace/src
|
|
|
|
# This is a volume to store additional logs for kokoro builds that are uploaded
|
|
# to sponge.
|
|
VOLUME /workspace/logs
|
|
|
|
# Install the current crosvm rust toolchain via rustup.
|
|
COPY rust-toolchain ./
|
|
RUN curl https://sh.rustup.rs -sSf | sh -s -- \
|
|
-y \
|
|
--profile minimal \
|
|
-c rustfmt,clippy \
|
|
--default-toolchain $(cat rust-toolchain)
|
|
ENV PATH="/root/.cargo/bin:${PATH}"
|
|
|
|
# Point cargo to store data on the scratch volume.
|
|
ENV CARGO_TARGET_DIR=/workspace/scratch/cargo_target
|
|
ENV CARGO_HOME=/workspace/scratch/cargo_home
|
|
|
|
# Warms up the cargo registry cache for future cargo runs. Cargo will still
|
|
# update the cache using a git pull, but it only needs to download files that
|
|
# were changed since this image was built.
|
|
RUN cargo install thisiznotarealpackage -q || true
|
|
|
|
# We are building out of source with a readonly source filesystem. This flag
|
|
# tells some build.rs files to not write into the src filesystem.
|
|
ENV RUSTFLAGS='--cfg hermetic'
|
|
|
|
# Environment variables for the run_tests script to enable all tests.
|
|
ENV CROSVM_CROS_BUILD=1
|
|
|
|
# All commands will be executed in the crosvm src directory.
|
|
WORKDIR /workspace/src/platform/crosvm
|