Member-only story
GitHub Action 自動部署到 S3
我發現每次 hello world 的專案,當我想要用 GitHub 推完想要自動幫我複製到 S3 上,都會忘記要怎麼用 GitHub Action 來做。這篇並沒有深入研究 GitHub Actions 的部分,我甚至不知道 action 應不應該加 s 。只是提供一個可以動的版本,方便自己未來時取用。
添加部署設定的文件
需要建立一個設定檔給 GitHub 讀取。位置在 .github/workflows/main.yml
。記得放對地方。以下是裡面的內容。
我當時的 branch 是 master
。目前 GitHub 網頁版建立 repository 現在的 default branch 好像變成 main
了。你可以用 git branch
指令看一下目前的 branch 名稱。如果是 main
的話,就記得要改成 main
。
有三個階段。第一個階段是 Checkout
。這段是從 Hello World 範例抄下來的,覺得很有趣就沒有刪除他。
第二階段是設定 AWS Credentials ,你需要到目前的 GitHub Repository 裡面設定一些 secrets ,實際執行時才讀得到 ${{ secrets.此變數的內容 }}
。我通常會設定一個新的 IAM User 給適當的小權限給某個專案使用。請注意 ${{ secrets.AWS_SECRET_ACCESS_KEY }}
千萬不可以代換成真實的 secret key 打在設定檔內 commit 到 GitHub。不然 AWS 帳戶就會被惡意人士拿去挖加密貨幣。一天到晚都有一堆變態在掃描別人的 secret key 。
一般來說用 Assume Role 取得短時效的會是更安全的方式。但我這裡偷懶就直接把權限配給長時效的 access key 跟 secret key 放在 GitHub 。
第三個階段就是執行 AWS CLI 命令做複製到目標處。