Konfigurasikan pemicu sumber kode untuk pipeline Anda dan tentukan peristiwa pemicu serta kondisi penyaringan guna mengontrol kapan pipeline dijalankan secara otomatis.
Konfigurasi pemicu sumber kode
Setelah Anda mengaktifkan pemicu sumber kode dan mengonfigurasi webhook, Flow secara otomatis menjalankan pipeline ketika kode dikomit ke repositori dan branch yang ditentukan.
Alibaba Cloud DevOps Codeup
-
Di Alibaba Cloud DevOps, buka pipeline Anda, klik Edit Pipeline, lalu klik Edit Code Source.
-
Klik Enable Code Source Trigger. Flow secara otomatis menambahkan URL webhook ke repositori kode Alibaba Cloud DevOps Codeup yang sesuai.
Setelah mengaktifkan pemicu, pada bagian Triggering events, pilih jenis peristiwa yang diinginkan, seperti code commit, tag creation, merge request completed, dan merge request created/updated. Anda juga dapat mengaktifkan branch or tag filtering dan code path filtering. Setelah selesai, klik Add.
Setelah Anda mengaktifkan pemicu, Flow secara otomatis mendaftarkan webhook pada halaman pengaturan Webhooks repositori kode Alibaba Cloud DevOps Codeup Anda. Webhook tersebut mencakup push events, tag push events, dan merge request events.
Sumber kode lainnya
-
Pada halaman edit pipeline, klik Edit Code Source. Aktifkan Code Source Trigger, lalu salin URL webhook.
Pada bagian Triggering events, pilih code commit, lalu tambahkan URL webhook yang telah disalin ke pengaturan pemicu webhook repositori kode yang sesuai.
-
Tambahkan URL webhook yang telah disalin ke pengaturan repositori kode yang sesuai. Alibaba Cloud DevOps mendukung pemicu sumber kode untuk repositori GitLab, GitHub, Gitee, dan General Git. Metode konfigurasi berbeda-beda tergantung jenis repositori.
GitLab
Buka repositori kode GitLab Anda dan navigasikan ke . Tempel URL webhook yang disalin dari pipeline ke bidang URL.
Pada bagian Trigger, pilih Push events.
GitHub
Buka repositori kode GitHub Anda, navigasikan ke , lalu klik Add Webhook. Tempel URL webhook yang disalin dari pipeline Flow ke bidang Payload URL. Untuk Content Type, pilih application/json.
Untuk pemicu, pertahankan opsi default: Just the push event..
Gitee
Buka repositori kode Gitee Anda dan navigasikan ke . Tempel URL webhook yang disalin dari pipeline Flow ke bidang URL.
General Git
Menggunakan GitLab sebagai contoh, buka repositori kode GitLab Anda dan navigasikan ke . Tempel URL webhook yang disalin dari pipeline ke bidang URL.
SVN
-
Pada halaman edit pipeline, aktifkan pemicu sumber kode dan salin URL webhook.
Untuk peristiwa pemicu, pilih code commit. URL webhook adalah
http://flow-openapi.aliyun.com/scm. -
Pada server SVN, navigasikan ke direktori
hooksrepositori Anda. Temukan templat skrip hook. Setiap templat sesuai dengan satu peristiwa. Untuk menggunakan templat, hapus akhiran.tmpl.14:32 post-commit.tmpl 14:32 post-lock.tmpl 14:32 post-revprop-change.tmpl 14:32 post-unlock.tmpl 14:32 pre-commit.tmpl 14:32 pre-lock.tmpl 14:32 pre-revprop-change.tmpl 14:32 pre-unlock.tmpl 14:32 start-commit.tmpl -
Ambil
post-commitsebagai contoh. Filepost-commitadalah skrip shell. SVN menjalankan skrip ini setelah perubahan terdeteksi, seperti komit kode, pembuatan branch, atau pembuatan tag. Skrip contoh berikut menunjukkan cara memicu jalannya pipeline Flow saat terjadi komit kode:#!/bin/sh # Jalur repositori dan nomor revisi komit diteruskan ke skrip sebagai argumen. REPOS="$1" REV="$2" # Gunakan svnlook untuk menemukan direktori yang berubah dalam komit ini. CHANGED_DIRS=$(svnlook dirs-changed -r "$REV" "$REPOS") # Ambil jalur direktori yang pertama kali berubah, biasanya direktori tingkat atas. FIRST_CHANGED_PATH=$(echo "$CHANGED_DIRS" | head -n 1) # Asumsikan struktur branch mengikuti format standar (branches/nama-branch). Anda dapat mengurai nama branch dari output. BRANCH_NAME=$(echo "$FIRST_CHANGED_PATH" | sed 's#.*/$branches/.*/$$\1#') # Buat perintah curl untuk mengirim permintaan ke URL webhook yang disediakan oleh pipeline. # Ganti URL webhook dengan yang berasal dari pipeline Anda, dan format data permintaan seperti pada contoh. curl --location --request POST 'http://flow-openapi.aliyun.com/scm/webhook/MwfQPTyf4nif2UdWBooR' \ --header 'Content-Type: application/json' \ --data-raw "{ \"ref\": \"refs/heads/$BRANCH_NAME\", \"repository\": { \"clone_url\": \"svn://8.142.XX.XXXcom/svn/repos/demo\" } }"
-
Peristiwa pemicu
Gunakan Peristiwa pemicu untuk menyaring peristiwa webhook berdasarkan sumber kode. Tabel berikut mencantumkan peristiwa yang didukung untuk setiap jenis sumber kode.
|
Alibaba Cloud Code |
Alibaba Cloud DevOps Codeup |
General Git |
GitHub |
GitLab |
Coding |
Bitbucket |
Self-managed GitLab |
SVN |
|
|
Code commit |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
✘ |
✓ |
✓ |
|
Tag creation |
✓ |
✓ |
✘ |
✘ |
✓ |
✘ |
✘ |
✓ |
✘ |
|
Merge request created/updated |
✘ |
✓ |
✘ |
✘ |
✘ |
✘ |
✘ |
✘ |
✘ |
|
Merge request completed |
✘ |
✓ |
✘ |
✘ |
✓ |
✘ |
✘ |
✓ |
✘ |
Code commit: Dipicu saat Anda mendorong branch lokal ke branch remote atau mengedit file melalui antarmuka web platform kode Anda (misalnya, mendorong master lokal ke origin/master). Flow mencocokkan branch tujuan dengan kondisi filter dan, jika sesuai, memicu pipeline menggunakan branch tersebut.
Tag creation: Dipicu saat Anda mendorong tag lokal ke server atau membuat tag melalui antarmuka web platform kode Anda (misalnya, mendorong tag lokal release/0.0.1 ke server). Flow mencocokkan nama tag dengan kondisi filter dan, jika sesuai, memicu pipeline menggunakan tag tersebut sebagai versi kode.
Merge request created/updated: Dipicu saat Anda membuat atau memperbarui permintaan merge melalui antarmuka web platform kode Anda. Hanya Alibaba Cloud DevOps Codeup yang mendukung peristiwa ini. Misalnya, jika Anda membuat permintaan merge dari branch remote dev (sumber) ke master (tujuan), Flow mencocokkan branch tujuan dengan kondisi filter dan, jika sesuai, memicu pipeline menggunakan branch sumber.
Merge request completed: Mirip dengan peristiwa merge request created/updated, kecuali Flow menggunakan branch tujuan untuk menjalankan pipeline.
Kondisi penyaringan
Penyaringan branch atau tag
Kondisi filter mendukung ekspresi reguler. Masukkan branch tertentu seperti master atau dev, atau gunakan sintaks ekspresi reguler gaya Java. Contohnya:
-
Untuk mencocokkan beberapa branch, seperti
masterdandev, masukkanmaster|dev. -
Untuk mencocokkan branch yang diawali dengan
feature, masukkan^feature.*.
Penyaringan jalur kode
Penyaringan jalur kode memungkinkan Anda menyaring peristiwa pemicu berdasarkan jalur file yang dimodifikasi. Fitur ini hanya mendukung peristiwa Push dari sumber Alibaba Cloud DevOps Codeup. Flow hanya memicu pipeline ketika perubahan kode sesuai dengan aturan filter. Kondisi filter mendukung ekspresi reguler. Misalnya, auth-srv/.* hanya memicu pipeline saat kode dalam direktori auth-srv diperbarui.