chore: snapshot before production push
This commit is contained in:
@@ -0,0 +1,63 @@
|
||||
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
|
||||
Reference in New Issue
Block a user