GitHub
公開・非公開のリポジトリをデプロイし、push のたびに再デプロイします。
GitHub を接続する
- プロジェクトで Add Service → GitHub をクリックします。
- Connect GitHub をクリックしてアカウントまたは Organization を選び、Zenavo が読み取れるリポジトリを選択します。終わるとプロジェクトに戻ります。
GitHub を接続できるのはチームのオーナーと管理者だけです。Zenavo は選んだリポジトリのコードとメタデータの読み取り権限と、その push イベントを受け取ります。あとでリポジトリを追加するには、リポジトリ一覧から GitHub App の設定を開くか、見つからないリポジトリを検索して Try installing the GitHub App again を選びます。
リポジトリを追加する
- リポジトリを選ぶ。 最近 push されたものから順に並びます。入力して検索できます。
- ブランチまたはタグを選ぶ。
- Configure Build Plan:
- Service Name:64 文字までの任意の名前。あとで変更できます。サービスの恒久的な ID はこの名前から作られます。
- Root Directory:モノレポでは、このサービスのフォルダー(例:
/apps/web)。 - Environment Variables:行を追加するか、Edit Raw Variables で
KEY=valueの行を貼り付けます。 - Advanced Settings:Dockerfile のパス、HTTP ポート、Deploy automatically when this branch is pushed(デフォルトでオン)。
- Build Plan Preview に、サービスがどうビルドされるか(自分の Dockerfile か、zbpack が検出した言語とバージョン)とポートが表示されます。Configure で変更するか、Deploy をクリックします。
push でデプロイする
自動デプロイがオンなら、そのブランチへの push のたびにプロジェクトがビルド・デプロイされます。他のブランチへの push は無視されます。あとからサービスの Settings タブ → Auto deploy でオン・オフできます。
Watch paths
モノレポでは、あるアプリへの push で他のアプリを再デプロイしたくありません。サービスの Settings タブ → Watch paths にパターンを 1 行に 1 つ入力すると、一致するファイルを変更した push のときだけデプロイされます。空欄なら push のたびにデプロイします。
パターンは .gitignore の構文で、(ルートディレクトリではなく)リポジトリのルートから読みます。ただし、選ぶのはデプロイのきっかけになるファイルです。
| パターン | push で次が変わったときにデプロイ |
|---|---|
apps/web/ | apps/web 以下のすべて |
/package.json | リポジトリ直下の package.json だけ |
*.go | 任意のフォルダーの Go ファイル |
packages/**/src | packages 以下の任意の階層にある src フォルダー |
!**/*.md | Markdown ファイルは除外(監視中のフォルダー内でも) |
.gitignore と同じく、先頭か途中に / があるパターンはリポジトリのルートからの相対で、ないものは任意の階層に一致します。* と ? はひとつのフォルダー名の中だけ、** はフォルダーをまたぎ、ファイルに最後に一致したパターンが優先されます。追加・変更・削除されたファイルのすべてが対象です。
Zenavo は変更されたファイルを GitHub の push イベントから読みます。イベントにファイルの一覧がない場合(2,048 を超えるコミットの push や、既存のコミットへのブランチの移動など)は、そのままデプロイします。コンソールや CLI からの再デプロイは、Watch paths にかかわらず常にデプロイします。
そのブランチを追跡している自動デプロイのサービスのどれかが変更ファイルを監視していれば、その push でプロジェクトがデプロイされます。