ブログの管理をGitHub × GitHub Actions に移行した

このブログの管理を Bitbucket × CircleCI で管理、deploy していたのを GitHub × GitHub Actions に移行した。

設定ファイルはこんな感じ。

# .github/workflows/deploy.yml
name: Build and Deploy

on:
  push:
    branches:
      - master

jobs:
  Build_and_Deploy:
    runs-on: ubuntu-20.04
    steps:
      - uses: actions/checkout@v2
      - name: Setup Hugo
        uses: peaceiris/actions-hugo@v2
        with:
          hugo-version: "0.80.0"
      - name: Build
        run: hugo --minify
      - name: Configure AWS Credentials
        uses: aws-actions/configure-aws-credentials@v1
        with:
          aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
          aws-secret-access-key: ${{ secrets.AWS_ACCESS_KEY_SECRET }}
          aws-region: ap-northeast-1
      - name: Deploy
        run: aws s3 sync public s3://<S3 BUCKET NAME>/

あとは deploy 用の AWS の IAM を新規作成して Settings > Secrets から access key を設定。

ハマった事としては元々使っていた hugo の version が結構古くて最新版に上げたらトップページの表示が変わってしまったので layout の index.html に以下を追加して対応した。

 +       {{ $paginator := .Paginate (where .Site.RegularPages.ByDate.Reverse "Section" "post") 10 }}

他には reviewdog を入れて PR で文章をチェックするようにしたけど本筋とは逸れるのでこれぐらいで。

以上。