ci: Smoketest valgrind.
docker: Dedup complement-tester-valgrind. Signed-off-by: Jason Volk <jason@zemos.net>
This commit is contained in:
13
.github/workflows/test.yml
vendored
13
.github/workflows/test.yml
vendored
@@ -52,7 +52,7 @@ jobs:
|
||||
name: Unit
|
||||
uses: ./.github/workflows/bake.yml
|
||||
with:
|
||||
bake_targets: '["tests-unit"]'
|
||||
bake_targets: '["unit"]'
|
||||
cargo_profiles: '["test"]'
|
||||
feat_sets: '["all"]'
|
||||
rust_toolchains: ${{inputs.rust_toolchains}}
|
||||
@@ -69,7 +69,7 @@ jobs:
|
||||
name: Smoke
|
||||
uses: ./.github/workflows/bake.yml
|
||||
with:
|
||||
bake_targets: '["tests-smoke"]'
|
||||
bake_targets: '["smoke", "smoke-valgrind"]'
|
||||
cargo_profiles: ${{inputs.cargo_profiles}}
|
||||
feat_sets: ${{inputs.feat_sets}}
|
||||
rust_toolchains: ${{inputs.rust_toolchains}}
|
||||
@@ -83,12 +83,17 @@ jobs:
|
||||
[
|
||||
{"cargo_profile": "test", "feat_set": "default"},
|
||||
{"cargo_profile": "test", "rust_toolchain": "stable"},
|
||||
{"cargo_profile": "test", "feat_set": "none", "bake_target": "smoke-valgrind"},
|
||||
{"cargo_profile": "release", "rust_toolchain": "nightly"},
|
||||
{"cargo_profile": "release", "rust_toolchain": "stable", "feat_set": "none"},
|
||||
{"cargo_profile": "release-debuginfo"},
|
||||
{"cargo_profile": "release", "bake_target": "smoke-valgrind"},
|
||||
{"cargo_profile": "release-debuginfo", "rust_toolchain": "nightly"},
|
||||
{"cargo_profile": "release-debuginfo", "rust_toolchain": "stable", "feat_set": "none"},
|
||||
{"cargo_profile": "release-debuginfo", "bake_target": "smoke"},
|
||||
{"cargo_profile": "release-native", "rust_toolchain": "stable"},
|
||||
{"cargo_profile": "release-native", "feat_set": "none"},
|
||||
{"cargo_profile": "release-native", "feat_set": "default"}
|
||||
{"cargo_profile": "release-native", "feat_set": "default"},
|
||||
{"cargo_profile": "release-native", "bake_target": "smoke-valgrind"}
|
||||
]
|
||||
|
||||
complement:
|
||||
|
||||
@@ -238,50 +238,3 @@ COPY <<EOF uwu.sh
|
||||
EOF
|
||||
RUN echo $(tr -d '\n' < uwu.sh) > uwu.sh
|
||||
ENTRYPOINT ["/bin/bash", "/usr/src/complement/uwu.sh"]
|
||||
|
||||
|
||||
FROM input AS complement-tester-valgrind
|
||||
ARG complement_debug=0
|
||||
ARG complement_count=1
|
||||
ARG complement_parallel=16
|
||||
ARG complement_shuffle=1337
|
||||
ARG complement_timeout="1h"
|
||||
ARG complement_run=".*"
|
||||
ARG complement_skip=""
|
||||
ARG complement_tags="conduwuit_blacklist"
|
||||
ARG complement_tests="./tests/..."
|
||||
ARG complement_base_image
|
||||
|
||||
WORKDIR /
|
||||
COPY --link --from=input . .
|
||||
|
||||
WORKDIR /usr/src/complement
|
||||
ENV COMPLEMENT_DEBUG=$complement_debug
|
||||
ENV complement_parallel="$complement_parallel"
|
||||
ENV complement_shuffle="$complement_shuffle"
|
||||
ENV complement_tags="$complement_tags"
|
||||
ENV complement_timeout="$complement_timeout"
|
||||
ENV complement_count="$complement_count"
|
||||
ENV complement_tests="$complement_tests"
|
||||
ENV complement_skip="$complement_skip"
|
||||
ENV complement_run="$complement_run"
|
||||
ENV complement_tests="$complement_tests"
|
||||
ENV COMPLEMENT_HOSTNAME_RUNNING_COMPLEMENT="host.docker.internal"
|
||||
ENV COMPLEMENT_HOST_MOUNTS="/var/run/docker.sock:/var/run/docker.sock"
|
||||
COPY <<EOF valgrind.sh
|
||||
env;
|
||||
set -eux;
|
||||
|
||||
COMPLEMENT_BASE_IMAGE="\${1:-$complement_base_image}"
|
||||
go test
|
||||
-shuffle="${complement_shuffle}"
|
||||
-parallel="${complement_parallel}"
|
||||
-timeout="${complement_timeout}"
|
||||
-count="${complement_count}"
|
||||
-tags="${complement_tags}"
|
||||
-skip="${complement_skip}"
|
||||
-run="${complement_run}"
|
||||
"${complement_tests}"
|
||||
EOF
|
||||
RUN echo $(tr -d '\n' < valgrind.sh) > valgrind.sh
|
||||
ENTRYPOINT ["/bin/bash", "/usr/src/complement/valgrind.sh"]
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# syntax = docker/dockerfile:1.11-labs
|
||||
|
||||
FROM input AS smoketest-version
|
||||
|
||||
FROM input AS smoke-version
|
||||
COPY --link --from=input . .
|
||||
RUN <<EOF
|
||||
set -eux
|
||||
tuwunel -V
|
||||
@@ -10,8 +10,8 @@ RUN <<EOF
|
||||
EOF
|
||||
|
||||
|
||||
FROM input AS smoketest-startup
|
||||
|
||||
FROM input AS smoke-startup
|
||||
COPY --link --from=input . .
|
||||
ENV TUWUNEL_LOG="info"
|
||||
ENV TUWUNEL_DATABASE_PATH="/tmp/smoketest.db"
|
||||
RUN <<EOF
|
||||
@@ -25,18 +25,18 @@ RUN <<EOF
|
||||
EOF
|
||||
|
||||
|
||||
FROM input AS smoketest-valgrind
|
||||
|
||||
WORKDIR /
|
||||
COPY --link --from=valgrind . .
|
||||
|
||||
FROM input AS smoke-valgrind
|
||||
ARG leak_check="no"
|
||||
ARG undef_value_errors="no"
|
||||
COPY --link --from=input . .
|
||||
ENV TUWUNEL_LOG="info"
|
||||
ENV TUWUNEL_DATABASE_PATH="/tmp/smoketest.db"
|
||||
RUN <<EOF
|
||||
set -eux
|
||||
ulimit -n 65535
|
||||
valgrind \
|
||||
--leak-check=no \
|
||||
--undef-value-errors=no \
|
||||
--leak-check=${leak_check} \
|
||||
--undef-value-errors=${undef_value_errors} \
|
||||
--exit-on-first-error=yes \
|
||||
--error-exitcode=1 \
|
||||
tuwunel \
|
||||
@@ -48,11 +48,8 @@ RUN <<EOF
|
||||
EOF
|
||||
|
||||
|
||||
FROM input AS smoketest-perf
|
||||
|
||||
WORKDIR /
|
||||
COPY --link --from=perf . .
|
||||
|
||||
FROM input AS smoke-perf
|
||||
COPY --link --from=input . .
|
||||
ENV TUWUNEL_LOG="error"
|
||||
ENV TUWUNEL_DATABASE_PATH="/tmp/smoketest.db"
|
||||
RUN <<EOF
|
||||
|
||||
137
docker/bake.hcl
137
docker/bake.hcl
@@ -226,8 +226,8 @@ group "lints" {
|
||||
|
||||
group "tests" {
|
||||
targets = [
|
||||
"tests-unit",
|
||||
"tests-smoke",
|
||||
"unit",
|
||||
"smoke",
|
||||
"complement",
|
||||
]
|
||||
}
|
||||
@@ -324,11 +324,11 @@ target "complement-testee-valgrind" {
|
||||
dockerfile = "${docker_dir}/Dockerfile.complement"
|
||||
matrix = cargo_rust_feat_sys
|
||||
inherits = [
|
||||
elem("smoketest-valgrind", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target]),
|
||||
elem("smoke-valgrind", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target]),
|
||||
elem("complement-testee", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target])
|
||||
]
|
||||
contexts = {
|
||||
input = elem("target:smoketest-valgrind", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target])
|
||||
input = elem("target:smoke-valgrind", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target])
|
||||
complement-tester = elem("target:complement-tester-valgrind", [sys_name, sys_version, sys_target])
|
||||
}
|
||||
}
|
||||
@@ -361,7 +361,6 @@ target "complement-tester-valgrind" {
|
||||
tags = [
|
||||
elem_tag("complement-tester-valgrind", [sys_name, sys_version, sys_target], "latest"),
|
||||
]
|
||||
target = "complement-tester-valgrind"
|
||||
entitlements = ["network.host"]
|
||||
matrix = sys
|
||||
inherits = [
|
||||
@@ -426,77 +425,75 @@ target "complement-config" {
|
||||
# Smoke tests
|
||||
#
|
||||
|
||||
group "tests-smoke" {
|
||||
group "smoke" {
|
||||
targets = [
|
||||
"smoketest-version",
|
||||
"smoketest-startup",
|
||||
#"smoketest-valgrind",
|
||||
#"smoketest-perf",
|
||||
"smoke-version",
|
||||
"smoke-startup",
|
||||
#"smoke-valgrind",
|
||||
#"smoke-perf",
|
||||
]
|
||||
}
|
||||
|
||||
target "smoketest-valgrind" {
|
||||
name = elem("smoketest-valgrind", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target])
|
||||
target "smoke-valgrind" {
|
||||
name = elem("smoke-valgrind", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target])
|
||||
tags = [
|
||||
elem_tag("smoketest-valgrind", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target], "latest"),
|
||||
elem_tag("smoke-valgrind", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target], "latest"),
|
||||
]
|
||||
target = "smoketest-valgrind"
|
||||
entitlements = ["security.insecure"]
|
||||
target = "smoke-valgrind"
|
||||
matrix = cargo_rust_feat_sys
|
||||
inherits = [
|
||||
elem("valgrind", [feat_set, sys_name, sys_version, sys_target]),
|
||||
elem("smoketest", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target])
|
||||
elem("install-valgrind", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target]),
|
||||
elem("tests-smoke", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target])
|
||||
]
|
||||
contexts = {
|
||||
valgrind = elem("target:valgrind", [feat_set, sys_name, sys_version, sys_target])
|
||||
input = elem("target:install-valgrind", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target])
|
||||
}
|
||||
}
|
||||
|
||||
target "smoketest-perf" {
|
||||
name = elem("smoketest-perf", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target])
|
||||
target "smoke-perf" {
|
||||
name = elem("smoke-perf", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target])
|
||||
tags = [
|
||||
elem_tag("smoketest-perf", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target], "latest"),
|
||||
elem_tag("smoke-perf", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target], "latest"),
|
||||
]
|
||||
target = "smoketest-perf"
|
||||
entitlements = ["security.insecure"]
|
||||
target = "smoke-perf"
|
||||
matrix = cargo_rust_feat_sys
|
||||
inherits = [
|
||||
elem("perf", [feat_set, sys_name, sys_version, sys_target]),
|
||||
elem("smoketest", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target])
|
||||
elem("install-perf", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target]),
|
||||
elem("tests-smoke", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target])
|
||||
]
|
||||
contexts = {
|
||||
perf = elem("target:valgrind", [feat_set, sys_name, sys_version, sys_target])
|
||||
input = elem("target:install-perf", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target])
|
||||
}
|
||||
}
|
||||
|
||||
target "smoketest-startup" {
|
||||
name = elem("smoketest-startup", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target])
|
||||
target "smoke-startup" {
|
||||
name = elem("smoke-startup", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target])
|
||||
tags = [
|
||||
elem_tag("smoketest-startup", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target], "latest")
|
||||
elem_tag("smoke-startup", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target], "latest")
|
||||
]
|
||||
target = "smoketest-startup"
|
||||
target = "smoke-startup"
|
||||
matrix = cargo_rust_feat_sys
|
||||
inherits = [
|
||||
elem("smoketest", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target])
|
||||
elem("tests-smoke", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target])
|
||||
]
|
||||
}
|
||||
|
||||
target "smoketest-version" {
|
||||
name = elem("smoketest-version", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target])
|
||||
target "smoke-version" {
|
||||
name = elem("smoke-version", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target])
|
||||
tags = [
|
||||
elem_tag("smoketest-version", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target], "latest"),
|
||||
elem_tag("smoke-version", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target], "latest"),
|
||||
]
|
||||
target = "smoketest-version"
|
||||
target = "smoke-version"
|
||||
matrix = cargo_rust_feat_sys
|
||||
inherits = [
|
||||
elem("smoketest", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target])
|
||||
elem("tests-smoke", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target])
|
||||
]
|
||||
}
|
||||
|
||||
target "smoketest" {
|
||||
name = elem("smoketest", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target])
|
||||
target "tests-smoke" {
|
||||
name = elem("tests-smoke", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target])
|
||||
tags = [
|
||||
elem_tag("smoketest", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target], "latest"),
|
||||
elem_tag("tests-smoke", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target], "latest"),
|
||||
]
|
||||
output = ["type=cacheonly,compression=zstd,mode=min,compression-level=${cache_compress_level}"]
|
||||
dockerfile = "${docker_dir}/Dockerfile.smoketest"
|
||||
@@ -596,6 +593,37 @@ target "static" {
|
||||
EOF
|
||||
}
|
||||
|
||||
target "install-valgrind" {
|
||||
name = elem("install-valgrind", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target])
|
||||
tags = [
|
||||
elem_tag("install-valgrind", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target], "latest"),
|
||||
]
|
||||
matrix = cargo_rust_feat_sys
|
||||
inherits = [
|
||||
elem("valgrind", [feat_set, sys_name, sys_version, sys_target]),
|
||||
elem("install", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target]),
|
||||
]
|
||||
contexts = {
|
||||
input = elem("target:valgrind", [feat_set, sys_name, sys_version, sys_target])
|
||||
bins = elem("target:build-bins", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target])
|
||||
}
|
||||
}
|
||||
|
||||
target "install-perf" {
|
||||
name = elem("install-perf", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target])
|
||||
tags = [
|
||||
elem_tag("install-perf", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target], "latest"),
|
||||
]
|
||||
matrix = cargo_rust_feat_sys
|
||||
inherits = [
|
||||
elem("perf", [feat_set, sys_name, sys_version, sys_target]),
|
||||
elem("install", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target]),
|
||||
]
|
||||
contexts = {
|
||||
input = elem("target:perf", [feat_set, sys_name, sys_version, sys_target])
|
||||
}
|
||||
}
|
||||
|
||||
target "install" {
|
||||
name = elem("install", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target])
|
||||
tags = [
|
||||
@@ -742,10 +770,10 @@ target "deb" {
|
||||
# Unit tests
|
||||
#
|
||||
|
||||
target "tests-unit" {
|
||||
name = elem("tests-unit", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target])
|
||||
target "unit" {
|
||||
name = elem("unit", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target])
|
||||
tags = [
|
||||
elem_tag("tests-unit", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target], "latest"),
|
||||
elem_tag("unit", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target], "latest"),
|
||||
]
|
||||
target = "cargo"
|
||||
matrix = cargo_rust_feat_sys
|
||||
@@ -1527,31 +1555,36 @@ sys = {
|
||||
|
||||
target "perf" {
|
||||
description = "Base runtime environment with linux-perf installed."
|
||||
name = elem("perf", [sys_name, sys_version, sys_target])
|
||||
name = elem("perf", [feat_set, sys_name, sys_version, sys_target])
|
||||
tags = [
|
||||
elem_tag("perf", [sys_name, sys_version, sys_target], "latest"),
|
||||
elem_tag("perf", [feat_set, sys_name, sys_version, sys_target], "latest"),
|
||||
]
|
||||
matrix = sys
|
||||
matrix = feat_sys
|
||||
inherits = [
|
||||
elem("base", [sys_name, sys_version, sys_target])
|
||||
elem("runtime", [feat_set, sys_name, sys_version, sys_target])
|
||||
]
|
||||
contexts = {
|
||||
input = elem("target:base", [sys_name, sys_version, sys_target])
|
||||
input = elem("target:runtime", [feat_set, sys_name, sys_version, sys_target])
|
||||
}
|
||||
}
|
||||
|
||||
target "valgrind" {
|
||||
description = "Base runtime environment with valgrind installed."
|
||||
name = elem("valgrind", [sys_name, sys_version, sys_target])
|
||||
name = elem("valgrind", [feat_set, sys_name, sys_version, sys_target])
|
||||
tags = [
|
||||
elem_tag("valgrind", [sys_name, sys_version, sys_target], "latest"),
|
||||
elem_tag("valgrind", [feat_set, sys_name, sys_version, sys_target], "latest"),
|
||||
]
|
||||
matrix = sys
|
||||
matrix = feat_sys
|
||||
inherits = [
|
||||
elem("base", [sys_name, sys_version, sys_target])
|
||||
elem("runtime", [feat_set, sys_name, sys_version, sys_target])
|
||||
]
|
||||
contexts = {
|
||||
input = elem("target:base", [sys_name, sys_version, sys_target])
|
||||
input = elem("target:runtime", [feat_set, sys_name, sys_version, sys_target])
|
||||
}
|
||||
args = {
|
||||
packages = join(" ", [
|
||||
"valgrind",
|
||||
])
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user