From 28ac8b859e9ca03d38567210e322d8ae63bb7909 Mon Sep 17 00:00:00 2001 From: Quentin McGaw Date: Sun, 3 May 2026 02:46:59 +0000 Subject: [PATCH] chore(ci): test airvpn for OpenVPN --- .github/workflows/ci.yml | 4 ++++ ci/cmd/main.go | 2 ++ ci/internal/airvpn.go | 22 ++++++++++++++++++++++ 3 files changed, 28 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 311c1572..523329ef 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -120,6 +120,10 @@ jobs: secrets.AIRVPN_WIREGUARD_PRESHARED_KEY }}\n${{ secrets.AIRVPN_WIREGUARD_ADDRESSES }}" | ./ci/runner airvpn-wireguard + - name: Run Gluetun container with AirVPN OpenVPN configuration + run: echo -e "${{ secrets.AIRVPN_OPENVPN_KEY }}\n${{ secrets.AIRVPN_OPENVPN_CERT + }}" | ./ci/runner airvpn-openvpn + codeql: runs-on: ubuntu-latest permissions: diff --git a/ci/cmd/main.go b/ci/cmd/main.go index 6fa7adb7..36e52df4 100644 --- a/ci/cmd/main.go +++ b/ci/cmd/main.go @@ -31,6 +31,8 @@ func main() { err = internal.PrivateInternetAccessOpenVPNPortForwardingTest(ctx, logger) case "airvpn-wireguard": err = internal.AirVPNWireguardTest(ctx, logger) + case "airvpn-openvpn": + err = internal.AirVPNOpenVPNTest(ctx, logger) default: err = fmt.Errorf("unknown command: %s", os.Args[1]) } diff --git a/ci/internal/airvpn.go b/ci/internal/airvpn.go index a27ed133..6936a5fd 100644 --- a/ci/internal/airvpn.go +++ b/ci/internal/airvpn.go @@ -30,3 +30,25 @@ func AirVPNWireguardTest(ctx context.Context, logger Logger) error { const timeout = 60 * time.Second return runContainerTest(ctx, env, []*regexp.Regexp{successRegexp}, timeout, logger) } + +func AirVPNOpenVPNTest(ctx context.Context, logger Logger) error { + expectedSecrets := []string{ + "OpenVPN key", + "OpenVPN cert", + } + secrets, err := readSecrets(ctx, expectedSecrets, logger) + if err != nil { + return fmt.Errorf("reading secrets: %w", err) + } + + env := []string{ + "VPN_SERVICE_PROVIDER=airvpn", + "VPN_TYPE=openvpn", + "LOG_LEVEL=debug", + "SERVER_COUNTRIES=United States", + "OPENVPN_KEY=" + secrets[0], + "OPENVPN_CERT=" + secrets[1], + } + const timeout = 60 * time.Second + return runContainerTest(ctx, env, []*regexp.Regexp{successRegexp}, timeout, logger) +}