chore(ci): test private internet access for OpenVPN and port forwarding

This commit is contained in:
Quentin McGaw
2026-05-03 02:26:08 +00:00
parent c47cc90181
commit 4106951340
3 changed files with 39 additions and 0 deletions
+6
View File
@@ -109,6 +109,12 @@ jobs:
secrets.PROTONVPN_OPENVPN_PASSWORD }}" | ./ci/runner secrets.PROTONVPN_OPENVPN_PASSWORD }}" | ./ci/runner
protonvpn-openvpn-port-forwarding protonvpn-openvpn-port-forwarding
- name: Run Gluetun container with Private Internet Access OpenVPN and port
forwarding configuration
run: echo -e "${{ secrets.PRIVATEINTERNETACCESS_OPENVPN_USER }}\n${{
secrets.PRIVATEINTERNETACCESS_OPENVPN_PASSWORD }}" | ./ci/runner
private-internet-access-openvpn-port-forwarding
codeql: codeql:
runs-on: ubuntu-latest runs-on: ubuntu-latest
permissions: permissions:
+2
View File
@@ -27,6 +27,8 @@ func main() {
err = internal.ProtonVPNWireguardPortForwardingTest(ctx, logger) err = internal.ProtonVPNWireguardPortForwardingTest(ctx, logger)
case "protonvpn-openvpn-port-forwarding": case "protonvpn-openvpn-port-forwarding":
err = internal.ProtonVPNOpenVPNPortForwardingTest(ctx, logger) err = internal.ProtonVPNOpenVPNPortForwardingTest(ctx, logger)
case "private-internet-access-openvpn-port-forwarding":
err = internal.PrivateInternetAccessOpenVPNPortForwardingTest(ctx, logger)
default: default:
err = fmt.Errorf("unknown command: %s", os.Args[1]) err = fmt.Errorf("unknown command: %s", os.Args[1])
} }
+31
View File
@@ -0,0 +1,31 @@
package internal
import (
"context"
"fmt"
"regexp"
"time"
)
func PrivateInternetAccessOpenVPNPortForwardingTest(ctx context.Context, logger Logger) error {
expectedSecrets := []string{
"OpenVPN username",
"OpenVPN password",
}
secrets, err := readSecrets(ctx, expectedSecrets, logger)
if err != nil {
return fmt.Errorf("reading secrets: %w", err)
}
env := []string{
"VPN_SERVICE_PROVIDER=private internet access",
"VPN_TYPE=openvpn",
"LOG_LEVEL=debug",
"SERVER_REGIONS=CA Montreal",
"OPENVPN_USER=" + secrets[0],
"OPENVPN_PASSWORD=" + secrets[1],
"VPN_PORT_FORWARDING=on",
}
const timeout = 80 * time.Second
return runContainerTest(ctx, env, []*regexp.Regexp{successRegexp, portForwardingRegexp}, timeout, logger)
}