Files
darkproxy/.github/workflows/config-validation.yml
T
auto-ci 11b766c906
Configuration validation / lint (push) Has been cancelled
Configuration validation / smoke (push) Has been cancelled
chore: snapshot before production push
2026-03-01 20:39:26 -05:00

64 lines
1.7 KiB
YAML

name: "Configuration validation"
on:
push:
paths:
- 'docker-compose.yml'
- 'PopuraDNS/**'
- '.github/workflows/**'
pull_request:
paths:
- 'docker-compose.yml'
- 'PopuraDNS/**'
jobs:
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
- name: Run full validation script
run: |
chmod +x scripts/validate-config.sh
scripts/validate-config.sh
smoke:
needs: lint
runs-on: ubuntu-latest
services:
docker:
image: docker:24-dind
privileged: true
options: >-
--cpus=2 --memory=4g
steps:
- uses: actions/checkout@v4
- name: Start stack and wait for health
run: |
docker compose up -d --build
# wait up to 120 seconds for each container's healthcheck to pass
for svc in darkdns darkpihole darkunbound darkalfis darkemer dark3proxy darktor darkproxy; do
echo "waiting for $svc"
for i in {1..24}; do
status=$(docker inspect -f '{{.State.Health.Status}}' $svc 2>/dev/null || echo none)
if [ "$status" = "healthy" ]; then
echo "$svc healthy" && break
fi
sleep 5
done
done
docker compose ps
# quick DNS smoke tests via CoreDNS container
echo "testing onion resolution"
docker exec darkdns dig +short @127.0.0.1 -p 53 facebookcorewwwi.onion
echo "testing i2p resolution"
docker exec darkdns dig +short @127.0.0.1 -p 53 stats.i2p
docker compose down