nics-tw / guide

政府網站設計原則, 讓政府網站設計原則更加完善,我們正在全力開創新的典範,以便為您提供有價值的知識及技術。 讓我們攜手合作,共同見證政府網站設計原則的進步和成長。 有任何數位韌性相關問題,歡迎來電至 國家資通安全研究院前瞻中心架構設計組 02-6631-1881 詢問!
https://www.nics.nat.gov.tw/core_business/digital_resilience/Design_System_Resources/
Other
4 stars 4 forks source link

feat: build and staging deploy to gcs #29

Closed nonumpa closed 1 month ago

nonumpa commented 1 month ago

目的

收到 Pull request 後,可以直接 deploy 到測試環境看

使用流程說明

Pull request 會自動觸發 Build action,之後要手動啟動 Deploy action,啟動 Deploy action 需要輸入要部署的 build action workflow run_id

設定

Deploy action

download-artifact@v4 因為預設有存取相同 workflow 檔案的權限,需要另外給 personal access token 的 read repository 權限,這樣才能下載不同 workflow 的 artifact

Google cloud storage 設定

新增 bucket

  1. 新增一個 bucket(值區)讓 deploy action 上傳
  2. 設定公開存取

驗證及授權

  1. 參考 google-github-actions/auth,使用 direct-workload-identity-federation 驗證身份(參考步驟1-4),無需使用到 service account
  2. 授權 (add-iam-policy-binding)第一步驟產生的 provider 使用 Google Cloud Storage, member(主體):principalSet://iam.googleapis.com/ 角色(role):roles/storage.objectCreator (可建立物件)

Snapshots

Deploy action 啟動設定

deploy action

取得 Run id

run id

Issue

cache 問題 可以在 cloud storage 上設定 metadata Cache-Control:no-cache, max-age=0,或是 client 使用無痕視窗開啟