背景
API や submodule などのリソースを含んだリポジトリがある。ソース自体には変更はないが、それらが定期的に更新される仕組みとなっているため、ホスティング先の GitHub Pages を定期的に更新したい。
API や submodule などのリソースを含んだリポジトリがある。ソース自体には変更はないが、それらが定期的に更新される仕組みとなっているため、ホスティング先の GitHub Pages を定期的に更新したい。
nuxt generate)を利用していた自動化には GitHub Actions を利用する。
具体的なワークフローは以下の通り。
name: github pages deploy
on:
  push:
    branches:
      - master
  schedule:
    - cron: "0 0 * * *"
jobs:
  build-deploy:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v1
      - name: Install
        run: yarn install --frozen-lockfile
        # === 中略 === "
      - name: Generate
        run: yarn run generate
      - name: deploy
        uses: peaceiris/actions-gh-pages@v3
        with:
          github_token: ${{ secrets.GITHUB_TOKEN }}
          publish_dir: ./dist
トリガーイベントでscheduleを設定する。
on:
  schedule:
    # * はYAMLに置ける特殊文字なので、この文字列は引用符で囲まなければならない
    - cron: "*/15 * * * *"
クーロン構文でcronにスケジュール設定ができる。
ワークフローをトリガーするイベント - GitHub Docsdocs.github.com
jobsについては、以下の通り。
GitHub Pages には peaceiris/actions-gh-pages@v3 を利用してデプロイしている。