Day14 Github Actions / Take On Me. Take Actions.

機器動起來動起來了 Do Do Do Do Do~~

  • 我們已經可以讓 Github 當作我們的分身去 AWS 上進行操作
  • 此時就要使用 Github Actions 來達成我們的目的

該怎麼做

  • 請把作天下載的 .csv IAM user ID、Secret 添加到 Github repo 的 Secrets 中 d14-1
  • 一併把放置 Hugo 檔案的 S3 bucket 名字也添加到 Secrets 中 d14-2
  • 在 public 的目錄位置,新增 .github/workflows 資料夾
  • .github/workflows 資料夾下,新增 deployment.yml 檔案
  • 編輯內如參考 aws-actions ,且因為上傳 S3 是很常規普遍的操作,所以會有作業可以抄,內部就有 DEMO code 可以使用。
  • 稍微調整後可以是這樣的
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
name: deployment

on:
  push:
    branches:
      - main

jobs:
  build:
    runs-on: ubuntu-latest
    if: ${{ contains(github.event.head_commit.message, '#deploy') }}
    steps:
      - uses: actions/checkout@v2
      - name: Set up AWS credentials
        uses: aws-actions/configure-aws-credentials@v4
        with:
          aws-access-key-id: ${{ secrets.AWS_S3_UPLOAD_ID }}
          aws-secret-access-key: ${{ secrets.AWS_S3_UPLOAD_SECRET }}
          aws-region: ap-northeast-1
      - name: Upload to S3
        run: |
          aws s3 sync ./ s3://${{ secrets.AWS_S3_HUGO_BUCKET }} --exclude ".git/*" --exclude ".github/*"
  • 這裡的意思是,只要你的 commit message 之中有 “#deploy” 作為關鍵字,push 後就會觸發 Github Actions,並且執行 aws s3 sync 指令,將 public 資料夾下的內容同步到 S3 bucket 中
  • 可以在 Actions 分頁檢查進度,或是到 S3 檢查是否有如預期新增檔案 d14-3

其他延伸

  • CICD 在成熟的專案上是很重要的一環,可以將各種部署的流程與檢查機制串接起來,讓開發者可以專注在開發上,而不是在部署上(理想狀態)
  • Github 有 Actions,Gitlab 有 CI/CD,都可以藉由部署用的 yml 來決定流程

外出取材

  • 這些也是 Piet Mondriaan 喔,約莫在此時期後就轉向 De Stijl 荷蘭風格派嘗試探索 d14-4
comments powered by Disqus
Yodering
Built with Hugo
Theme Stack designed by Jimmy