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

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

更新日:2022.09.01 作成日:2021.01.09

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

GitHub Actionsでスケジューラ実行

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

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

私は、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/[email protected]
        with:
          fetch-depth: 0    # Fetch all history for .GitInfo and .Lastmod

      - name: Setup Hugo
        uses: peaceiris/[email protected]
        with:
          hugo-version: '0.77.0'

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

      - name: Deploy
        uses: peaceiris/[email protected]
        with:
          github_token: ${{ secrets.GITHUB_TOKEN }}
          publish_dir: ./public

参考

B! Pocket

Related contents

TECH

2021.02.11

Git pre-commitフックでFrontmatterの「更新日時」を自動更新する

TECH

2021.01.24

「Hugoで始める静的サイト構築入門 静的サイトジェネレーターで作る自作サイト」を出版しました

TECH

2022.09.03

【Hugo】Render Hooks for Code Blocksを利用してコードブロックにファイル名を表示する

TECH

2022.08.29

Hugoでブログカードを作成する(resources.GetRemote利用)

TECH

2022.08.14

GitHub PagesからCloudflare Pagesへの移行

TECH

2022.06.29

AMP Service WorkerでPrefetch Linksを実現する

TECH

2020.12.26

Hugoでブログ記事一覧ページ(ブログアーカイブページ)を作成する

TECH

2020.11.01

HugoでTailwindCSSを利用しAMP Validなページを生成する