はじめに
Hugo
では、記事の最終更新時刻をLastmod
を利用して表すことができます。configファイルでenableGitInfo: true
と記入しておくとgitのlogをもとにHugoが自動的にLastmodを設定しくれます。しかし、GitHub ActionsでHugoをビルドしたところ、すべてのLastmodが同じ時間(pushした時刻)になってしまっていました。
解決法
GitHub Actionsのファイルは以下のようでした。
1name: Build GH-Pages
2
3on:
4 push:
5 branches:
6 - main
7
8jobs:
9 deploy:
10 runs-on: macos-latest
11 steps:
12 - name: Git checkout
13 uses: actions/checkout@v2
14 with:
15 submodules: recursive # Fetch Hugo themes (true OR recursive)
16
17 - name: Setup hugo
18 uses: peaceiris/actions-hugo@v2
19 with:
20 hugo-version: 'latest'
21
22 - name: Build
23 run: hugo --gc --verbose --minify
24
25 - name: Deploy
26 uses: peaceiris/actions-gh-pages@v3
27 with:
28 deploy_key: ${{ secrets.ACTIONS_DEPLOY_KEY }}
29 external_repository: Hattomo/Hattomo.github.io
30 publish_branch: main
31 publish_dir: ./public
問題は、ソースをダウンロードする際、fetch-depth
がデフォルトで1になっていることでした。fetch-depth
が1の場合、最新のコードのみを持ってくるようです。そのため、履歴がなくLastmodが同一時刻になっていたのでした。以下のように、fetch-depth
に0を設定したところ正しく動くようになりました。
1 steps:
2 - name: Git checkout
3 uses: actions/checkout@v2
4 with:
5 submodules: recursive
6 fetch-depth: 0 # Add