GitLab]gitlabのGitLab-CIを使えば、リモートリポジトリへのプッシュを起点にCI/CDの処理(pipeline)を実行させ、GiLab Pagesにサイトジェネレーター(今回ならHugo)が生成したコンテンツを自動的に公開することができる。1,2
手順
Hugoで公開したい内容をサイトとして作成し、公開先としてGitLabに$USER.gitlab.ioという名前のプロジェクトを作っておく。 そのうえで次のcommandを実行する。
- GitLabのpages projectのhugo example siteのprojectをcloneする。
git clone git@gitlab.com:pages/hugo.git blog - git meda date file を削除
cd blog && rm -f .git git init - hugo用のconfig fileを修正
vim config.toml # baseurl = "https://$USER.gitlab.io" - gitのremote ripogitoryにGitLab上のprojectを指定して、commit、pushする。
git remote add origin git@gitlab.com:$USER/$USER.gitlab.io git add . && git comit -m 'first' git push -u origin master
仕組み
GitLab Pages examplesプロジェクトに、サイトジェネレーター別のサブプロジェクト(今回はhugo)があり、ジェネレーターごとのCI/CD用.gitlab-ci.ymlが用意されている。リポジトリへのpushを発端に、GitLabがDockerのリポジトリのHugoのイメージを使って、コンテンツの生成と公開までをしてくれる。サイトの公開はGitLab Pagesの機能として実現されている。
-
参考記事「GitLabでHugoブログを簡単に公開する方法」 ↩︎
-
参考記事「BlogやるならGitLab Pageがおすすめ」 ↩︎