有時,在公司內網路有資安考量或是其他安全考慮(比如說機器要走跳板才能連外),我們可能需要將 GitHub Actions 的流量通過代理伺服器來發送。
設定代理一般有以下幾種方式:
最簡單的方式是設定環境變數 HTTP_PROXY
和 HTTPS_PROXY
:
jobs:
build:
runs-on: ubuntu-latest
env:
HTTP_PROXY: http://your-proxy-server.com
HTTPS_PROXY: http://your-proxy-server.com
在執行任何需要網絡的操作之前,也可以使用腳本來設定代理:
steps:
- name: Set up proxy
run: export HTTP_PROXY=http://your-proxy-server.com
除了基本的代理設定,還可以進一步自定義環境變數,這對於配置複雜的工作流程,或是將敏感資訊抽離 workflow 定義檔時非常有用。
儲存敏感資訊 (e.g., API 密鑰或密碼) 最好是使用 GitHub Secrets。
使用 GitHub Secrets 的好處在於,沒有權限的人是看不到 secret 的內容的,而且執行 job 時如果遇到會 print secret 內容的情況,GitHub Actions 還會將 secret 的內容打碼,避免機密外洩。
當在上述頁面加入 secret 後,就可以在工作流程中引用這些 secrets:
jobs:
build:
env:
API_KEY: ${{ secrets.API_KEY }}
有時候,一個步驟的輸出需要被用作另一個步驟的輸入,這時候可以用工作流程命令來設定多步驟變數:
steps:
- name: Step 1
run: echo "MY_VARIABLE=my-value" >> $GITHUB_ENV
- name: Step 2
run: echo ${{ env.MY_VARIABLE }}