[Github Action] Upload Artifacts To Azure Blob Storage

Rainie
職場學習筆記
Published in
Nov 9, 2021

前陣子碰到需求要將 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 真的滿強大的,相容型高、支援豐富又跨平台,滿推薦給有需要寫腳本的人使用!

--

--