GitHub Actionsでサーバ上のブログを自動更新
はじめに 本ブログを自動更新したかったのでGitHub Actionsを設定してみました。 ブログのGitHubリポジトリ更新時、GitHub Actionsによって、レンタルサーバへ自動でssh接続が行われ、任意のコマンドが実行されます。これにより本ブログが自動で更新されるようになりました。 この記事ではGitHub Actionsの使い方をざっくりまとめてみます。 対象のGitHubリポジトリ 本ブログのGitHubリポジトリはこちらです。 このリポジトリを見てもらえれば、今回何をやったのかは理解していただけると思います。 コミット履歴が汚いことは私も残念に思っています泣。 加藤祐介ブログのGitHubリポジトリ GitHub Actionsの設定 今回作成したブログ自動デプロイ用の設定ファイルはこちらです。 ssh接続に必要な情報(秘密鍵など)はGitHubリポジトリのSecrets機能で隠しています。 GitHub Actionsの設定ファイル 今回はssh接続のためにhost、username、key、portを設定しています。 公開鍵と秘密鍵の生成時にpassphraseを設定した場合はpassphraseの情報も必要になります。 設定ファイルの書き方はこちらの記事を参考にしました。 GitHub Actions を使用してデプロイ(サーバに入ってpull)するまでやってみた(後半戦) GitHub Actionsにおいてssh接続のために使用しているアクションはこちらです。 appleboy/ssh-action 公開鍵と秘密鍵の設定 公開鍵と秘密鍵を生成してssh接続する流れはこちらの記事が参考になります。 GitHub Actionsでレンタルサーバにsshしてpullする方法 Deploy Keysの設定 対象のGithubリポジトリにDeploy Keysを設定する方法はこちらの記事が参考になります。 【GitHub】Deploy keysを使ってsshでpullするまで お名前.comのレンタルサーバへのssh接続 お名前.comでレンタルしているサーバへssh接続する方法はこちらの記事が参考になります。 お名前.com レンタルサーバーでSSH接続する方法 ブログ自動更新スクリプト 本ブログを自動更新するスクリプトはこちらです。 YusukeKatoBlog/scripts/ 複数のファイルに分かれていますが、主な内容は下記の通りです。 Markdownファイルの記事をHTMLに変換(変換スクリプトは自作) index.htmlを自動作成 sitemap.xmlを自動作成 サーバ上のデータを自動更新 おまけ:画像ファイルをリサイズ 以上のブログ自動更新スクリプトをGitHub Actionsで実行することでブログをデプロイしています。 おわりに この記事ではGitHub Actionsを使って本ブログを自動更新する方法について簡単にまとめました。これでブログの更新が楽になりました。また、GitHub Actionsの勉強もできて一石二鳥でした。かなり嬉しいです。それでは、また。