iT邦幫忙

2023 iThome 鐵人賽

DAY 14
0
SideProject30

Hugo your Blog and Host your Podcast. 系列 第 14

Github Actions / Take On Me. Take Actions.

  • 分享至 

  • xImage
  •  

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

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

該怎麼做

  • 請把作天下載的 .csv IAM user ID、Secret 添加到 Github repo 的 Secrets 中
    https://ithelp.ithome.com.tw/upload/images/20230929/2015294484GVGHUPbu.png
  • 一併把放置 Hugo 檔案的 S3 bucket 名字也添加到 Secrets 中
    https://ithelp.ithome.com.tw/upload/images/20230929/20152944tFOQXy3Vkm.png
  • 在 public 的目錄位置,新增 .github/workflows 資料夾
  • .github/workflows 資料夾下,新增 deployment.yml 檔案
  • 編輯內如參考 aws-actions ,且因為上傳 S3 是很常規普遍的操作,所以會有作業可以抄,內部就有 DEMO code 可以使用。
  • 稍微調整後可以是這樣的
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 }}

  • 這裡的意思是,只要你的 commit message 之中有 "#deploy" 作為關鍵字,push 後就會觸發 Github Actions,並且執行 aws s3 sync 指令,將 public 資料夾下的內容同步到 S3 bucket 中
  • 可以在 Actions 分頁檢查進度,或是到 S3 檢查是否有如預期新增檔案
    https://ithelp.ithome.com.tw/upload/images/20230929/20152944w4viCa88h3.png

其他延伸

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

外出取材

  • 這些也是 Piet Mondriaan 喔,約莫在此時期後就轉向 De Stijl 荷蘭風格派嘗試探索
    https://ithelp.ithome.com.tw/upload/images/20230929/20152944TcK9QCZJM9.jpg

上一篇
AWS IAM / Less privileged self-replication.
下一篇
RSS Feed init / Keep it simple, stupid.
系列文
Hugo your Blog and Host your Podcast. 30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言