İşlem hattınız için kod kaynağı tetikleyicilerini yapılandırın ve işlem hatlarının otomatik olarak ne zaman başlayacağını kontrol etmek üzere tetikleme olaylarını ve filtreleme koşullarını belirtin.
Kod kaynağı tetikleyicisi yapılandırma
Kod kaynağı tetikleyicisini etkinleştirdikten ve bir Webhook yapılandırdıktan sonra, belirtilen depoya ve dala kod gönderildiğinde Flow işlem hattını otomatik olarak çalıştırır.
Alibaba Cloud DevOps Codeup
Alibaba Cloud DevOps'ta işlem hattınıza gidin, Edit Pipeline seçeneğine tıklayın ve ardından Edit Code Source seçeneğine tıklayın.
Enable Code Source Trigger seçeneğine tıklayın. Flow, Webhook URL'sini ilgili Alibaba Cloud DevOps Codeup kod deposuna otomatik olarak ekler.
Tetikleyiciyi etkinleştirdikten sonra, Triggering events bölümünde code commit, tag creation, merge request completed ve merge request created/updated gibi istediğiniz olay türlerini seçin. Ayrıca branch or tag filtering ve code path filtering seçeneklerini de etkinleştirebilirsiniz. İşleminiz bittiğinde Add seçeneğine tıklayın.
Tetikleyiciyi etkinleştirdiğinizde, Flow Alibaba Cloud DevOps Codeup kod deponuzun Webhooks ayarları sayfasında otomatik olarak bir Webhook kaydeder. Bu Webhook; push events, tag push events ve merge request events kapsamını içerir.
Diğer kod kaynakları
-
İşlem hattının düzenleme sayfasında Edit Code Source seçeneğine tıklayın. Code Source Trigger özelliğini etkinleştirin ve Webhook URL'sini kopyalayın.
Triggering events bölümünde code commit seçeneğini belirleyin ve kopyaladığınız Webhook URL'sini ilgili kod deposunun Webhook tetikleyici ayarlarına ekleyin.
-
Kopyalanan Webhook URL'sini ilgili kod deposunun ayarlarına ekleyin. Alibaba Cloud DevOps; GitLab, GitHub, Gitee ve General Git depoları için kod kaynağı tetikleyicilerini destekler. Yapılandırma yöntemleri depo türüne göre değişiklik gösterir.
GitLab
GitLab kod deponuza gidin ve şuraya gidin . İşlem hattından kopyaladığınız Webhook URL'sini URL alanına yapıştırın.
Trigger bölümünde Push events seçeneğini belirleyin.
GitHub
GitHub kod deponuza gidin, şuraya gidin ve Add Webhook seçeneğine tıklayın. Flow işlem hattından kopyaladığınız Webhook URL'sini Payload URL alanına yapıştırın. Content Type için application/json seçeneğini belirleyin.
Tetikleyici için varsayılan seçeneği koruyun: Just the push event..
Gitee
Gitee kod deponuza gidin ve şuraya gidin . Flow işlem hattından kopyaladığınız Webhook URL'sini URL alanına yapıştırın.
General Git
GitLab'ı örnek alarak GitLab kod deponuza gidin ve şuraya gidin . İşlem hattından kopyaladığınız Webhook URL'sini URL alanına yapıştırın.
SVN
-
İşlem hattı düzenleme sayfasında kod kaynağı tetikleyicisini etkinleştirin ve Webhook URL'sini kopyalayın.
Tetikleme olayı olarak code commit seçeneğini belirleyin. Webhook URL'si şu şekildedir:
http://flow-openapi.alibabacloud.com/scm. -
SVN sunucusunda deponuzun
hooksdizinine gidin. Hook betiği şablonlarını bulun. Her şablon bir olaya karşılık gelir. Bir şablonu kullanmak için.tmpluzantısını kaldırın.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 -
Örnek olarak
post-commitdosyasını ele alalım.post-commitdosyası bir shell betiğidir. SVN, kod gönderimi, dal oluşturma veya etiket oluşturma gibi bir değişiklik algılandığında bu betiği yürütür. Aşağıdaki örnek betik, kod gönderimi üzerine bir Flow işlem hattı çalışmasını nasıl tetikleyeceğinizi göstermektedir:#!/bin/sh # The repository path and the commit revision number are passed to the script as arguments. REPOS="$1" REV="$2" # Use svnlook to find the directories changed in this commit. CHANGED_DIRS=$(svnlook dirs-changed -r "$REV" "$REPOS") # Get the first changed directory path, which is usually the top-level directory. FIRST_CHANGED_PATH=$(echo "$CHANGED_DIRS" | head -n 1) # Assume the branch structure follows the standard format (branches/branch-name). You can parse the branch name from the output. BRANCH_NAME=$(echo "$FIRST_CHANGED_PATH" | sed 's#.*/$branches/.*/$$\1#') # Construct a curl command to send a request to the webhook URL provided by the pipeline. # Replace the webhook URL with the one from your pipeline, and format the request data as shown in the example. curl --location --request POST 'http://flow-openapi.alibabacloud.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\" } }"
-
Tetikleme olayları
Webhook olaylarını kod kaynağına göre filtrelemek için Triggering events kullanın. Aşağıdaki tabloda her kod kaynağı türü için desteklenen olaylar listelenmiştir.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Code commit: Yerel bir dalı uzak dala gönderdiğinizde veya kod platformunuzun web arayüzünde dosyaları düzenlediğinizde tetiklenir (örneğin, yerel master dalını origin/master dalına gönderme). Flow, hedef dalı filtre koşullarıyla eşleştirir ve eşleşme durumunda işlem hattını bu dalı kullanarak tetikler.
Tag creation: Yerel bir etiketi sunucuya gönderdiğinizde veya kod platformunuzun web arayüzünde bir etiket oluşturduğunuzda tetiklenir (örneğin, yerel release/0.0.1 etiketini sunucuya gönderme). Flow, etiket adını filtre koşullarıyla eşleştirir ve eşleşme durumunda işlem hattını bu etiketi kod sürümü olarak kullanarak tetikler.
Merge request created/updated: Kod platformunuzun web arayüzünde bir birleştirme isteği oluşturduğunuzda veya güncellediğinizde tetiklenir. Bu olay yalnızca Alibaba Cloud DevOps Codeup tarafından desteklenir. Örneğin, uzak dev dalından (kaynak) master dalına (hedef) bir birleştirme isteği oluşturursanız, Flow hedef dalı filtre koşullarıyla eşleştirir ve eşleşme durumunda işlem hattını kaynak dalı kullanarak tetikler.
Merge request completed: merge request created/updated olayına benzerdir, ancak Flow çalıştırma için hedef dalı kullanır.
Filtreleme koşulları
Dal veya etiket filtreleme
Filtre koşulları düzenli ifadeleri destekler. master veya dev gibi belirli bir dal girin veya Java tarzı düzenli ifade sözdizimini kullanın. Örneğin:
mastervedevgibi birden çok dalı eşleştirmek içinmaster|devgirin.featureile başlayan dalları eşleştirmek için ^feature.* girin.
Kod yolu filtreleme
Kod yolu filtreleme, değiştirilen dosyaların yollarına göre tetikleme olaylarını filtrelemenize olanak tanır. Bu özellik yalnızca Alibaba Cloud DevOps Codeup kaynaklarından gelen Push olaylarını destekler. Flow, kod değişiklikleri filtre kurallarıyla eşleştiğinde işlem hattını tetikler. Filtre koşulları düzenli ifadeleri destekler. Örneğin, auth-srv/.* ifadesi yalnızca auth-srv dizinindeki kod güncellendiğinde işlem hattını tetikler.