Gitによるデプロイ
開発環境とサーバ環境で、バージョン管理システムの Git を使っているなら、ホスティング形式の Git サービスである GitHub や、Gitlab を使ったシンプルなワークフローを構築できます。 Git や、そのクライアントツールに親しんでいるなら、試してみてください。
そのメリットは:
- クリーン : いくつかのコマンドライン命令を出すだけで、いくらでも自動化可能
- 信頼性 : アップロードするファイルを覚えておく必要がなく、必要な変更だけを確実にエスカレーション可能(特に、ファイル内の一部だけを更新した場合に便利です)
- 安全 : クラウドホスティングを正規のリポジトリ( “origin” )に利用することにより、(バージョン管理された)ソースのバックアップが無料で使えます; issue を使ってタスク管理もできます。
セットアップ
Git ベースのワークフローには、いくつかのセットアップが必要です。以下は、構成のおおまかな概要です。plugins
のようなサードパーティー製のコードを含むフォルダに commit したいかどうかによって、最初にサーバーにセットアップするときのステップが少し増えるかもしれません。
- あなたの開発環境で、 Grav の
user
フォルダが、Git リポジトリであるとします。 user
フォルダは、クラウドにもホスティングされています。もし世界にシェアされたくない場合は、private リポジトリに対応しているプロバイダを選んでください。- ホスティングしたコピーは、ローカル環境やサーバー環境から見れば “リモート” にある
origin
です。 - Grav サイトへの変更を、ローカル環境から、Git のクラウドホスティング上の
origin
に push します。 - サーバー上には、Grav がインストールされており、その
user
フォルダは、リモートリポジトリのクローンです。 - サーバー上で Grav サイトを更新したいなら、リモートの
origin
から Git で pull してください。
アップデート
最初のセットアップが終わったら、重要な更新ごとに、2つのステップを踏むだけです:
- ローカル環境から push する
- サーバーへ変更を pull する
セットアップの拡張
さらに高度な自動化を望むなら、Git Hooks をセットアップできます。もしくは、 Github’s webhooks のような機能を使うこともできます。また、web 編集者たちが、管理プラグインを使って、それぞれ自身のインストール環境で編集したコンテンツの変更を、統合することもできます。Git タグを使って、公開された内容を(ほぼ)不変の記録として残すことができます。
利用できるツールは、すべての種類のマルチ環境のワークフローと自動化をサポートします。
[!Tip]
Git Sync plugin を使えば、コンテンツワークフローに Git を利用できます。コンテンツ編集者は、管理パネルプラグインを通して、変更をデプロイできます。
以下は、 user
フォルダのリポジトリの .gitignore
ファイルの例です。これにより、デプロイがクリーンに保たれるでしょう:
accounts/*
!accounts/.*
data/*
!data/.*
languages/*
!languages/.*
plugins/*
!plugins/.*
themes/*
!themes/.*
!themes/MY_CUSTOM_THEME/
**/config/security.yaml
[!Info]
もしコントロールしたいソースを含むカスタムテーマや、テーマの継承を使っているときは、上記のMY_CUSTOM_THEME
を、そのテーマ名に変更してください。サイト特有のカスタムプラグインについても、同様の検討をしてください。