• SIS Lab
  • >
  • Blog
  • >
  • GitHub Actionsのスケジューラ実行を利用して定期的にビルドする

GitHub Actionsのスケジューラ実行を利用して定期的にビルドする

更新日:2023.05.05 作成日:2021.01.09

GitHub Actionsのスケジューラ実行で、Hugoなどのサイトを定期ビルドし、データを最新化する方法を調べたときのメモです。

GitHub Actionsでスケジューラ実行

onにはGitHub Actionsのトリガーを記載します。 通常はgit pushしたときにActionが実行されるようにpushのみを指定しますが、スケジューラ実行する際は、scheduleを追加します。

実行タイミングはcronで指定します。

私は、crontabの書式をいつも忘れるのですが、以下のサイトを利用するとグラフィカルに表示されわかりやすいです。

crontabの書式確認

Crontab.guru - The cron schedule expression editor

on:
  push:
    branches:
      - main
  schedule:
    - cron: '30 10 * * *'

・・・

定期ビルド

2021年1月9日現在、このブログは静的サイトジェネレーターHugoを利用しています。 GitHub ActionsSchedulerで、1日1回定期的にサイトをビルドできるようになりました。

gh-pages.yml

name: github pages

on:
  push:
    branches:
      - main
  schedule:
    - cron: '30 10 * * *'

jobs:
  deploy:
    runs-on: ubuntu-18.04
    steps:
      - name: Clone module
        uses: actions/checkout@v2
        with:
          fetch-depth: 0    # Fetch all history for .GitInfo and .Lastmod

      - name: Setup Hugo
        uses: peaceiris/actions-hugo@v2
        with:
          hugo-version: '0.77.0'

      - name: Build
        run: HUGO_ENV="production" NODE_ENV="production" hugo --gc

      - name: Deploy
        uses: peaceiris/actions-gh-pages@v3
        with:
          github_token: ${{ secrets.GITHUB_TOKEN }}
          publish_dir: ./public

参考

Related contents