# lastestは使うバージョンに変更可能
image: registry.gitlab.com/pages/hugo:latest

variables:
  GIT_SUBMODULE_STRATEGY: recursive

# masterブランチ以外で実行されるテストコマンド。と行ってもhugoコマンドを実行しているだけ
# 記事追加でブランチを切る場合(Netlify CMSなど)は無駄にPipeline Quataを消費するからtestは削除するか、開発用のブランチを指定したほうがいい
test:
  script:
  - hugo
  except:
  - master

# ここで公開処理。hugoコマンドを実行して、できたpublicディレクトリを公開しているだけ
pages:
  script:
  - hugo
  artifacts:
    paths:
    - public
  only:
  - master

Gitlab PagesでHUGOサイトをビルドする際に、どのコンテナを使うのかと思ったら公式のものがありました。注意点は、このコードだと常に最新版になってしまうので、テーマやコードが最新版に対応してない場合は、lastestをバージョン番号にすればOKです。

参考:HUGO | GitLab Pages examples