就我知道github actions應該算腳本類的語法吧,在工作上遇到要連線vpn就要落落長一大堆語法,所幸問一下ai,有沒有類似function的用法,還真的有,做一下紀錄
# ./github/actions/vpn/action.yml
# 路径除了vpn其他都必须一样
name: vpn connect
description: 'vpn connect'
# description這裏不能省
inputs:
OVPN_CONFIG:
description: 'ovpn config'
required: true
# actions里面不能有env跟secrets只能透过with传入
runs:
using: "composite"
steps:
- name: Write OpenVPN config
shell: bash # shell这行必填
run: echo "${{ inputs.OVPN_CONFIG }}" > xxx.ovpn
- name: Install OpenVPN
shell: bash
run: sudo apt-get update && sudo apt-get install -y openvpn
- name: Configure OpenVPN
shell: bash
run: |
sudo openvpn --config cywang.ovpn &
sleep 10 # Wait for the VPN to establish connection
ps aux | grep openvpn
ip addr
ip route
這樣就寫好了,接著我們要來示範使用方式
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
# 因為要使用到repo裡面的檔案一定要有這行
- name: vpn connect
uses: ./.github/actions/vpn
# 直接uses就可以使用,要注意路徑要正確
with:
OVPN_CONFIG: ${{ env.OVPN_CONFIG }}
以上就是這次的分享