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がおすすめ」 ↩︎