notehugoで生成した静的ページをCircleCIでさくらのレンタルサーバへ自動アップ更新:2019.2.23目次はじめにCircleCIの設定方法config.ymlの内容deploy.pyの内容replace.phpの内容はじめにhugoを使って記事を書き、bitbucketのgitリポジトリへプッシュしたらCircleCIで静的ページを生成してレンタルサーバへアップするみたいなことを、やってみましたので紹介します。ローカルで行うことは、下記の2つだけになるのでとても快適な執筆活動が行えるようになります。CircleCIの設定方法CircleCIに追加したリポジトリの中に、下記のディレクトリ1つとファイル1つを作成する必要があります。個々に記載した設定をCircleCIが自動的に読み取ってファイルをPushしたときにデプロイ処理を実行してくれます。下記のようなイメージでは位置すればOKです。themesconfig.ymlの内容config.ymlの中身は下記のようにしました。deploy.py記述の内容を簡単に説明していこうと思います。cibuilds/hugo:latestcibuilds/hugo:latestというdockerイメージが既にあったので、これを利用してデプロイまで行うようにしました。checkoutbitbucketの設定したリポジトリからソースコード(hugo)のデータを取得します。lftpデータを取得したら、コンテナ内のパッケージをアップデートして、python3とlftpをインストールします。-dコマンドを使ってサーバに上げるためのコンテンツデータを生成します。note.mokuzine.netここからは私の独自方法になりますが、生成したコンテンツデータをtarで固めます。deploy.py自作のデプロイ用スクリプトdeploy.pyを実行して、レンタルサーバへ先程作成したtarファイルをアップロード、データ入れ替えを行います。deploy.pyの内容CircleCIからレンタルサーバへのアップロードはdeploy.pyが行っています。deploy.pyがreplace.phpというPHPスクリプトを実行して、古いコンテンツデータとアップロードしたコンテンツの入れ替えを行っています。さくらインターネットのライトプランではphpが標準で使用できますので、このようにしています。repsh)コンテンツの入れ替えは、replace.phpが行い、入れ替えが終わったらreplace.phpをサーバ上から削除して、サーバに不要なファイルを残さないようにしています。新しく生成したコンテンツデータのアップロードが完了したあとは、replace.phpを使って古いコンテンツを削除して新しいコンテンツを解凍しています。解凍が終わったら、tarファイルを削除してゴミを残さないようにしています。"repace";など一部エコーしている部分は、手動でコンテンツ入れ替えのテストしているとき名残なので、特に意味はないです。LTSに最新のhugoをインストールする方法2018/11/01hugoのserverコマンドで使えるオプションをまとめた2019/02/18hugoのコードブロックをハイライトする方法2020/01/10hugoで生成した静的ページをCircleCIでさくらのレンタルサーバへ自動アップ2019/02/23hugoのショートコードを使ってコードの掲載を効率化2018/05/09これからブログなどのサイトを作りたいと思っている人は、お名前.comでのドメイン取得がオススメです。