2020-12-03 19:04:34 +00:00
|
|
|
_templates:
|
|
|
|
common: &common
|
2020-12-11 17:42:58 +00:00
|
|
|
timeout_in_minutes: 30
|
2020-12-03 19:04:34 +00:00
|
|
|
retry:
|
|
|
|
automatic:
|
|
|
|
- exit_status: -1
|
|
|
|
limit: 10
|
|
|
|
- exit_status: "*"
|
|
|
|
limit: 2
|
2021-01-05 21:20:12 +00:00
|
|
|
benchmarks: &benchmarks
|
|
|
|
timeout_in_minutes: 120
|
|
|
|
retry:
|
|
|
|
automatic: false
|
|
|
|
soft_fail: true
|
2021-01-07 09:15:20 +00:00
|
|
|
if: build.branch == "master"
|
2021-01-05 21:20:12 +00:00
|
|
|
env:
|
|
|
|
# BENCHMARKS_OFFICIAL is set from hooks/pre-command, based
|
|
|
|
# on whether this is executing on the master branch.
|
|
|
|
BENCHMARKS_DATASET: buildkite
|
|
|
|
BENCHMARKS_PLATFORMS: "ptrace kvm"
|
|
|
|
BENCHMARKS_PROJECT: gvisor-benchmarks
|
|
|
|
BENCHMARKS_TABLE: benchmarks
|
|
|
|
BENCHMARKS_UPLOAD: true
|
2020-12-03 19:04:34 +00:00
|
|
|
|
|
|
|
steps:
|
|
|
|
# Run basic smoke tests before preceding to other tests.
|
2020-12-10 02:48:52 +00:00
|
|
|
- <<: *common
|
|
|
|
label: ":fire: Smoke tests"
|
2020-12-03 19:04:34 +00:00
|
|
|
command: make smoke-tests
|
|
|
|
- wait
|
|
|
|
|
|
|
|
# Check that the Go branch builds.
|
|
|
|
- <<: *common
|
|
|
|
label: ":golang: Go branch"
|
|
|
|
commands:
|
2021-01-12 06:31:16 +00:00
|
|
|
- tools/go_branch.sh
|
2021-01-13 04:31:08 +00:00
|
|
|
- git checkout go && git clean -xf .
|
2020-12-03 19:04:34 +00:00
|
|
|
- go build ./...
|
|
|
|
|
2020-12-11 17:42:58 +00:00
|
|
|
# Release workflow.
|
|
|
|
- <<: *common
|
|
|
|
label: ":ship: Release tests"
|
2021-01-09 02:01:05 +00:00
|
|
|
commands:
|
|
|
|
- make artifacts/x86_64
|
|
|
|
- make BAZEL_OPTIONS=--config=cross-aarch64 artifacts/aarch64
|
|
|
|
- make release
|
2020-12-11 17:42:58 +00:00
|
|
|
|
2021-01-21 23:39:24 +00:00
|
|
|
# Images tests.
|
|
|
|
- <<: *common
|
|
|
|
label: ":docker: Images (x86_64)"
|
|
|
|
command: make ARCH=x86_64 load-all-images
|
|
|
|
- <<: *common
|
|
|
|
label: ":docker: Images (aarch64)"
|
|
|
|
command: make ARCH=aarch64 load-all-images
|
|
|
|
|
2020-12-03 19:04:34 +00:00
|
|
|
# Basic unit tests.
|
2021-04-16 21:18:51 +00:00
|
|
|
- <<: *common
|
|
|
|
label: ":golang: Nogo tests"
|
|
|
|
command: make nogo-tests
|
2020-12-03 19:04:34 +00:00
|
|
|
- <<: *common
|
|
|
|
label: ":test_tube: Unit tests"
|
|
|
|
command: make unit-tests
|
2021-01-13 19:46:25 +00:00
|
|
|
- <<: *common
|
|
|
|
label: ":test_tube: runsc tests"
|
|
|
|
command: make runsc-tests
|
2020-12-03 19:04:34 +00:00
|
|
|
|
|
|
|
# All system call tests.
|
|
|
|
- <<: *common
|
|
|
|
label: ":toolbox: System call tests"
|
|
|
|
command: make syscall-tests
|
|
|
|
parallelism: 20
|
|
|
|
|
|
|
|
# Integration tests.
|
|
|
|
- <<: *common
|
|
|
|
label: ":docker: Docker tests"
|
|
|
|
command: make docker-tests
|
|
|
|
- <<: *common
|
|
|
|
label: ":goggles: Overlay tests"
|
|
|
|
command: make overlay-tests
|
|
|
|
- <<: *common
|
|
|
|
label: ":safety_pin: Host network tests"
|
|
|
|
command: make hostnet-tests
|
|
|
|
- <<: *common
|
|
|
|
label: ":satellite: SWGSO tests"
|
|
|
|
command: make swgso-tests
|
|
|
|
- <<: *common
|
|
|
|
label: ":coffee: Do tests"
|
|
|
|
command: make do-tests
|
|
|
|
- <<: *common
|
|
|
|
label: ":person_in_lotus_position: KVM tests"
|
|
|
|
command: make kvm-tests
|
2021-04-05 23:58:07 +00:00
|
|
|
- <<: *common
|
|
|
|
label: ":weight_lifter: Fsstress test"
|
|
|
|
command: make fsstress-test
|
2020-12-03 19:04:34 +00:00
|
|
|
- <<: *common
|
2020-12-04 00:53:22 +00:00
|
|
|
label: ":docker: Containerd 1.3.9 tests"
|
|
|
|
command: make containerd-test-1.3.9
|
2020-12-03 19:04:34 +00:00
|
|
|
- <<: *common
|
2020-12-04 23:03:21 +00:00
|
|
|
label: ":docker: Containerd 1.4.3 tests"
|
|
|
|
command: make containerd-test-1.4.3
|
2020-12-03 19:04:34 +00:00
|
|
|
|
|
|
|
# Check the website builds.
|
|
|
|
- <<: *common
|
|
|
|
label: ":earth_americas: Website tests"
|
|
|
|
command: make website-build
|
|
|
|
|
|
|
|
# Networking tests.
|
|
|
|
- <<: *common
|
|
|
|
label: ":table_tennis_paddle_and_ball: IPTables tests"
|
|
|
|
command: make iptables-tests
|
|
|
|
- <<: *common
|
|
|
|
label: ":construction_worker: Packetdrill tests"
|
|
|
|
command: make packetdrill-tests
|
|
|
|
- <<: *common
|
|
|
|
label: ":hammer: Packetimpact tests"
|
|
|
|
command: make packetimpact-tests
|
|
|
|
|
2020-12-10 02:48:52 +00:00
|
|
|
# Runtime tests.
|
2020-12-03 19:04:34 +00:00
|
|
|
- <<: *common
|
|
|
|
label: ":php: PHP runtime tests"
|
2020-12-10 02:48:52 +00:00
|
|
|
command: make php7.3.6-runtime-tests_vfs2
|
2020-12-03 19:04:34 +00:00
|
|
|
parallelism: 10
|
|
|
|
- <<: *common
|
|
|
|
label: ":java: Java runtime tests"
|
2020-12-10 02:48:52 +00:00
|
|
|
command: make java11-runtime-tests_vfs2
|
2020-12-03 19:04:34 +00:00
|
|
|
parallelism: 40
|
|
|
|
- <<: *common
|
|
|
|
label: ":golang: Go runtime tests"
|
2020-12-10 02:48:52 +00:00
|
|
|
command: make go1.12-runtime-tests_vfs2
|
2020-12-03 19:04:34 +00:00
|
|
|
parallelism: 10
|
|
|
|
- <<: *common
|
|
|
|
label: ":node: NodeJS runtime tests"
|
2020-12-10 02:48:52 +00:00
|
|
|
command: make nodejs12.4.0-runtime-tests_vfs2
|
2020-12-03 19:04:34 +00:00
|
|
|
parallelism: 10
|
|
|
|
- <<: *common
|
2020-12-04 23:03:21 +00:00
|
|
|
label: ":python: Python runtime tests"
|
2020-12-10 02:48:52 +00:00
|
|
|
command: make python3.7.3-runtime-tests_vfs2
|
2020-12-03 19:04:34 +00:00
|
|
|
parallelism: 10
|
2020-12-30 07:26:29 +00:00
|
|
|
|
|
|
|
# Runtime tests (VFS1).
|
|
|
|
- <<: *common
|
|
|
|
label: ":php: PHP runtime tests (VFS1)"
|
|
|
|
command: make php7.3.6-runtime-tests
|
|
|
|
parallelism: 10
|
|
|
|
if: build.message =~ /VFS1/ || build.branch == "master"
|
|
|
|
- <<: *common
|
|
|
|
label: ":java: Java runtime tests (VFS1)"
|
|
|
|
command: make java11-runtime-tests
|
|
|
|
parallelism: 40
|
|
|
|
if: build.message =~ /VFS1/ || build.branch == "master"
|
|
|
|
- <<: *common
|
|
|
|
label: ":golang: Go runtime tests (VFS1)"
|
|
|
|
command: make go1.12-runtime-tests
|
|
|
|
parallelism: 10
|
|
|
|
if: build.message =~ /VFS1/ || build.branch == "master"
|
|
|
|
- <<: *common
|
|
|
|
label: ":node: NodeJS runtime tests (VFS1)"
|
|
|
|
command: make nodejs12.4.0-runtime-tests
|
|
|
|
parallelism: 10
|
|
|
|
if: build.message =~ /VFS1/ || build.branch == "master"
|
|
|
|
- <<: *common
|
|
|
|
label: ":python: Python runtime tests (VFS1)"
|
|
|
|
command: make python3.7.3-runtime-tests
|
|
|
|
parallelism: 10
|
|
|
|
if: build.message =~ /VFS1/ || build.branch == "master"
|
2020-12-30 23:06:47 +00:00
|
|
|
|
2020-12-30 09:28:26 +00:00
|
|
|
# ARM tests.
|
|
|
|
- <<: *common
|
|
|
|
label: ":mechanical_arm: ARM"
|
|
|
|
command: make arm-qemu-smoke-test
|
|
|
|
|
2021-01-05 21:20:12 +00:00
|
|
|
# Run basic benchmarks smoke tests (no upload).
|
2020-12-30 23:06:47 +00:00
|
|
|
- <<: *common
|
2021-01-05 21:20:12 +00:00
|
|
|
label: ":fire: Benchmarks smoke test"
|
|
|
|
command: make benchmark-platforms
|
|
|
|
# Use the opposite of the benchmarks filter.
|
2021-01-07 09:15:20 +00:00
|
|
|
if: build.branch != "master"
|
2021-01-05 21:20:12 +00:00
|
|
|
|
|
|
|
# Run all benchmarks.
|
|
|
|
- <<: *benchmarks
|
|
|
|
label: ":bazel: ABSL build benchmarks"
|
|
|
|
command: make benchmark-platforms BENCHMARKS_FILTER="ABSL/page_cache.clean" BENCHMARKS_SUITE=absl BENCHMARKS_TARGETS=test/benchmarks/fs:bazel_test
|
2021-01-07 20:47:12 +00:00
|
|
|
- <<: *benchmarks
|
|
|
|
label: ":go: runsc build benchmarks"
|
|
|
|
command: make benchmark-platforms BENCHMARKS_FILTER="Runsc/page_cache.clean/filesystem.bind" BENCHMARKS_SUITE=runsc BENCHMARKS_TARGETS=test/benchmarks/fs:bazel_test
|
2021-01-05 21:20:12 +00:00
|
|
|
- <<: *benchmarks
|
|
|
|
label: ":metal: FFMPEG benchmarks"
|
|
|
|
command: make benchmark-platforms BENCHMARKS_SUITE=ffmpeg BENCHMARKS_TARGETS=test/benchmarks/media:ffmpeg_test
|
2021-03-10 22:34:47 +00:00
|
|
|
# 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
|
2021-03-18 19:11:59 +00:00
|
|
|
# has availabe. Fix the runs to 1GB written/read for the benchmark.
|
2021-01-05 21:20:12 +00:00
|
|
|
- <<: *benchmarks
|
2021-03-23 17:08:56 +00:00
|
|
|
label: ":floppy_disk: FIO benchmarks (read/write)"
|
|
|
|
command: make benchmark-platforms BENCHMARKS_SUITE=fio BENCHMARKS_TARGETS=test/benchmarks/fs:fio_test BENCHMARKS_FILTER=Fio/operation\.[rw][er] BENCHMARKS_OPTIONS=--test.benchtime=1000x
|
|
|
|
# For rand(read|write) fio benchmarks, running 15s does not overwhelm the system for tmpfs mounts.
|
|
|
|
- <<: *benchmarks
|
|
|
|
label: ":cd: FIO benchmarks (randread/randwrite)"
|
|
|
|
command: make benchmark-platforms BENCHMARKS_SUITE=fio BENCHMARKS_TARGETS=test/benchmarks/fs:fio_test BENCHMARKS_FILTER=Fio/operation\.rand BENCHMARKS_OPTIONS=--test.benchtime=15s
|
2021-01-05 21:20:12 +00:00
|
|
|
- <<: *benchmarks
|
|
|
|
label: ":globe_with_meridians: HTTPD benchmarks"
|
|
|
|
command: make benchmark-platforms BENCHMARKS_FILTER="Continuous" BENCHMARKS_SUITE=httpd BENCHMARKS_TARGETS=test/benchmarks/network:httpd_test
|
|
|
|
- <<: *benchmarks
|
|
|
|
label: ":piedpiper: iperf benchmarks"
|
|
|
|
command: make benchmark-platforms BENCHMARKS_SUITE=iperf BENCHMARKS_TARGETS=test/benchmarks/network:iperf_test
|
|
|
|
- <<: *benchmarks
|
|
|
|
label: ":nginx: nginx benchmarks"
|
|
|
|
command: make benchmark-platforms BENCHMARKS_FILTER="Continuous" BENCHMARKS_SUITE=nginx BENCHMARKS_TARGETS=test/benchmarks/network:nginx_test
|
|
|
|
- <<: *benchmarks
|
|
|
|
label: ":node: node benchmarks"
|
|
|
|
command: make benchmark-platforms BENCHMARKS_SUITE=node BENCHMARKS_TARGETS=test/benchmarks/network:node_test
|
|
|
|
- <<: *benchmarks
|
|
|
|
label: ":redis: Redis benchmarks"
|
2021-01-25 20:16:00 +00:00
|
|
|
command: make benchmark-platforms BENCHMARKS_SUITE=redis BENCHMARKS_TARGETS=test/benchmarks/database:redis_test BENCHMARKS_OPTIONS=-test.benchtime=15s
|
2021-01-05 21:20:12 +00:00
|
|
|
- <<: *benchmarks
|
|
|
|
label: ":ruby: Ruby benchmarks"
|
|
|
|
command: make benchmark-platforms BENCHMARKS_SUITE=ruby BENCHMARKS_TARGETS=test/benchmarks/network:ruby_test
|
|
|
|
- <<: *benchmarks
|
|
|
|
label: ":weight_lifter: Size benchmarks"
|
|
|
|
command: make benchmark-platforms BENCHMARKS_SUITE=size BENCHMARKS_TARGETS=test/benchmarks/base:size_test
|
|
|
|
- <<: *benchmarks
|
|
|
|
label: ":speedboat: Startup benchmarks"
|
|
|
|
command: make benchmark-platforms BENCHMARKS_SUITE=startup BENCHMARKS_TARGETS=test/benchmarks/base:startup_test
|
|
|
|
- <<: *benchmarks
|
|
|
|
label: ":computer: sysbench benchmarks"
|
|
|
|
command: make benchmark-platforms BENCHMARKS_SUITE=sysbench BENCHMARKS_TARGETS=test/benchmarks/base:sysbench_test
|
|
|
|
- <<: *benchmarks
|
|
|
|
label: ":tensorflow: TensorFlow benchmarks"
|
|
|
|
command: make benchmark-platforms BENCHMARKS_SUITE=tensorflow BENCHMARKS_TARGETS=test/benchmarks/ml:tensorflow_test
|