From 35017828062c99ca4da11be657f52412e5714225 Mon Sep 17 00:00:00 2001 From: Quentin McGaw Date: Sun, 3 May 2026 02:39:45 +0000 Subject: [PATCH] chore(ci): test airvpn for Wireguard --- .github/workflows/ci.yml | 5 +++++ ci/cmd/main.go | 2 ++ ci/internal/airvpn.go | 32 ++++++++++++++++++++++++++++++++ 3 files changed, 39 insertions(+) create mode 100644 ci/internal/airvpn.go diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 46c0f7c5..311c1572 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -115,6 +115,11 @@ jobs: secrets.PRIVATEINTERNETACCESS_OPENVPN_PASSWORD }}" | ./ci/runner private-internet-access-openvpn-port-forwarding + - name: Run Gluetun container with AirVPN Wireguard configuration + run: echo -e "${{ secrets.AIRVPN_WIREGUARD_PRIVATE_KEY }}\n${{ + secrets.AIRVPN_WIREGUARD_PRESHARED_KEY }}\n${{ + secrets.AIRVPN_WIREGUARD_ADDRESSES }}" | ./ci/runner airvpn-wireguard + codeql: runs-on: ubuntu-latest permissions: diff --git a/ci/cmd/main.go b/ci/cmd/main.go index 3963ef16..6fa7adb7 100644 --- a/ci/cmd/main.go +++ b/ci/cmd/main.go @@ -29,6 +29,8 @@ func main() { err = internal.ProtonVPNOpenVPNPortForwardingTest(ctx, logger) case "private-internet-access-openvpn-port-forwarding": err = internal.PrivateInternetAccessOpenVPNPortForwardingTest(ctx, logger) + case "airvpn-wireguard": + err = internal.AirVPNWireguardTest(ctx, logger) default: err = fmt.Errorf("unknown command: %s", os.Args[1]) } diff --git a/ci/internal/airvpn.go b/ci/internal/airvpn.go new file mode 100644 index 00000000..a27ed133 --- /dev/null +++ b/ci/internal/airvpn.go @@ -0,0 +1,32 @@ +package internal + +import ( + "context" + "fmt" + "regexp" + "time" +) + +func AirVPNWireguardTest(ctx context.Context, logger Logger) error { + expectedSecrets := []string{ + "Wireguard private key", + "Wireguard preshared key", + "Wireguard addresses", + } + secrets, err := readSecrets(ctx, expectedSecrets, logger) + if err != nil { + return fmt.Errorf("reading secrets: %w", err) + } + + env := []string{ + "VPN_SERVICE_PROVIDER=airvpn", + "VPN_TYPE=wireguard", + "LOG_LEVEL=debug", + "SERVER_COUNTRIES=United States", + "WIREGUARD_PRIVATE_KEY=" + secrets[0], + "WIREGUARD_PRESHARED_KEY=" + secrets[1], + "WIREGUARD_ADDRESSES=" + secrets[2], + } + const timeout = 60 * time.Second + return runContainerTest(ctx, env, []*regexp.Regexp{successRegexp}, timeout, logger) +}