Files
rust-package-builder/tests/static.sh
T
2026-10-19 11:09:13 +02:00

72 lines
3.7 KiB
Bash
Executable File

#!/usr/bin/env bash
set -Eeuo pipefail
ROOT=$(CDPATH= cd -- "$(dirname -- "$0")/.." && pwd)
for f in "$ROOT"/start.sh "$ROOT"/scripts/*.sh "$ROOT"/tests/*.sh; do
bash -n "$f"
done
python3 -m py_compile "$ROOT/scripts/generate-opnsense-repo.py"
# Main image/build dependencies.
grep -q 'FROM rockylinux:9' "$ROOT/Dockerfile"
grep -q 'FREEBSD_RELEASE=15.1-RELEASE' "$ROOT/Dockerfile"
grep -q 'x86_64-unknown-freebsd' "$ROOT/Dockerfile"
grep -q '/opt/freebsd-sysroot' "$ROOT/Dockerfile"
# Coordinator uses one checkout but independent branches.
grep -q 'build-linux-release.sh' "$ROOT/scripts/build-release.sh"
grep -q 'build-opnsense-release.sh' "$ROOT/scripts/build-release.sh"
grep -q 'build-freebsd-release.sh' "$ROOT/scripts/build-release.sh"
grep -q 'package-freebsd.sh' "$ROOT/scripts/build-freebsd-release.sh"
grep -q 'FREEBSD_NATIVE_PACKAGING_REVISION=1' "$ROOT/scripts/lib.sh"
grep -Fq 'FREEBSD_NATIVE_ENABLED: "${FREEBSD_NATIVE_ENABLED:-0}"' "$ROOT/docker-compose.yml"
grep -Fq 'location /freebsd/' "$ROOT/http/nginx.conf"
grep -Fq 'FREEBSD_NATIVE_ENABLED=0' "$ROOT/.env.example"
grep -Fq 'ExecReload=/usr/bin/' "$ROOT/scripts/prepare-package.sh"
grep -q 'OPNsense branch will still run' "$ROOT/scripts/build-release.sh"
# Linux tests gate Linux packaging only.
grep -Fq 'cargo "+$LINUX_RUST_TOOLCHAIN" test --release' "$ROOT/scripts/build-linux-release.sh"
grep -Fq 'ensure-rust-toolchain.sh' "$ROOT/scripts/build-linux-release.sh"
grep -Fq 'ensure-rust-toolchain.sh' "$ROOT/scripts/build-opnsense.sh"
grep -Fq 'nfpm package' "$ROOT/scripts/build-linux-release.sh"
grep -q 'aptly .*publish' "$ROOT/scripts/build-linux-release.sh"
grep -q 'createrepo_c' "$ROOT/scripts/build-linux-release.sh"
! grep -q 'cargo test' "$ROOT/scripts/build-opnsense-release.sh"
! grep -q 'cargo test' "$ROOT/scripts/build-opnsense.sh"
# FreeBSD/OPNsense branch.
grep -q 'build-opnsense.sh' "$ROOT/scripts/build-opnsense-release.sh"
grep -q 'package-opnsense.sh' "$ROOT/scripts/build-opnsense-release.sh"
grep -q 'generate-opnsense-repo.py' "$ROOT/scripts/build-opnsense-release.sh"
grep -q 'last_opnsense_commit' "$ROOT/scripts/build-opnsense-release.sh"
test -f "$ROOT/opnsense/plugin/src/etc/rc.d/rustproxy"
test -x "$ROOT/opnsense/plugin/src/etc/rc.syshook.d/start/50-rustproxy.start"
! test -e "$ROOT/opnsense/plugin/src/etc/rc.syshook.d/10-rustproxy.start"
grep -q 'OPNSENSE_PACKAGING_REVISION=4' "$ROOT/scripts/lib.sh"
test -f "$ROOT/opnsense/patches/0.20.0/0001-opnsense-build.patch"
# Per-branch state/retry logic.
grep -q 'last_linux_commit' "$ROOT/scripts/check-and-build.sh"
grep -q 'last_opnsense_commit' "$ROOT/scripts/check-and-build.sh"
grep -q 'BUILD_LINUX' "$ROOT/scripts/check-and-build.sh"
grep -q 'BUILD_OPNSENSE' "$ROOT/scripts/check-and-build.sh"
grep -q 'RUN_LINUX_TESTS=${RUN_LINUX_TESTS:-1}' "$ROOT/scripts/entrypoint.sh"
grep -Fq 'RUN_LINUX_TESTS: "${RUN_LINUX_TESTS:-1}"' "$ROOT/docker-compose.yml"
# Two public endpoints from one nginx container.
grep -Fq '${REPOSITORY_URL:?REPOSITORY_URL is required}' "$ROOT/docker-compose.yml"
grep -Fq '${OPNSENSE_REPOSITORY_URL:?OPNSENSE_REPOSITORY_URL is required}' "$ROOT/docker-compose.yml"
grep -Fq '0.0.0.0:${HTTP_PORT:-18765}:8080' "$ROOT/docker-compose.yml"
grep -Fq '0.0.0.0:${OPNSENSE_HTTP_PORT:-18766}:8081' "$ROOT/docker-compose.yml"
grep -q 'listen 8080' "$ROOT/http/nginx.conf"
grep -q 'listen 8081' "$ROOT/http/nginx.conf"
grep -q 'root /srv/repository/opnsense' "$ROOT/http/nginx.conf"
grep -q 'DEFAULT_HTTP_PORT=18765' "$ROOT/start.sh"
grep -q 'DEFAULT_OPNSENSE_HTTP_PORT=18766' "$ROOT/start.sh"
grep -q 'OPNSENSE_REPOSITORY_URL=https://opn-rustproxy.linuxiarz.pl' "$ROOT/.env.example"
grep -q 'RUN_LINUX_TESTS=1' "$ROOT/.env.example"
echo 'static checks: OK'