mirror of
https://github.com/netbirdio/gvisor.git
synced 2026-05-22 17:12:49 -07:00
BuildKite: Refactor Pipeline YAML.
This adds templates that can be used to distinguish tests that rely on the checked-out source tree vs using STAGED_BINARIES instead. PiperOrigin-RevId: 465155335
This commit is contained in:
committed by
gVisor bot
parent
dc4cd669fc
commit
adc4b6b316
+101
-34
@@ -7,6 +7,11 @@ _templates:
|
||||
limit: 10
|
||||
- exit_status: "*"
|
||||
limit: 2
|
||||
source_test: &source_test
|
||||
if: build.env("STAGED_BINARIES") == null
|
||||
platform_specific_agents: &platform_specific_agents {}
|
||||
kvm_agents: &kvm_agents {kvm: "true"}
|
||||
ubuntu_agents: &ubuntu_agents {os: "ubuntu"}
|
||||
benchmarks: &benchmarks
|
||||
timeout_in_minutes: 120
|
||||
retry:
|
||||
@@ -21,8 +26,9 @@ _templates:
|
||||
BENCHMARKS_TABLE: benchmarks
|
||||
BENCHMARKS_UPLOAD: true
|
||||
agents:
|
||||
<<: *kvm_agents
|
||||
<<: *platform_specific_agents
|
||||
arch: "amd64"
|
||||
kvm: "true"
|
||||
netstack_test: &netstack_test
|
||||
env:
|
||||
PACKAGES: >
|
||||
@@ -42,31 +48,40 @@ env:
|
||||
# Force a clean checkout every time to avoid reuse of files between runs.
|
||||
BUILDKITE_CLEAN_CHECKOUT: true
|
||||
|
||||
# Optional filter for syscall tests.
|
||||
SYSCALL_TEST_FILTERS: ''
|
||||
|
||||
steps:
|
||||
# Run basic smoke tests before preceding to other tests.
|
||||
- <<: *common
|
||||
<<: *source_test
|
||||
label: ":fire: Smoke tests (AMD64)"
|
||||
command: make smoke-tests
|
||||
agents:
|
||||
arch: "amd64"
|
||||
- wait
|
||||
- <<: *common
|
||||
<<: *source_test
|
||||
label: ":fire: Smoke tests (ARM64)"
|
||||
command: make smoke-tests
|
||||
agents:
|
||||
arch: "arm64"
|
||||
- <<: *common
|
||||
<<: *source_test
|
||||
label: ":fire: Smoke race tests"
|
||||
command: make smoke-race-tests
|
||||
- wait
|
||||
|
||||
# Build everything.
|
||||
- <<: *common
|
||||
<<: *source_test
|
||||
label: ":world_map: Build everything (AMD64)"
|
||||
command: "make build OPTIONS=--build_tag_filters=-nogo TARGETS=//..."
|
||||
agents:
|
||||
arch: "amd64"
|
||||
|
||||
- <<: *common
|
||||
<<: *source_test
|
||||
label: ":world_map: Build everything (ARM64)"
|
||||
commands:
|
||||
- "make build OPTIONS=--build_tag_filters=-nogo TARGETS=//pkg/..."
|
||||
@@ -78,6 +93,7 @@ steps:
|
||||
# as a GitHub action in order to preserve this maintaince across forks. However, providing the
|
||||
# action here may provide easier debuggability and diagnosis on failure.
|
||||
- <<: *common
|
||||
<<: *source_test
|
||||
label: ":golang: Go branch"
|
||||
commands:
|
||||
- tools/go_branch.sh
|
||||
@@ -86,6 +102,7 @@ steps:
|
||||
|
||||
# Check that commonly used netstack packages build on various platforms.
|
||||
- <<: *common
|
||||
<<: *source_test
|
||||
<<: *netstack_test
|
||||
label: ":mac: Netstack on Mac"
|
||||
commands:
|
||||
@@ -93,6 +110,7 @@ steps:
|
||||
- git checkout go && git clean -xf .
|
||||
- GOOS=darwin GOARCH=arm64 go build $$PACKAGES
|
||||
- <<: *common
|
||||
<<: *source_test
|
||||
<<: *netstack_test
|
||||
label: ":windows: Netstack on Windows"
|
||||
commands:
|
||||
@@ -100,6 +118,7 @@ steps:
|
||||
- git checkout go && git clean -xf .
|
||||
- GOOS=windows GOARCH=amd64 go build $$PACKAGES
|
||||
- <<: *common
|
||||
<<: *source_test
|
||||
<<: *netstack_test
|
||||
label: ":freebsd: Netstack on FreeBSD"
|
||||
commands:
|
||||
@@ -107,6 +126,7 @@ steps:
|
||||
- git checkout go && git clean -xf .
|
||||
- GOOS=freebsd GOARCH=amd64 go build $$PACKAGES
|
||||
- <<: *common
|
||||
<<: *source_test
|
||||
<<: *netstack_test
|
||||
label: ":openbsd: Netstack on OpenBSD"
|
||||
commands:
|
||||
@@ -114,6 +134,7 @@ steps:
|
||||
- git checkout go && git clean -xf .
|
||||
- GOOS=openbsd GOARCH=amd64 go build $$PACKAGES
|
||||
- <<: *common
|
||||
<<: *source_test
|
||||
<<: *netstack_test
|
||||
label: ":older_man: Netstack on 32-bit Linux"
|
||||
commands:
|
||||
@@ -123,6 +144,7 @@ steps:
|
||||
|
||||
# Release workflow.
|
||||
- <<: *common
|
||||
<<: *source_test
|
||||
label: ":ship: Release tests"
|
||||
commands:
|
||||
- make BAZEL_OPTIONS=--config=x86_64 artifacts/x86_64
|
||||
@@ -133,11 +155,13 @@ steps:
|
||||
|
||||
# Images tests.
|
||||
- <<: *common
|
||||
<<: *source_test
|
||||
label: ":docker: Images (x86_64)"
|
||||
command: make ARCH=x86_64 load-all-images
|
||||
agents:
|
||||
arch: "amd64"
|
||||
- <<: *common
|
||||
<<: *source_test
|
||||
label: ":docker: Images (aarch64)"
|
||||
command: make ARCH=aarch64 load-all-images
|
||||
agents:
|
||||
@@ -145,49 +169,60 @@ steps:
|
||||
|
||||
# Basic unit tests.
|
||||
- <<: *common
|
||||
<<: *source_test
|
||||
label: ":golang: Nogo tests"
|
||||
command: make nogo-tests
|
||||
- <<: *common
|
||||
<<: *source_test
|
||||
label: ":test_tube: Unit tests (cgroupv1)"
|
||||
command: make unit-tests
|
||||
agents:
|
||||
cgroup: "v1"
|
||||
arch: "amd64"
|
||||
- <<: *common
|
||||
<<: *source_test
|
||||
label: ":test_tube: Unit tests (cgroupv2)"
|
||||
command: make unit-tests
|
||||
agents:
|
||||
cgroup: "v2"
|
||||
arch: "amd64"
|
||||
- <<: *common
|
||||
<<: *source_test
|
||||
label: ":test_tube: Unit tests (ARM64)"
|
||||
command: make unit-tests
|
||||
agents:
|
||||
arch: "arm64"
|
||||
- <<: *common
|
||||
<<: *source_test
|
||||
label: ":test_tube: Container tests (cgroupv1)"
|
||||
command: make container-tests
|
||||
agents:
|
||||
<<: *kvm_agents
|
||||
cgroup: "v1"
|
||||
kvm: "true"
|
||||
arch: "amd64"
|
||||
- <<: *common
|
||||
# This variant is not really a source test, but we annotate it as such to
|
||||
# avoid running binary-only tests for all variants of cgroups. It is
|
||||
# sufficient to run cgroupv2 variants only for source changes.
|
||||
<<: *source_test
|
||||
label: ":test_tube: Container tests (cgroupv2)"
|
||||
command: make container-tests
|
||||
agents:
|
||||
<<: *kvm_agents
|
||||
cgroup: "v2"
|
||||
kvm: "true"
|
||||
arch: "amd64"
|
||||
|
||||
# All system call tests.
|
||||
- <<: *common
|
||||
label: ":toolbox: System call tests (AMD64)"
|
||||
command: make syscall-tests
|
||||
command: "make BAZEL_OPTIONS=--test_tag_filters=$SYSCALL_TEST_FILTERS syscall-tests"
|
||||
parallelism: 20
|
||||
agents:
|
||||
<<: *platform_specific_agents
|
||||
<<: *kvm_agents
|
||||
arch: "amd64"
|
||||
kvm: "true"
|
||||
- <<: *common
|
||||
<<: *source_test
|
||||
label: ":muscle: System call tests (ARM64)"
|
||||
command: make BAZEL_OPTIONS=--test_tag_filters=runsc_ptrace syscall-tests
|
||||
parallelism: 10
|
||||
@@ -196,99 +231,117 @@ steps:
|
||||
|
||||
# Integration tests.
|
||||
- <<: *common
|
||||
<<: *source_test
|
||||
label: ":docker: Docker tests (cgroupv1)"
|
||||
command: make docker-tests
|
||||
agents:
|
||||
<<: *ubuntu_agents
|
||||
arch: "amd64"
|
||||
cgroup: "v1"
|
||||
os: "ubuntu"
|
||||
- <<: *common
|
||||
# See above: not truly a source test.
|
||||
<<: *source_test
|
||||
label: ":docker: Docker tests (cgroupv2)"
|
||||
command: make docker-tests
|
||||
agents:
|
||||
<<: *ubuntu_agents
|
||||
arch: "amd64"
|
||||
cgroup: "v2"
|
||||
os: "ubuntu"
|
||||
- <<: *common
|
||||
label: ":goggles: Overlay tests"
|
||||
command: make overlay-tests
|
||||
agents:
|
||||
<<: *platform_specific_agents
|
||||
<<: *ubuntu_agents
|
||||
arch: "amd64"
|
||||
os: "ubuntu"
|
||||
- <<: *common
|
||||
label: ":safety_pin: Host network tests"
|
||||
command: make hostnet-tests
|
||||
agents:
|
||||
<<: *platform_specific_agents
|
||||
<<: *ubuntu_agents
|
||||
arch: "amd64"
|
||||
os: "ubuntu"
|
||||
- <<: *common
|
||||
label: ":satellite: gVisor GSO tests"
|
||||
command: make swgso-tests
|
||||
agents:
|
||||
<<: *platform_specific_agents
|
||||
<<: *ubuntu_agents
|
||||
arch: "amd64"
|
||||
os: "ubuntu"
|
||||
- <<: *common
|
||||
<<: *source_test
|
||||
label: ":coffee: Do tests"
|
||||
command: make do-tests
|
||||
agents:
|
||||
arch: "amd64"
|
||||
- <<: *common
|
||||
<<: *source_test
|
||||
label: ":person_in_lotus_position: KVM tests"
|
||||
command: make kvm-tests
|
||||
agents:
|
||||
<<: *kvm_agents
|
||||
arch: "amd64"
|
||||
kvm: "true"
|
||||
- <<: *common
|
||||
label: ":weight_lifter: Fsstress test"
|
||||
command: make fsstress-test
|
||||
agents:
|
||||
<<: *platform_specific_agents
|
||||
<<: *ubuntu_agents
|
||||
arch: "amd64"
|
||||
os: "ubuntu"
|
||||
- <<: *common
|
||||
label: ":docker: Containerd 1.3.9 tests"
|
||||
command: make containerd-test-1.3.9
|
||||
agents:
|
||||
<<: *platform_specific_agents
|
||||
<<: *ubuntu_agents
|
||||
cgroup: "v1"
|
||||
arch: "amd64"
|
||||
os: "ubuntu"
|
||||
- <<: *common
|
||||
label: ":docker: Containerd 1.4.3 tests"
|
||||
command: make containerd-test-1.4.3
|
||||
agents:
|
||||
os: "ubuntu"
|
||||
<<: *platform_specific_agents
|
||||
<<: *ubuntu_agents
|
||||
- <<: *common
|
||||
label: ":docker: Containerd 1.5.4 tests (cgroupv1)"
|
||||
command: make containerd-test-1.5.4
|
||||
agents:
|
||||
<<: *platform_specific_agents
|
||||
<<: *ubuntu_agents
|
||||
cgroup: "v1"
|
||||
os: "ubuntu"
|
||||
- <<: *common
|
||||
# See above: not truly a source test.
|
||||
<<: *source_test
|
||||
label: ":docker: Containerd 1.5.4 tests (cgroupv2)"
|
||||
command: make containerd-test-1.5.4
|
||||
agents:
|
||||
<<: *ubuntu_agents
|
||||
cgroup: "v2"
|
||||
os: "ubuntu"
|
||||
- <<: *common
|
||||
label: ":docker: Containerd 1.6.0-rc.4 tests (cgroupv1)"
|
||||
command: make containerd-test-1.6.0-rc.4
|
||||
agents:
|
||||
<<: *platform_specific_agents
|
||||
<<: *ubuntu_agents
|
||||
cgroup: "v1"
|
||||
os: "ubuntu"
|
||||
- <<: *common
|
||||
<<: *source_test
|
||||
label: ":docker: Containerd 1.6.0-rc.4 tests (cgroupv2)"
|
||||
command: make containerd-test-1.6.0-rc.4
|
||||
agents:
|
||||
<<: *ubuntu_agents
|
||||
cgroup: "v2"
|
||||
os: "ubuntu"
|
||||
- <<: *common
|
||||
<<: *source_test
|
||||
label: ":podman: Podman"
|
||||
command: sudo ./test/podman/run.sh
|
||||
agents:
|
||||
<<: *ubuntu_agents
|
||||
cgroup: "v2"
|
||||
os: "ubuntu"
|
||||
|
||||
# Check the website builds.
|
||||
- <<: *common
|
||||
<<: *source_test
|
||||
label: ":earth_americas: Website tests"
|
||||
command: make website-build
|
||||
agents:
|
||||
@@ -296,20 +349,23 @@ steps:
|
||||
|
||||
# Networking tests.
|
||||
- <<: *common
|
||||
<<: *source_test
|
||||
label: ":table_tennis_paddle_and_ball: IPTables tests"
|
||||
command: make iptables-tests
|
||||
agents:
|
||||
os: "ubuntu"
|
||||
<<: *ubuntu_agents
|
||||
- <<: *common
|
||||
<<: *source_test
|
||||
label: ":construction_worker: Packetdrill tests"
|
||||
command: make packetdrill-tests
|
||||
agents:
|
||||
os: "ubuntu"
|
||||
<<: *ubuntu_agents
|
||||
- <<: *common
|
||||
<<: *source_test
|
||||
label: ":hammer: Packetimpact tests"
|
||||
command: make packetimpact-tests
|
||||
agents:
|
||||
os: "ubuntu"
|
||||
<<: *ubuntu_agents
|
||||
|
||||
# Runtime tests.
|
||||
- <<: *common
|
||||
@@ -317,36 +373,41 @@ steps:
|
||||
command: make RUNTIME_LOG_DIR=/tmp/$${BUILDKITE_JOB_ID} php8.1.1-runtime-tests
|
||||
parallelism: 10
|
||||
agents:
|
||||
<<: *platform_specific_agents
|
||||
<<: *ubuntu_agents
|
||||
arch: "amd64"
|
||||
os: "ubuntu"
|
||||
- <<: *common
|
||||
label: ":java: Java runtime tests"
|
||||
command: make RUNTIME_LOG_DIR=/tmp/$${BUILDKITE_JOB_ID} java17-runtime-tests
|
||||
parallelism: 40
|
||||
agents:
|
||||
<<: *platform_specific_agents
|
||||
<<: *ubuntu_agents
|
||||
arch: "amd64"
|
||||
os: "ubuntu"
|
||||
- <<: *common
|
||||
label: ":golang: Go runtime tests"
|
||||
command: make RUNTIME_LOG_DIR=/tmp/$${BUILDKITE_JOB_ID} go1.16-runtime-tests
|
||||
parallelism: 10
|
||||
agents:
|
||||
<<: *platform_specific_agents
|
||||
<<: *ubuntu_agents
|
||||
arch: "amd64"
|
||||
os: "ubuntu"
|
||||
- <<: *common
|
||||
label: ":node: NodeJS runtime tests"
|
||||
command: make RUNTIME_LOG_DIR=/tmp/$${BUILDKITE_JOB_ID} nodejs16.13.2-runtime-tests
|
||||
parallelism: 10
|
||||
agents:
|
||||
<<: *platform_specific_agents
|
||||
<<: *ubuntu_agents
|
||||
arch: "amd64"
|
||||
os: "ubuntu"
|
||||
- <<: *common
|
||||
label: ":python: Python runtime tests"
|
||||
command: make RUNTIME_LOG_DIR=/tmp/$${BUILDKITE_JOB_ID} python3.10.2-runtime-tests
|
||||
parallelism: 10
|
||||
agents:
|
||||
<<: *platform_specific_agents
|
||||
<<: *ubuntu_agents
|
||||
arch: "amd64"
|
||||
os: "ubuntu"
|
||||
|
||||
# Runtime tests (LISAFS).
|
||||
- <<: *common
|
||||
@@ -355,40 +416,45 @@ steps:
|
||||
parallelism: 10
|
||||
if: build.message =~ /lisafs/ || build.branch == "master"
|
||||
agents:
|
||||
<<: *platform_specific_agents
|
||||
<<: *ubuntu_agents
|
||||
arch: "amd64"
|
||||
os: "ubuntu"
|
||||
- <<: *common
|
||||
label: ":java: Java runtime tests (LISAFS)"
|
||||
command: make RUNTIME_LOG_DIR=/tmp/$${BUILDKITE_JOB_ID} java17-runtime-tests_lisafs
|
||||
parallelism: 40
|
||||
if: build.message =~ /lisafs/ || build.branch == "master"
|
||||
agents:
|
||||
<<: *platform_specific_agents
|
||||
<<: *ubuntu_agents
|
||||
arch: "amd64"
|
||||
os: "ubuntu"
|
||||
- <<: *common
|
||||
label: ":golang: Go runtime tests (LISAFS)"
|
||||
command: make RUNTIME_LOG_DIR=/tmp/$${BUILDKITE_JOB_ID} go1.16-runtime-tests_lisafs
|
||||
parallelism: 10
|
||||
if: build.message =~ /lisafs/ || build.branch == "master"
|
||||
agents:
|
||||
<<: *platform_specific_agents
|
||||
<<: *ubuntu_agents
|
||||
arch: "amd64"
|
||||
os: "ubuntu"
|
||||
- <<: *common
|
||||
label: ":node: NodeJS runtime tests (LISAFS)"
|
||||
command: make RUNTIME_LOG_DIR=/tmp/$${BUILDKITE_JOB_ID} nodejs16.13.2-runtime-tests_lisafs
|
||||
parallelism: 10
|
||||
if: build.message =~ /lisafs/ || build.branch == "master"
|
||||
agents:
|
||||
<<: *platform_specific_agents
|
||||
<<: *ubuntu_agents
|
||||
arch: "amd64"
|
||||
os: "ubuntu"
|
||||
- <<: *common
|
||||
label: ":python: Python runtime tests (LISAFS)"
|
||||
command: make RUNTIME_LOG_DIR=/tmp/$${BUILDKITE_JOB_ID} python3.10.2-runtime-tests_lisafs
|
||||
parallelism: 10
|
||||
if: build.message =~ /lisafs/ || build.branch == "master"
|
||||
agents:
|
||||
<<: *platform_specific_agents
|
||||
<<: *ubuntu_agents
|
||||
arch: "amd64"
|
||||
os: "ubuntu"
|
||||
|
||||
# Run basic benchmarks smoke tests (no upload).
|
||||
- <<: *common
|
||||
@@ -397,8 +463,9 @@ steps:
|
||||
# Use the opposite of the benchmarks filter.
|
||||
if: build.branch != "master"
|
||||
agents:
|
||||
<<: *platform_specific_agents
|
||||
<<: *kvm_agents
|
||||
arch: "amd64"
|
||||
kvm: "true"
|
||||
|
||||
# Run all benchmarks.
|
||||
- <<: *benchmarks
|
||||
@@ -413,7 +480,7 @@ steps:
|
||||
# For fio, running with --test.benchtime=Xs scales the written/read
|
||||
# bytes to several GB. This is not a problem for root/bind/volume mounts,
|
||||
# but for tmpfs mounts, the size can grow to more memory than the machine
|
||||
# has availabe. Fix the runs to 1GB written/read for the benchmark.
|
||||
# has available. Fix the runs to 1GB written/read for the benchmark.
|
||||
- <<: *benchmarks
|
||||
label: ":floppy_disk: FIO benchmarks (read/write)"
|
||||
command: make -i benchmark-platforms BENCHMARKS_SUITE=fio BENCHMARKS_TARGETS=test/benchmarks/fs:fio_test BENCHMARKS_FILTER=Fio/operation\.[rw][er] BENCHMARKS_OPTIONS=--test.benchtime=1000x
|
||||
|
||||
Reference in New Issue
Block a user