2121 name : Localhost VPN Deployment Test
2222 runs-on : ubuntu-22.04
2323 timeout-minutes : 30
24- if : false # Disabled until we fix the ansible issues
2524 strategy :
25+ fail-fast : false
2626 matrix :
2727 vpn_type : ['wireguard', 'ipsec', 'both']
2828 steps :
7878 tests: true
7979 no_log: false
8080 ansible_connection: local
81- ansible_python_interpreter: /usr/bin/python3
8281 dns_encryption: true
8382 algo_dns_adblocking: true
8483 algo_ssh_tunneling: false
@@ -88,11 +87,15 @@ jobs:
8887 pki_in_tmpfs: true
8988 endpoint: 127.0.0.1
9089 ssh_port: 4160
90+ local_service_ip: 172.16.0.1
91+ local_service_ipv6: "fd00::1"
9192 EOF
9293
9394 - name : Run Algo deployment
9495 run : |
95- sudo ansible-playbook main.yml \
96+ # Run ansible-playbook via uv - become: true in playbook handles root
97+ # GitHub runners have passwordless sudo for become escalation
98+ uv run ansible-playbook main.yml \
9699 -i "localhost," \
97100 -c local \
98101 -e @integration-test.cfg \
@@ -130,6 +133,21 @@ jobs:
130133 echo "✓ dnsmasq is running"
131134 fi
132135
136+ # Check dnscrypt-proxy
137+ if sudo systemctl is-active --quiet dnscrypt-proxy; then
138+ echo "✓ dnscrypt-proxy is running"
139+ else
140+ echo "⚠️ dnscrypt-proxy not running"
141+ fi
142+
143+ # DNS health check - verify DNS resolution works
144+ echo "Testing DNS resolution via local_service_ip (172.16.0.1)..."
145+ if dig @172.16.0.1 google.com +short +timeout=5 | grep -q .; then
146+ echo "✓ DNS resolution working"
147+ else
148+ echo "⚠️ DNS resolution failed (service may still be starting)"
149+ fi
150+
133151 - name : Verify generated configs
134152 run : |
135153 echo "Checking generated configuration files..."
@@ -196,12 +214,22 @@ jobs:
196214 - name : Upload logs on failure
197215 if : failure()
198216 run : |
199- echo "=== Ansible Log ==="
200- sudo journalctl -u ansible --no-pager || true
217+ echo "=== Network Interfaces ==="
218+ ip addr || true
219+ echo "=== Listening Ports ==="
220+ sudo ss -tulnp || true
221+ echo "=== WireGuard Status ==="
222+ sudo wg show || true
223+ echo "=== IPsec Status ==="
224+ sudo ipsec statusall || true
225+ echo "=== DNS Services ==="
226+ sudo systemctl status dnscrypt-proxy dnscrypt-proxy.socket dnsmasq --no-pager || true
201227 echo "=== WireGuard Log ==="
202- sudo journalctl -u wg-quick@wg0 --no-pager || true
228+ sudo journalctl -u wg-quick@wg0 -n 50 - -no-pager || true
203229 echo "=== StrongSwan Log ==="
204- sudo journalctl -u strongswan --no-pager || true
230+ sudo journalctl -u strongswan -n 50 --no-pager || true
231+ echo "=== dnscrypt-proxy Log ==="
232+ sudo journalctl -u dnscrypt-proxy -n 50 --no-pager || true
205233 echo "=== System Log (last 100 lines) ==="
206234 sudo journalctl -n 100 --no-pager || true
207235
0 commit comments