Member-only story

GitHub Action 自動部署到 S3

--

我發現每次 hello world 的專案,當我想要用 GitHub 推完想要自動幫我複製到 S3 上,都會忘記要怎麼用 GitHub Action 來做。這篇並沒有深入研究 GitHub Actions 的部分,我甚至不知道 action 應不應該加 s 。只是提供一個可以動的版本,方便自己未來時取用。

Photo by Roman Synkevych on Unsplash

添加部署設定的文件

需要建立一個設定檔給 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 命令做複製到目標處。

--

--

Chen Li-Chi (陳立其)
Chen Li-Chi (陳立其)

Written by Chen Li-Chi (陳立其)

希望所有困難事都可以拆成簡單的事

No responses yet