GitHub
Deploy repositori publik dan privat, dan deploy ulang di setiap push.
Hubungkan GitHub
- Di proyek, klik Add Service → GitHub.
- Klik Connect GitHub, pilih akun atau organisasi Anda, dan pilih repositori yang boleh dibaca Zenavo. Anda kembali ke proyek setelah selesai.
Hanya pemilik dan admin tim yang bisa menghubungkan GitHub. Zenavo mendapat akses baca ke kode dan metadata repositori yang Anda pilih, serta event push-nya. Untuk menambahkan repositori lain nanti, buka pengaturan GitHub App dari daftar repositori, atau cari repositori yang belum ada lalu pilih Try installing the GitHub App again.
Tambahkan repositori
- Pilih repositori. Repositori diurutkan dari yang paling baru di-push; ketik untuk mencari.
- Pilih branch atau tag.
- Configure Build Plan:
- Service Name: nama apa pun hingga 64 karakter; Anda bisa menggantinya nanti. ID permanennya dibuat dari nama ini.
- Root Directory: untuk monorepo, folder yang berisi layanan ini, seperti
/apps/web. - Environment Variables: tambahkan baris, atau klik Edit Raw Variables untuk menempelkan baris
KEY=value. - Advanced Settings: path Dockerfile, port HTTP, dan Deploy automatically when this branch is pushed (aktif secara bawaan).
- Build Plan Preview menampilkan cara layanan akan dibangun: Dockerfile Anda, atau bahasa dan versi yang dideteksi zbpack, beserta port-nya. Klik Configure untuk mengubah sesuatu, atau Deploy.
Deploy saat push
Dengan deploy otomatis aktif, setiap push ke branch itu membangun dan men-deploy proyek. Push ke branch lain diabaikan. Nyalakan atau matikan nanti di tab Settings layanan → Auto deploy.
Watch paths
Di monorepo, push ke satu aplikasi tidak seharusnya men-deploy ulang aplikasi lain. Di tab Settings layanan → Watch paths, masukkan satu pola per baris; push hanya akan men-deploy bila mengubah file yang cocok. Kosongkan untuk men-deploy di setiap push.
Pola memakai sintaks .gitignore, dibaca dari root repositori (bukan direktori root), tetapi memilih file yang memicu deploy:
| Pola | Deploy saat push mengubah |
|---|---|
apps/web/ | apa pun di bawah apps/web |
/package.json | hanya package.json di root repositori |
*.go | file Go apa pun, di folder mana pun |
packages/**/src | folder src di kedalaman mana pun di bawah packages |
!**/*.md | bukan file Markdown, bahkan di dalam folder yang dipantau |
Seperti di .gitignore, pola dengan / di awal atau di tengah relatif terhadap root repositori, dan pola tanpa / cocok di kedalaman mana pun. * dan ? tetap di dalam satu nama folder, ** melintasi folder, dan pola terakhir yang cocok dengan sebuah file yang menentukan. File yang ditambahkan, diubah, dan dihapus semuanya dihitung.
Zenavo membaca file yang berubah dari event push GitHub. Jika event tidak mencantumkannya (misalnya push lebih dari 2.048 commit, atau branch yang dipindahkan ke commit yang sudah ada), layanan tetap di-deploy. Deploy ulang dari konsol atau CLI selalu men-deploy, apa pun watch paths-nya.
Sebuah push men-deploy proyek bila salah satu layanan dengan deploy otomatis yang mengikuti branch itu memantau file yang berubah.