GitHub Action for connecting to OpenVPN server.
Name | Description | Required |
---|---|---|
config_file |
Location of OpenVPN client config file | yes |
Supported authentication methods:
- Username & password auth
- Client certificate auth
- Both of them
Name | Description | Required when |
---|---|---|
username |
Username | Username-password auth |
password |
Password | Username-password auth |
client_key |
Local peer's private key | Client certificate auth |
tls_auth_key |
Pre-shared secret for TLS-auth HMAC signature | Optional |
Note: It is strongly recommended that you provide all credentials via encrypted secrets.
- Create client configuration file based on the official sample. It is recommended to use inline certificates to include them directly in configuration file like this.
- Usage in your workflow is like following:
- name: Checkout
uses: actions/checkout@v3
- name: Install OpenVPN
run: |
sudo apt update
sudo apt install -y openvpn openvpn-systemd-resolved
- name: Connect to VPN
uses: "kota65535/github-openvpn-connect-action@v2"
with:
config_file: ./github/workflows/client.ovpn
username: ${{ secrets.OVPN_USERNAME }}
password: ${{ secrets.OVPN_PASSWORD }}
client_key: ${{ secrets.OVPN_CLIENT_KEY }}
tls_auth_key: ${{ secrets.OVPN_TLS_AUTH_KEY }}
- name: Build something
run: ./gradlew clean build
# The openvpn process is automatically terminated in post-action phase