メインコンテンツへスキップ
  1. Blogs/

HugoのbuildがTimeoutになる問題

·631 文字·
Blog Hugo
hiroki
著者
hiroki
クラウドを作るお仕事をしてます。
目次

はじめに
#

本blogはGitlab pagesによってホスティングしていますが、Pipeline内でhugoでbuildする際にtimed out after 30s.とTimeoutになりdeployできなくなりました。(localでは問題なし)

$ hugo
Start building sites … 
hugo v0.131.0+extended linux/amd64 BuildDate=unknown
WARN  deprecated: .Site.Author was deprecated in Hugo v0.124.0 and will be removed in a future release. Use taxonomies instead.
Total in 49020 ms
Error: error building site: render: failed to render pages: render of "home" failed: "/builds/18la008c/hirohirolab/themes/blowfish/layouts/index.html:4:7": execute of template failed: template: index.html:4:7: executing "main" at <partial $partial .>: error calling partial: partial "partials/home/background.html" timed out after 30s. This is most likely due to infinite recursion. If this is just a slow template, you can try to increase the 'timeout' config setting.

Cleaning up project directory and file based variables
ERROR: Job failed: exit code 1

1. 原因
#

原因は.gitignoreresourcesをgit管理から除外していたからでした。

/public
.hugo_build.lock
resources/*

resources/は、hugoが画像を変換したキャッシュが格納されており、これを使うことでbuildが高速になっているようです。

root@v0-dev-01:~/blog/hirohirolab# tree resources/ | head -n100
resources/
└── _gen
    └── images
        ├── about
        │   ├── image_hu1429c22f6e85a95ff4aadd5ff5d21df6_1132204_1024x0_resize_linear_3.png
        │   ├── image_hu1429c22f6e85a95ff4aadd5ff5d21df6_1132204_1320x0_resize_linear_3.png
        │   ├── image_hu1429c22f6e85a95ff4aadd5ff5d21df6_1132204_330x0_resize_linear_3.png
        │   └── image_hu1429c22f6e85a95ff4aadd5ff5d21df6_1132204_660x0_resize_linear_3.png

localではこのキャッシュを使うのでbuildが早いのですが、Gitlab CI/CD内ではこのキャッシュがなく全画像を変換するため30sのtimeoutになっていたようです。 実際にキャッシュを削除してbuildすると29443 msとほぼ30sかかっていました。

/mnt # rm -rf resources

/mnt # hugo
Start building sites … 
hugo v0.131.0+extended linux/amd64 BuildDate=unknown

WARN  deprecated: .Site.Author was deprecated in Hugo v0.124.0 and will be removed in a future release. Use taxonomies instead.

                   | JA   
-------------------+------
  Pages            |  98  
  Paginator pages  |  13  
  Non-page files   | 167  
  Static files     |   7  
  Processed images | 524  
  Aliases          |  34  
  Cleaned          |   0  

Total in 29443 ms

おわりに
#

ということで画像が多めの静的サイトを構築する場合は、resources/もgit管理に含めると良さそうです。

Related

Gitlab CI/CDでseleniumを利用する方法
·2155 文字
Blog Gitlab Python
ElasticSearchを使ったlog収集2 -Elastic Agentの追加-
·3798 文字
Blog ElasticSearch
ElasticSearchを使ったlog収集1 -Elastic Agentとは?-
·3778 文字
Blog ElasticSearch