Membangun repositori dari Bitbucket Server

Dengan Cloud Build, Anda dapat membuat pemicu untuk mem-build dari repositori yang dihosting di Bitbucket Server, sehingga Anda dapat menjalankan 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 pada instance Bitbucket Server.

Sebelum memulai

  • Enable the Cloud Build, Secret Manager, and Compute Engine APIs.

    Enable the APIs

Membuat pemicu Bitbucket Server

Bagian ini menjelaskan cara menghubungkan repositori Bitbucket Server ke Cloud Build dan membuat pemicu untuk otomatis memanggil build di repositori yang terhubung. Jika Anda ingin menggunakan pemicu Bitbucket Server di jaringan pribadi, lihat Membuat repositori dari Server Bitbucket dalam jaringan pribadi untuk mengetahui petunjuk selengkapnya.

Konsol

Untuk membuat pemicu Bitbucket Server menggunakan konsol Google Cloud:

  1. Buka halaman Pemicu:

    Buka halaman Pemicu

  2. Pilih project Anda dari bagian atas halaman, lalu klik Open.

  3. Klik Create trigger.

  4. Masukkan setelan pemicu berikut:

    • Nama: Nama pemicu Anda.

    • Region: Pilih wilayah untuk pemicu Anda.

      • Jika Anda memilih global sebagai region, Cloud Build akan menggunakan kumpulan default untuk menjalankan build.
      • 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 dalam 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 Anda 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.

      • Kirim tag baru: Tetapkan pemicu untuk memulai build pada commit yang berisi tag tertentu.

      • Permintaan pull: Menetapkan pemicu untuk memulai build pada commit ke permintaan pull.

    • Sumber: Pilih generasi ke-1 sebagai sumber Anda.

      • Repository: Dari daftar repositori yang tersedia, pilih repositori. Untuk menghubungkan repositori baru, lihat Menghubungkan ke repositori Bitbucket Server.

      • Branch atau Tag: Tentukan ekspresi reguler dengan nilai cabang atau tag yang akan dicocokkan.

      • Kontrol komentar: Jika memilih Permintaan tarik 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. Lihat COMMENTS_ENABLED_FOR_EXTERNAL_CONTRIBUTORS_ONLY.

        • Wajib: Jika pengguna dengan izin tulis membuat permintaan pull dan menyertakan /gcbrun dalam deskripsi permintaan pull, build akan berjalan saat pembuatan permintaan pull. Saat permintaan pull dibuat atau diperbarui oleh kontributor lain, build hanya akan dieksekusi setelah pemilik atau pengguna dengan komentar izin tulis /gcbrun pada permintaan pull. Lihat COMMENTS_ENABLED.

        • Tidak diperlukan: Saat permintaan pull dibuat atau diperbarui oleh kontributor, build akan otomatis dijalankan 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.

    • Configuration: Pilih file konfigurasi build yang ada di repositori atau konfigurasi build Anda secara inline pada pemicu.

    • Type: Pilih jenis konfigurasi yang akan digunakan untuk build Anda.

      • Cloud Build configuration file (yaml atau json): Menggunakan file konfigurasi build untuk konfigurasi Anda.
      • Dockerfile: Gunakan Dockerfile untuk konfigurasi Anda.
    • Location: Menentukan lokasi untuk konfigurasi Anda.

      • Repositori: Jika file konfigurasi berada di repositori Anda, berikan lokasi file konfigurasi build atau direktori Dockerfile dan nama untuk image yang dihasilkan. Jika konfigurasinya adalah Dockerfile, Anda dapat menyediakan waktu tunggu untuk build secara opsional. Setelah memberikan nama Dockerfile dan image, Anda akan melihat pratinjau perintah docker build yang akan dijalankan oleh build Anda.

      • Inline: Jika memilih Cloud Build configuration file (yaml atau json) sebagai opsi konfigurasi, Anda dapat menentukan konfigurasi build secara inline. Klik Open Editor untuk menulis file konfigurasi build di Google Cloud Console menggunakan sintaksis YAML atau JSON. Klik Done untuk menyimpan konfigurasi build Anda.

  5. Klik Create untuk membuat pemicu Bitbucket Server Anda.

gcloud

Untuk membuat pemicu Bitbucket Server menggunakan perintah gcloud, Anda harus menjalankan perintah gcloud builds triggers create bitbucketserver berikut di terminal Anda:

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 dari repositori Bitbucket Server Anda. Untuk mengetahui informasi selengkapnya, lihat Panduan Bitbucket tentang slug repositori.
  • PROJECT_NUMBER adalah nomor project dari 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 ingin menetapkan pemicu untuk mem-build cabang tertentu.
  • TAG_NAME adalah ekspresi reguler yang cocok dengan tag jika Anda ingin menyetel pemicu untuk membuat tag tertentu.
  • BUILD_CONFIG adalah jalur ke file konfigurasi build Anda.

API

Untuk membuat pemicu Bitbucket Server 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 dari repositori Bitbucket Server Anda. Untuk mengetahui 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 jika Anda ingin menetapkan pemicu untuk mem-build cabang tertentu.
  • TAG_NAME adalah ekspresi reguler tag jika Anda ingin menyetel pemicu untuk membuat tag tertentu.
  • PROJECT_NUMBER adalah nomor project dari 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 dijalankan. 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 Bitbucket Server:

  • ID project Google Cloud
  • Trigger name

Berbagi data diaktifkan secara otomatis untuk Bitbucket Server.

Langkah selanjutnya