世の中あまたのブログサービスのお手軽さはそれはそれで良いとしても、静的サイトジェネレータの良さもある。 動的サイトに比べレンダリング処理の必要がいらない分、表示が早いとか。 メモ帳程度の文章をツラツラ書くのに凝る必要がないから選択肢に静的サイトジェネレータを選んだ理由があった。
ドメインは自分が取得したものだが、サイトはあっちこっちホッピングした。いまはGitHub Pagesを使っている。
いままで作成したコンテンツをローカルの
GitHub Pagesのリポジトリに rsync
と git push
をしていたけど、
それすら面倒になっているオッさんなのでPostを作成して git push
したらデプロイする方向転換を模索し始めた。
gitアカウント作成/Hugoのサイトの構築や、git絡みの設定は完了済みは前提として。
GitHub Pagesでデプロイ #
これによると GitHub Pages には2つのタイプを選べる。
- User or Organization Site
https://<username or organization>.github.io/
のURLで公開されるタイプ - Project Site
https://<username>.github.io/repository/
のURLで公開されるタイプ
リポジトリが username.github.io
以外は後者になることがわかった。たぶん、その理解で間違っていないと思う。
つまり、
https://gohugo.io/hosting-and-deployment/hosting-on-github/ のやり方でやると
https://www.ty07.net/hugo-mysite/ のURLとして公開されることになる。
期待どおりに
https://www.ty07.net のURLで公開するためには
GitHub Pagesのリポジトリに rsync
と git push
でデプロイメントしかないのだろうか😓
すこしたった後に思ったこと。 #
actions-hugo を先に読めば、まだ理解できたかもしれない。要は、 https://<username>.github.io/
にHUGO環境を入れて
GitHub Page にデプロイすれば良いことがわかった。
ところが CNAMEが正しく処理されないので、前とほぼ同じデプロイで落ち着いた。
deploy.sh
#!/bin/bash
hugo=~/Documents/devel/repos/ac1965.github.io
public=~/Documents/devel/repos/deploy
abort ()
{
echo -e "\033[1;30m>\033[0;31m>\033[1;31m> ERROR:\033[0m${@}\n" && exit
}
info ()
{
echo -e "\033[1;30m>\033[0;36m>\033[1;36m> \033[0m${@}\n"
}
warn ()
{
echo -e "\033[1;30m>\033[0;33m>\033[1;33m> \033[0m${@}\n"
}
test -d ${hugo} && cd ${hugo} || abort "${hogo} directory not found."
# clean public
rm -fr public
info "Deploying updates to GitHub..."
# Build the project.
hugo # if using a theme, replace with `hugo -t <YOURTHEME>`
# Go To Public folder
test -d ${public} && cd ${public} || abort "${public} not found."
info "rsync.."
rsync -at --delete --exclude=".git" ${hugo}/public/. .
# Add changes to git.
git add .
git commit -avm "update:$(env LANG=C date)" && git push