はじめに

このブログの記事作成の際は,Hugoで書いた記事をGithubPagesにデプロイしています。書いてからデプロイする作業が多少面倒だったので,これを簡単にする手順をまとめてみます。

これまでの手順

hugoで記事作成ができたら,下の手順を踏んでいました。

hugo

.mdファイルから.htmlファイルを生成し,

git add .

で記事の’.md’ファイルをインデックスに追加し,

git commit -m "メモ"

でインデックスのファイルをローカルリポジトリにコミットし,

git push origin master

でローカルリポジトリをリモートリポジトリのmasterブランチにpush する。

こんな感じです。毎回タイプするのが以外と面倒。最初のhugoを忘れてしまうことがあります。また,ちょっとした修正をしたいだけのときは特に面倒です。

簡単にした手順

deploy.shというファイルを作業ディレクトリ直下に作っておいて,上の4つの手順をこのファイルに予め書いておきます。ファイルの中身は下の通りです。

今回は,hugoで生成されたhtmlファイルのみをpushしたいので,cd docsとしています。

#!/bin/bash1

echo -e "\033[0;32mDeploying updates to GitHub...\033[0m"

# Build the project.
hugo # if using a theme, replace with `hugo -t <YOURTHEME>`

# Go To Public folder
cd docs
# Add changes to git.
git add .

# Commit changes.
msg="rebuilding site `date`"
if [ $# -eq 1 ]
  then msg="$1"
fi
git commit -m "$msg"

# Push source and build repos.
git push origin master

# Come Back up to the Project Root
cd ..

権限設定が必要

あとはコマンドラインで

./deploy.sh

と打てばOK,と思いきや

permission denied

許可されなかったと。権限の設定が必要です。

ターミナルで次のコマンドを実行します。

chmod +x deploy.sh

これで権限が与えられました。今度こそ

./deploy.sh

を実行すれば,記事の生成からリモートリポジトリへのpushまで行ってくれます。

参考サイト

Git初心者に捧ぐ!Gitの「これなんで?」を解説します|KRAY

Gitについてイラスト付きで解説されています。

シェルスクリプトを使う前に

権限設定についてはこちらを参考にしました。

Host on GitHub

deploy.shの内容はこちらを参考にしました。公式ドキュメントです。