60 lines
2.8 KiB
Bash
Executable File
60 lines
2.8 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 'OPNsense branch will still run' "$ROOT/scripts/build-release.sh"
|
|
|
|
# Linux tests gate Linux packaging only.
|
|
grep -q 'cargo test --release' "$ROOT/scripts/build-linux-release.sh"
|
|
grep -q '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 -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'
|