Cloud Build memungkinkan Anda membuat pemicu untuk mem-build dari repositori yang dihosting di GitHub Enterprise. Anda dapat menjalankan build sebagai respons terhadap peristiwa seperti push commit atau permintaan penggabungan yang terkait dengan repositori GitHub Enterprise Anda.
Halaman ini menjelaskan cara mengaktifkan pemicu build untuk instance GitHub Enterprise. Untuk mengetahui informasi selengkapnya, lihat pemicu Cloud Build dan repositori Cloud Build.
Sebelum memulai
Ikuti petunjuk untuk terhubung ke host GitHub Enterprise.-
Enable the Cloud Build and Secret Manager APIs.
Untuk membuat pemicu bagi repositori GitHub Enterprise, Anda harus memiliki koneksi antara Google Cloud dan repositori Anda. Untuk membuat koneksi melalui aplikasi GitHub Enterprise di Google Cloud, lihat Menghubungkan ke repositori GitHub Enterprise.
Membuat pemicu GitHub Enterprise
Bagian ini menjelaskan cara membuat pemicu dan menautkannya ke penginstalan GitHub Enterprise Anda. Jika Anda ingin menggunakan pemicu GitHub Enterprise di jaringan pribadi, lihat Mem-build repositori dari GitHub Enterprise di jaringan pribadi untuk mengetahui petunjuk lebih lanjut.
Google Cloud console
Untuk membuat pemicu GitHub Enterprise menggunakan konsol Google Cloud , lakukan hal berikut:
Buka halaman Pemicu di Google Cloud konsol.
Pilih Google Cloud project Anda, lalu klik Buka.
Klik Create trigger.
Masukkan setelan pemicu berikut:
Nama: Masukkan nama untuk pemicu Anda.
Region: Pilih region untuk pemicu Anda.
- Jika file konfigurasi build yang terkait dengan pemicu menentukan kumpulan pribadi, Cloud Build akan menggunakan kumpulan pribadi untuk menjalankan build Anda. Dalam hal ini, region yang Anda tentukan dalam pemicu harus cocok dengan region tempat Anda membuat kumpulan pribadi.
- Jika file konfigurasi build yang terkait dengan pemicu tidak menentukan kumpulan pribadi, Cloud Build akan menggunakan kumpulan default untuk menjalankan build di region yang sama dengan pemicu Anda.
Deskripsi (opsional): Masukkan deskripsi untuk pemicu Anda.
Peristiwa: Pilih peristiwa repositori untuk memanggil pemicu Anda.
Push ke cabang: Tetapkan pemicu untuk memulai build pada commit ke cabang tertentu.
Push tag baru: Tetapkan pemicu untuk memulai build pada commit yang berisi tag tertentu.
Permintaan pull: Tetapkan pemicu untuk memulai build pada commit ke permintaan pull.
Sumber: Konfigurasikan informasi tentang repositori GitHub Enterprise Anda:
Layanan repositori: Pilih Cloud Build.
Pembuatan repositori: Pilih Developer Connect sebagai sumber Anda.
Repositori: Dari daftar repositori yang tersedia, pilih repositori.
Cabang atau Tag: Tentukan ekspresi reguler dengan cabang atau nilai tag yang akan dicocokkan. Untuk mengetahui informasi mengenai sintaksis ekspresi reguler yang dapat diterima, lihat sintaksis RE2.
Kontrol komentar: Jika Anda memilih Permintaan pull sebagai Peristiwa, pilih salah satu opsi berikut untuk mengontrol apakah build dijalankan secara otomatis oleh pemicu:
Wajib kecuali untuk pemilik dan kolaborator: Saat permintaan pull dibuat atau diperbarui oleh pemilik atau kolaborator repositori, build akan otomatis dieksekusi oleh pemicu. Jika kontributor eksternal memulai tindakan, build hanya dieksekusi setelah pemilik atau kolaborator mengomentari
/gcbrun
pada permintaan pull.Wajib: Saat permintaan pull dibuat atau diperbarui oleh kontributor, build hanya dieksekusi setelah pemilik atau kollaborator memberi komentar
/gcbrun
pada permintaan pull. Build dieksekusi setiap kali perubahan pada permintaan pull dilakukan.Tidak diperlukan: Saat permintaan pull dibuat atau diperbarui oleh kontributor, build akan otomatis dieksekusi oleh pemicu.
Konfigurasi: Pilih file konfigurasi build yang berada di repositori jarak jauh Anda atau buat file konfigurasi build inline untuk digunakan dalam build Anda.
- Type: Pilih jenis konfigurasi yang akan digunakan untuk build Anda.
- Terdeteksi otomatis: Cloud Build mendeteksi otomatis jenis konfigurasi Anda jika Anda memiliki
cloudbuild.yaml
atauDockerfile
di repositori. - File konfigurasi Cloud Build (yaml atau json): Gunakan file konfigurasi build untuk konfigurasi Anda.
- Dockerfile: Gunakan
Dockerfile
untuk konfigurasi Anda. - Buildpack: Gunakan buildpack untuk konfigurasi Anda.
- Terdeteksi otomatis: Cloud Build mendeteksi otomatis jenis konfigurasi Anda jika Anda memiliki
Lokasi: Tentukan lokasi untuk konfigurasi Anda.
- Repositori: Jika file konfigurasi Anda berada di repositori jarak jauh, berikan lokasi file konfigurasi build atau direktori
Dockerfile
dan nama untuk image yang dihasilkan. Jika konfigurasi Anda adalahDockerfile
, Anda dapat secara opsional memberikan waktu tunggu untuk build. Setelah memberikanDockerfile
dan nama image, Anda akan melihat pratinjau perintahdocker build
yang akan dieksekusi build Anda. - Inline: Jika memilih File konfigurasi Cloud Build (yaml atau json) sebagai opsi konfigurasi, Anda dapat menentukan konfigurasi build secara langsung. Klik Open Editor untuk menulis file konfigurasi build di konsolGoogle Cloud menggunakan sintaksis YAML atau JSON. Klik Done untuk menyimpan konfigurasi build Anda.
- Repositori: Jika file konfigurasi Anda berada di repositori jarak jauh, berikan lokasi file konfigurasi build atau direktori
- Type: Pilih jenis konfigurasi yang akan digunakan untuk build Anda.
Variabel penggantian (opsional): Jika memilih file konfigurasi Cloud Build sebagai opsi konfigurasi build, Anda dapat memilih untuk menentukan variabel penggantian khusus pemicu menggunakan kolom ini. Misalnya, Anda membuat beberapa pemicu dengan setiap pemicu men-deploy aplikasi ke lingkungan tertentu. Anda dapat menentukan bahwa aplikasi di-deploy ke lingkungan dalam file konfigurasi build, lalu menggunakan kolom ini untuk menentukan variabel penggantian yang menentukan lingkungan tempat pemicu ini akan di-deploy. Untuk mengetahui informasi tentang cara menentukan nilai penggantian dalam file konfigurasi build, lihat Mengganti nilai variabel.
Log build (opsional): Centang kotak untuk mengirim log build ke GitHub. Untuk mempelajari cara melihat log build, lihat Melihat log build.
Akun layanan: Pilih akun layanan yang akan digunakan saat memanggil pemicu Anda. Jika kebijakan organisasi Anda mengizinkan penggunaan akun layanan Cloud Build lama, Anda dapat mengosongkan kolom ini untuk menggunakan akun layanan lama. Jika tidak, Anda harus memilih akun layanan tertentu yang akan digunakan, meskipun akun layanan tersebut adalah akun layanan default Compute Engine.
Klik Buat untuk menyimpan pemicu build Anda.
Untuk membuat pemicu GitHub menggunakan perintah gcloud
, lihat perintah gcloud
untuk Membuat pemicu build.
gcloud CLI
Untuk membuat pemicu GitHub Enterprise menggunakan perintah gcloud
, jalankan perintah
berikut:
gcloud alpha builds triggers create developer connect
--name=TRIGGER_NAME \
--git-repository-link=projects/PROJECT_ID/locations/REGION/connections/CONNECTION_NAME/gitRepositoryLinks/REPO_NAME \
--branch-pattern=BRANCH_PATTERN # or --tag-pattern=TAG_PATTERN \
--build-config=BUILD_CONFIG_FILE \
--region=REGION \
--service-account=SERVICE-ACCOUNT
Dengan keterangan:
- TRIGGER_NAME adalah nama pemicu Anda.
- PROJECT_ID adalah Google Cloud project ID Anda.
- REGION adalah region pemicu Anda.
- CONNECTION_NAME adalah nama koneksi GitHub Enterprise Anda.
- GIT_REPOSITORY_LINK adalah link ke repositori Git Anda.
- BRANCH_PATTERN adalah nama cabang di repositori Anda untuk memanggil build.
- TAG_PATTERN adalah nama tag di repositori Anda untuk memanggil build.
- BUILD_CONFIG_FILE adalah jalur ke file konfigurasi build Anda.
- SERVICE-ACCOUNT adalah akun layanan yang akan digunakan untuk operasi pemicu dan build.
API
Untuk membuat pemicu GitHub Enterprise dengan API, gunakan template JSON berikut:
{
"filename": "cloudbuild.yaml",
"name": "TRIGGER_NAME",
"description": "TRIGGER_DESCRIPTION",
"serviceAccount": "SERVICE_ACCOUNT",
"github": {
"owner": "OWNER",
"name": "REPO_NAME",
"push": {
"branch": ".*"
},
"enterprise_config_resource_name": "projects/PROJECT_NUMBER/githubEnterpriseConfigs/CONNECTION_ID"
},
"include_build_logs": include-build-logs-value
}
Dengan keterangan:
- TRIGGER_NAME adalah nama untuk pemicu.
- TRIGGER_DESCRIPTION adalah deskripsi untuk pemicu.
- SERVICE_ACCOUNT adalah akun layanan yang akan digunakan untuk operasi pemicu dan build.
- OWNER adalah pemilik repositori GitHub.
- REPO_NAME adalah nama repositori GitHub.
- PROJECT_NUMBER adalah Google Cloud nomor project Anda.
- CONNECTION_ID adalah ID
koneksi ke host GitHub Enterprise Anda.
Di API, koneksi ini direpresentasikan
sebagai resource
GitHubEnterpriseConfig
, atau pengaitan antara Cloud Build dan Server GitHub Enterprise Anda. - include-build-logs-value adalah nilai kolom
include_build_logs
opsional. Jika kolom ini memiliki nilaiINCLUDE_BUILD_LOGS_SPECIFIED
, log build akan ditampilkan di repositori Anda.
Masukkan perintah curl
berikut di terminal Anda:
curl -X POST -H "Authorization: Bearer "$(gcloud auth print-access-token) -H "Content-Type: application/json; charset=utf-8" -H "x-goog-user-project: PROJECT_NUMBER" https://cloudbuild.googleapis.com/v1/projects/PROJECT_ID/triggers -d @trigger.json
Dengan keterangan:
- PROJECT_NUMBER adalah Google Cloud nomor project Anda.
- PROJECT_ID adalah Google Cloud project ID Anda.
Berbagi data
Data yang dikirim ke GitHub Enterprise dari Cloud Build membantu Anda mengidentifikasi pemicu berdasarkan nama dan melihat hasil build di GitHub Enterprise.
Data berikut saat ini dibagikan antara Cloud Build dan GitHub Enterprise:
- ID project cloud
- Nama pemicu
- Log build
Jika Anda membuat pemicu sebelum Agustus 2020, pembagian data mungkin tidak diaktifkan untuk project Anda. Anda dapat mengaktifkan pembagian data untuk semua pemicu GitHub Enterprise di project dengan mengklik Aktifkan di tab Berbagi data Cloud Build.
Jika Anda mengaktifkan pemeriksaan status yang diperlukan untuk repositori GitHub Enterprise, mengaktifkan pembagian data dapat merusak pemeriksaan status untuk sementara. Anda dapat menyesuaikan konfigurasi pemeriksaan status untuk mencari nama pemicu dengan:
- Menonaktifkan pemeriksaan wajib khusus Cloud Build di repositori GitHub Enterprise
- Memastikan bahwa berbagi data diaktifkan di Cloud Build
- Menjalankan build baru di Cloud Build yang memposting status ke repositori Anda
- Mengaktifkan kembali pemeriksaan status yang diperlukan, memilih nama pemicu
Langkah berikutnya
- Pelajari cara membuat dan mengelola pemicu.
- Pelajari cara mem-build repositori dari GitHub Enterprise di jaringan pribadi.
- Pelajari cara melakukan deployment blue-green di Compute Engine.