前陣子碰到需求要將 build 完的 package 上傳到 Azure 備份,這邊紀錄一下 Github Action 如何透過 powershell 將檔案上傳到 Azure
Step1. Generate Azure storage SAS token
假設你已經擁有 azure storage account 也已經開好 Container,在 Container 左邊工具列的 Settings 裡有一個 Shared access tokens
根據你的需求設定完成後,按下 Generate SAS token and url
底下就會產生 SAS token 跟 SAS URL
Step2. Save SAS token to Github secrets
Token 不適合直接 hard-code 在 script 內,所以先將這類比較敏感的資訊存放在 Github secrets 裡,在 workflow 內使用環境變數的方式帶進 powershell
Step3. Install dependency
這篇教學是透過 azcopy10 來做檔案上傳,所以得先在你的 runner 上安裝好。你可以透過微軟提供的載點下載 azcopy 的 package,或是你的環境已經有安裝 chocolatey ,可以直接輸入 choco install azcopy10
安裝。
我自己是建議使用 chocolatey ,他是 windows 上非常強大的套件管理工具,不僅套件種類繁多,安裝完全指令化,還會幫你自動新增好環境變數,在經常需要重新建置環境、安裝 dependency 的需求下真的非常好用。
Step4. Coding
雖然有現成的 azcopy action 可以用,但畢竟不是官方認證的,不適合使用在企業環境,所以我們還是透過內建的 powershell 達成
底下是一個簡單的 workflow:
後來發現 powershell 真的滿強大的,相容型高、支援豐富又跨平台,滿推薦給有需要寫腳本的人使用!