Add cargo audit, lychee to workflow.

Rename / tweak some workflow jobs.

Signed-off-by: Jason Volk <jason@zemos.net>
This commit is contained in:
Jason Volk
2025-05-02 00:46:59 +00:00
parent 77426c0d7a
commit 98d16a2f6c
16 changed files with 164 additions and 259 deletions

View File

@@ -0,0 +1,26 @@
# syntax = docker/dockerfile:1.11-labs
FROM input AS audit
ARG sys_target
ARG rust_toolchain="nightly"
ARG RUSTUP_HOME
ARG CARGO_HOME
ARG audit_args=""
WORKDIR /usr/src/tuwunel
RUN \
--mount=type=cache,dst=${RUSTUP_HOME},sharing=locked \
--mount=type=cache,dst=${CARGO_HOME},sharing=locked \
<<EOF
env
set -eux
rustup run ${rust_toolchain} \
cargo audit \
--stale \
--deny yanked \
--deny unsound \
--deny unmaintained \
--deny warnings \
--color=always \
${audit_args}
EOF

View File

@@ -1,6 +1,6 @@
# syntax = docker/dockerfile:1.11-labs
FROM input AS cargo
FROM input AS fmt
ARG sys_target
ARG rust_toolchain="nightly"
ARG RUSTUP_HOME

View File

@@ -0,0 +1,30 @@
# syntax = docker/dockerfile:1.11-labs
FROM input AS lychee
ARG sys_target
ARG rust_toolchain="nightly"
ARG RUSTUP_HOME
ARG CARGO_HOME
ARG lychee_cache_age="7d"
ARG lychee_mode="color"
ARG lychee_args="docs *.md"
WORKDIR /usr/src/tuwunel
RUN \
--mount=type=cache,dst=${RUSTUP_HOME},sharing=locked \
--mount=type=cache,dst=${CARGO_HOME},sharing=locked \
<<EOF
env
set -eux
rustup run ${rust_toolchain} \
lychee \
--verbose \
--cache \
--offline \
--max-cache-age ${lychee_cache_age} \
--mode ${lychee_mode} \
--exclude development.md \
--exclude contributing.md \
--exclude testing.md \
${lychee_args}
EOF

View File

@@ -39,7 +39,9 @@ RUN \
rustup component add \
--toolchain ${rust_toolchain} \
--target ${CARGO_TARGET} \
clippy rustfmt
clippy \
rustfmt \
;
EOF
@@ -59,5 +61,9 @@ RUN \
cargo install \
--locked \
--target ${CARGO_TARGET} \
cargo-chef
cargo-chef \
cargo-audit \
cargo-deb \
lychee \
;
EOF

View File

@@ -14,6 +14,7 @@ cmake \
curl \
git \
libc6-dev \
libssl-dev \
make \
pkg-config \
pkgconf \

View File

@@ -123,8 +123,12 @@ group "default" {
group "lints" {
targets = [
"audit",
"check",
"clippy",
"docs",
"fmt",
"lychee",
]
}
@@ -208,6 +212,7 @@ target "complement-testee-valgrind" {
]
contexts = {
input = elem("target:smoketest-valgrind", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target])
complement-tester = elem("target:complement-tester-valgrind", [feat_set, sys_name, sys_version, sys_target])
}
}
@@ -229,6 +234,7 @@ target "complement-testee" {
]
contexts = {
input = elem("target:install", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target])
complement-tester = elem("target:complement-tester", [feat_set, sys_name, sys_version, sys_target])
complement-config = elem("target:complement-config", [feat_set, sys_name, sys_version, sys_target])
}
args = {
@@ -680,11 +686,46 @@ target "check" {
}
}
target "lychee" {
name = elem("lychee", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target])
tags = [
elem_tag("lychee", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target], "latest"),
]
target = "lychee"
dockerfile = "docker/Dockerfile.cargo.lychee"
matrix = cargo_rust_feat_sys
inherits = [
elem("deps-base", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target]),
elem("cargo", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target]),
]
contexts = {
input = elem("target:ingredients", [rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target])
}
}
target "audit" {
name = elem("audit", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target])
tags = [
elem_tag("audit", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target], "latest"),
]
target = "audit"
dockerfile = "docker/Dockerfile.cargo.audit"
matrix = cargo_rust_feat_sys
inherits = [
elem("deps-base", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target]),
elem("cargo", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target]),
]
contexts = {
input = elem("target:ingredients", [rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target])
}
}
target "fmt" {
name = elem("fmt", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target])
tags = [
elem_tag("fmt", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target], "latest"),
]
target = "fmt"
dockerfile = "docker/Dockerfile.cargo.fmt"
matrix = cargo_rust_feat_sys
inherits = [
@@ -721,11 +762,11 @@ target "cargo" {
group "deps" {
targets = [
#"deps-check",
"deps-check",
"deps-clippy",
#"deps-build",
"deps-build",
"deps-build-tests",
#"deps-build-bench",
"deps-build-bench",
"deps-build-bins",
]
}

View File

@@ -1,11 +1,6 @@
#!/bin/bash
set -eo pipefail
default_docker_id="jevolk/tuwunel"
docker_id=${docker_id:=$default_docker_id}
docker_acct=${docker_acct:=$(echo $docker_id | cut -d"/" -f1)}
docker_repo=${docker_repo:=$(echo $docker_id | cut -d"/" -f2)}
CI="${CI:-true}"
BASEDIR=$(dirname "$0")
@@ -75,7 +70,6 @@ set +a
export DOCKER_BUILDKIT=1
if test "$CI" = "true"; then
export BUILDKIT_PROGRESS="plain"
echo "plain"
fi
uwu_docker_build_args=""
@@ -101,7 +95,6 @@ date
arg="$args -f $BASEDIR/bake.hcl"
if test "$BUILDKIT_PROGRESS" = "plain"; then
echo "PRINTING"
docker buildx bake --print $arg $bake_target
fi
@@ -115,4 +108,4 @@ set -ux
docker buildx bake $arg $bake_target
set +x
echo -e "\033[1;42;37mPASS\033[0m"
echo -e "\033[1;42;30mPASS\033[0m"

View File

@@ -1,11 +1,6 @@
#!/bin/bash
set -eo pipefail
default_docker_id="jevolk/tuwunel"
docker_id=${docker_id:=$default_docker_id}
docker_acct=${docker_acct:=$(echo $docker_id | cut -d"/" -f1)}
docker_repo=${docker_repo:=$(echo $docker_id | cut -d"/" -f2)}
CI="${CI:-true}"
BASEDIR=$(dirname "$0")
@@ -46,4 +41,4 @@ cid=$(docker run -d $arg)
set +x
trap 'docker container stop $cid; set +x; date; echo -e "\033[1;41;37mFAIL\033[0m"' INT
docker wait "$cid" 2>/dev/null
echo -e "\033[1;42;37mPASS\033[0m"
echo -e "\033[1;42;30mPASS\033[0m"