hugoのジェネレートをGitHub-actionsを使って、pushするだけでデプロイできるようにしたのですが、全記事の最終更新日が更新されていたため原因調査をおこないました。
actions/checkout
を利用する場合は以下の方法でfetchを行わせ、全履歴を取得しておく- uses: actions/checkout@v2
with:
fetch-depth: 0 # Fetch all history for .GitInfo and .
icon | 結果 |
---|---|
✅ | 更新対象記事のみlastmodが更新されていた |
❎ | すべての記事に対して更新が入っていた |
CI環境
❎既存のworkflowを使わずにコマンドでインストール(下記コマンドを実行)
wget https://github.com/gohugoio/hugo/releases/download/v0.68.3/hugo_0.68.3_Linux-64bit.deb
sudo apt-get install -y ./hugo_0.68.3_Linux-64bit.deb
git log
の結果が正常に表示されているか
actions/checkout@v2
という公式のworkflowを利用してgitのcloneを行っていたのですが、デフォルトでは最新のコミットしか取ってこないようです。
更新日時の参照先が見つけられなくなるため、すべての記事が最新のコミット更新日時を取得しに行ってしまったのだと思います。
# Number of commits to fetch. 0 indicates all history. # Default: 1 fetch-depth: ''
https://github.com/actions/checkout#usage
すべての履歴をcloneしてくることで、解決しました。
GitHub Actionsのymlファイルでは、以下のように記載するようです。
- uses: actions/checkout@v2 with: fetch-depth: 0 # Fetch all history for .GitInfo and .
https://github.com/peaceiris/actions-hugo#️-create-your-workflow
最初はhugoのセットアップに使っているworkflowが悪いのかを疑ってたせいで、結構解決までに時間がかかりました…
今回のような問題を早期発見するために、確認用のStepも入れたほうが良いのかなと思いました。
Crieitは誰でも投稿できるサービスです。 是非記事の投稿をお願いします。どんな軽い内容でも投稿できます。
また、「こんな記事が読みたいけど見つからない!」という方は是非記事投稿リクエストボードへ!
こじんまりと作業ログやメモ、進捗を書き残しておきたい方はボード機能をご利用ください。
ボードとは?
コメント