Cloud Build memungkinkan Anda membuat pemicu untuk mem-build dari repositori yang dihosting di Bitbucket Server, sehingga Anda dapat mengeksekusi build sebagai respons terhadap peristiwa seperti push commit atau permintaan pull yang terkait dengan repositori Bitbucket Server Anda.
Halaman ini menjelaskan cara mengaktifkan fungsi pemicu di instance Bitbucket Server.
Sebelum memulai
-
Enable the Cloud Build, Secret Manager, and Compute Engine APIs.
- Jika Anda belum menginstal instance Bitbucket Server, lihat panduan penginstalan Bitbucket untuk mendapatkan petunjuk.
- Ikuti petunjuk untuk menghubungkan host Bitbucket Server.
- Ikuti petunjuk untuk menghubungkan repositori Bitbucket Server.
Membuat pemicu Bitbucket Server
Bagian ini menjelaskan cara menghubungkan repositori Bitbucket Server ke Cloud Build dan membuat pemicu untuk memanggil build secara otomatis di repositori yang terhubung. Jika Anda ingin menggunakan pemicu Bitbucket Server di jaringan pribadi, lihat Mem-build repositori dari Bitbucket Server di jaringan pribadi untuk mengetahui petunjuk lebih lanjut.
Konsol
Untuk membuat pemicu Server Bitbucket menggunakan konsol Google Cloud:
Buka halaman Pemicu:
Pilih project Anda dari bagian atas halaman, lalu klik Buka.
Klik Create trigger.
Masukkan setelan pemicu berikut:
Nama: Nama untuk pemicu Anda.
Region: Pilih region untuk pemicu Anda.
- Jika Anda memilih global sebagai region, Cloud Build akan menggunakan kumpulan default untuk menjalankan build Anda.
- Jika Anda memilih region non-global dan 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 di pemicu harus cocok dengan region tempat Anda membuat kumpulan pribadi.
- Jika Anda memilih region non-global dan 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): 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: Pilih Generasi ke-1 sebagai sumber Anda.
Repositori: Dari daftar repositori yang tersedia, pilih repositori. Untuk menghubungkan repositori baru, lihat Menghubungkan ke repositori Bitbucket Server.
Cabang atau Tag: Tentukan ekspresi reguler dengan cabang atau nilai tag yang akan dicocokkan.
Kontrol komentar: Jika memilih Pull request sebagai Peristiwa, Anda dapat memilih setelan untuk mengontrol apakah peristiwa non-komentar memerlukan interaksi tambahan untuk memicu build. Pilih salah satu opsi berikut untuk mengontrol apakah build akan otomatis dijalankan oleh pemicu:
Wajib kecuali untuk pemilik dan kolaborator: Saat permintaan pull dibuat atau diperbarui oleh pemilik repositori atau pengguna dengan izin tulis, build akan otomatis dijalankan oleh pemicu. Jika kontributor eksternal memulai tindakan, build hanya akan dijalankan setelah pemilik atau pengguna dengan izin tulis mengomentari
/gcbrun
pada permintaan pull. LihatCOMMENTS_ENABLED_FOR_EXTERNAL_CONTRIBUTORS_ONLY
.Wajib: Jika pengguna dengan izin tulis membuat permintaan pull dan menyertakan
/gcbrun
dalam deskripsi permintaan pull, build akan berjalan setelah pembuatan permintaan pull. Saat permintaan pull dibuat atau diperbarui oleh kontributor lain, build hanya akan dijalankan setelah pemilik atau pengguna dengan izin tulis mengomentari/gcbrun
pada permintaan pull. LihatCOMMENTS_ENABLED
.Tidak diperlukan: Saat permintaan pull dibuat atau diperbarui oleh kontributor mana pun, build akan otomatis dieksekusi oleh pemicu. Lihat
COMMENTS_DISABLED
.
Di Bitbucket Server, peristiwa non-komentar mencakup tindakan seperti membuka, mengubah, dan menyetujui permintaan pull.
Peristiwa komentar, yang mencakup penambahan, pengeditan, dan penghapusan komentar, hanya akan memicu build jika komentar berasal dari pengguna dengan izin tulis atau yang lebih tinggi, dan komentar berisi
/gcbrun
.Untuk informasi selengkapnya tentang jenis peristiwa Bitbucket Server, lihat dokumentasi Bitbucket tentang mengelola webhook.
Konfigurasi: Pilih file konfigurasi build yang berada di repositori Anda atau konfigurasikan build secara inline di pemicu.
Type: Pilih jenis konfigurasi yang akan digunakan untuk build Anda.
- File konfigurasi Cloud Build (yaml atau json): Gunakan file konfigurasi build untuk konfigurasi Anda.
- Dockerfile: Gunakan
Dockerfile
untuk konfigurasi Anda.
Lokasi: Tentukan lokasi untuk konfigurasi Anda.
Repositori: Jika file konfigurasi Anda berada di repositori, 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 Buka Editor untuk menulis file konfigurasi build di konsol Google Cloud menggunakan sintaksis YAML atau JSON. Klik Done untuk menyimpan konfigurasi build Anda.
Klik Create untuk membuat pemicu Server Bitbucket.
gcloud
Untuk membuat pemicu Server Bitbucket menggunakan perintah gcloud
, Anda harus
menjalankan perintah
gcloud builds triggers create bitbucketserver
berikut di
terminal:
gcloud builds triggers create bitbucketserver
--name=TRIGGER_NAME \
--project-key=PROJECT_KEY \
--repo-slug=REPO_SLUG \
--bitbucket-server-config-resource=projects/PROJECT_NUMBER/locations/REGION/bitbucketServerConfigs/ID \
--branch-pattern=BRANCH_NAME \ # --tag-pattern=TAG_NAME
--build-config=BUILD_CONFIG
Dengan keterangan:
- TRIGGER_NAME adalah nama pemicu Anda.
- PROJECT_KEY adalah kunci project Bitbucket Server Anda. PROJECT_KEY peka huruf besar/kecil.
- REPO_SLUG adalah slug repositori Bitbucket Server Anda. Untuk informasi selengkapnya, lihat Panduan Bitbucket tentang slug repositori.
- PROJECT_NUMBER adalah nomor project project Cloud Anda.
- REGION adalah region yang terkait dengan konfigurasi Bitbucket Server Anda.
- ID adalah ID BitbucketServerConfig Anda.
- BRANCH_NAME adalah ekspresi reguler yang cocok dengan cabang Anda jika Anda ingin menetapkan pemicu untuk mem-build cabang tertentu.
- TAG_NAME adalah ekspresi reguler yang cocok dengan tag Anda jika Anda ingin menetapkan pemicu untuk membuat tag tertentu.
- BUILD_CONFIG adalah jalur ke file konfigurasi build Anda.
API
Untuk membuat pemicu Server Bitbucket dengan API, gunakan template JSON berikut.
{
"filename": "cloudbuild.yaml",
"name": "curl-trigger",
"description": "curl trigger",
"bitbucket_server_trigger_config": {
"repo_slug": "REPO_SLUG",
"project_key": "PROJECT_KEY",
"push": {
"branch": "BRANCH_NAME" # "tag": "TAG_NAME"
},
"bitbucket_server_config_resource": "projects/PROJECT_NUMBER/locations/REGION/bitbucketServerConfigs/ID"
"comment_control": "COMMENT_SETTING"
}
}
Dengan keterangan:
- REPO_SLUG adalah slug repositori Bitbucket Server Anda. Untuk informasi selengkapnya, lihat Panduan Bitbucket tentang slug repositori.
- PROJECT_KEY adalah kunci project Bitbucket Server Anda. PROJECT_KEY peka huruf besar/kecil.
- BRANCH_NAME adalah ekspresi reguler cabang Anda jika Anda ingin menetapkan pemicu untuk mem-build cabang tertentu.
- TAG_NAME adalah ekspresi reguler tag jika Anda ingin menetapkan pemicu untuk membuat tag tertentu.
- PROJECT_NUMBER adalah nomor project project Cloud Anda.
- REGION adalah region yang terkait dengan konfigurasi Bitbucket Server Anda.
- ID adalah ID BitbucketServerConfig Anda.
- COMMENT_SETTING adalah setelan untuk mengontrol apakah pemicu build memerlukan
/gcbrun
dalam komentar agar build dapat berjalan. Untuk mengetahui informasi selengkapnya, lihat commentControl.
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 nomor project Google Cloud Anda.
- PROJECT_ID adalah ID project Google Cloud Anda.
Berbagi data
Data yang dikirim ke Bitbucket Server dari Cloud Build membantu Anda mengidentifikasi pemicu berdasarkan nama dan melihat hasil build di Bitbucket Server.
Data berikut dibagikan antara Cloud Build dan Server Bitbucket:
- ID project Google Cloud
- Trigger name
Berbagi data diaktifkan secara otomatis untuk Bitbucket Server.
Langkah selanjutnya
- Pelajari cara membuat dan mengelola pemicu build.
- Pelajari cara mem-build repositori dari Bitbucket Server di jaringan pribadi.
- Pelajari cara melakukan deployment blue/green di Compute Engine.