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 |
| ca_cert | Certificate authority | Optional |
| client_cert | Client certificate | 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: Checkoutuses: actions/checkout@v2
- name: Install OpenVPNrun: | sudo apt update sudo apt install -y openvpn openvpn-systemd-resolved - name: Connect to VPNuses: "kota65535/github-openvpn-connect-action@v1"with:
config_file: ./github/workflows/client.ovpnusername: ${{ secrets.OVPN_USERNAME }}password: ${{ secrets.OVPN_PASSWORD }}client_key: ${{ secrets.OVPN_CLIENT_KEY }}ca_cert: ${{ secrets.OVPN_CA_CERT }}client_cert: ${{ secrets.OVPN_CLIENT_CERT }}tls_auth_key: ${{ secrets.OVPN_TLS_AUTH_KEY }}
- name: Build somethingrun: ./gradlew clean build# The openvpn process is automatically terminated in post-action phase