definisi resources.pipelines.pipeline

Jika Anda memiliki Azure Pipeline yang menghasilkan artefak, alur Anda dapat menggunakan artefak dengan menentukan sumber daya alur. Pada Azure DevOps Server 2020 dan yang lebih tinggi, Anda juga dapat mengaktifkan pemicu penyelesaian alur menggunakan sumber daya alur.

pipelines:
- pipeline: string # Required as first property. ID of the pipeline resource.
  project: string # Project for the source; defaults to current project.
  source: string # Name of the pipeline that produces the artifact.
  version: string # The pipeline run number to pick the artifact, defaults to latest pipeline successful across all stages; used only for manual or scheduled triggers.
  branch: string # Branch to pick the artifact. Optional; defaults to all branches, used only for manual or scheduled triggers.
  tags: [ string ] # List of tags required on the pipeline to pickup default artifacts. Optional; used only for manual or scheduled triggers.
  trigger:  # Specify none to disable, true to include all branches, or use the full syntax as described in the following examples.
    enabled: boolean # Whether the trigger is enabled; defaults to true.
    branches: branches # Branches to include or exclude for triggering a run.
    stages: [ string ] # List of stages that when matched will trigger the pipeline.
    tags: [ string ] # List of tags that when matched will trigger the pipeline.
pipelines:
- pipeline: string # Required as first property. ID of the pipeline resource.
  project: string # Project for the source; defaults to current project.
  source: string # Name of the pipeline that produces the artifact.
  version: string # The pipeline run number to pick the artifact, defaults to latest pipeline successful across all stages; used only for manual or scheduled triggers.
  branch: string # Branch to pick the artifact. Optional; defaults to all branches, used only for manual or scheduled triggers.
  tags: [ string ] # List of tags required on the pipeline to pickup default artifacts. Optional; used only for manual or scheduled triggers.
  trigger:  # Specify none to disable, true to include all branches, or use the full syntax as described in the following examples.
    enabled: boolean # Whether the trigger is enabled; defaults to true.
    branches: branches # Branches to include or exclude for triggering a run.
pipelines:
- pipeline: string # Required as first property. ID of the pipeline resource.
  project: string # Project for the source; defaults to current project.
  source: string # Name of the pipeline that produces the artifact.
  version: string # The pipeline run number to pick the artifact, defaults to latest pipeline successful across all stages; used only for manual or scheduled triggers.
  branch: string # Branch to pick the artifact. Optional; defaults to all branches, used only for manual or scheduled triggers.

Definisi yang mereferensikan definisi ini: resources.pipelines

Properti

pipeline String. Diperlukan sebagai properti pertama.
ID sumber daya alur. Nilai yang dapat diterima: [-_A-Za-z0-9]*.

project String.
Proyek untuk sumber; default ke proyek saat ini.

source String.
Nama alur yang menghasilkan artefak. Jika alur terkandung dalam folder, sertakan nama folder, termasuk leading \, misalnya \security pipelines\security-lib-ci. Properti ini tidak peka huruf besar/kecil dan tidak memerlukan tanda kutip jika nama menyertakan spasi. Jalur folder harus ditentukan jika ada beberapa alur dengan nama yang sama.

version String.
Nomor eksekusi alur untuk memilih artefak, default ke alur terbaru berhasil di semua tahap; hanya digunakan untuk pemicu manual atau terjadwal.

branch String.
Cabang untuk memilih artefak. Opsional; default ke semua cabang, hanya digunakan untuk pemicu manual atau terjadwal.

tags daftar string.
Daftar tag yang diperlukan pada alur untuk mengambil artefak default. Opsional; hanya digunakan untuk pemicu manual atau terjadwal.

triggerresources.pipelines.pipeline.trigger.
Tentukan tidak ada yang akan dinonaktifkan, benar untuk menyertakan semua cabang, atau gunakan sintaks lengkap seperti yang dijelaskan dalam contoh berikut.

Keterangan

Catatan

pipeline: menentukan nama sumber daya alur. Gunakan label yang ditentukan di sini saat merujuk ke sumber daya alur dari bagian lain dari alur, seperti saat menggunakan variabel sumber daya alur atau mengunduh artefak.

Untuk informasi selengkapnya tentang stages dan tags di pemicu sumber daya alur, lihat pemicu penyelesaian alur.

Untuk informasi selengkapnya tentang pemicu sumber daya alur, lihat pemicu penyelesaian alur.

Sintaks pemicu sumber daya alur

Catatan

Pemicu penyelesaian alur menggunakan cabang Default untuk pengaturan build manual dan terjadwal untuk menentukan versi cabang mana dari filter cabang alur YAML yang akan dievaluasi saat menentukan apakah akan menjalankan alur sebagai hasil dari penyelesaian alur lain. Secara default pengaturan ini menunjuk ke cabang default repositori. Untuk informasi selengkapnya, lihat Pemicu penyelesaian alur - pertimbangan cabang.

Ada beberapa cara untuk menentukan pemicu dalam sumber daya alur. Untuk memicu eksekusi saat eksekusi alur yang dirujuk selesai, gunakan trigger: true.

resources:
  pipelines:
  - pipeline: source-pipeline
    source: TriggeringPipeline
    trigger: true

Untuk menonaktifkan pemicu sumber daya alur, tentukan nilai none.

resources:
  pipelines:
  - pipeline: source-pipeline
    source: TriggeringPipeline
    trigger: none

Untuk mengonfigurasi filter cabang, gunakan sintaks penuh. Filter cabang dapat ditentukan sebagai daftar cabang yang akan disertakan, atau sebagai daftar cabang untuk disertakan dikombinasikan dengan daftar cabang yang akan dikecualikan.

Untuk menentukan daftar cabang yang akan disertakan dan dikecualikan, gunakan sintaks berikut trigger .

resources:
  pipelines:
  - pipeline: source-pipeline
    source: TriggeringPipeline
    trigger:
      branches:
        include:
        - main
        - develop
        - features/*
        exclude:
        - features/experimental/*

Untuk menentukan daftar cabang yang akan disertakan, tanpa pengecualian, hilangkan exclude nilai, atau gunakan sintaks berikut untuk menentukan daftar cabang yang akan disertakan secara langsung mengikuti branches.

resources:
  pipelines:
  - pipeline: source-pipeline
    source: TriggeringPipeline
    trigger:
      branches:
      - main
      - develop

Untuk memfilter menurut tahapan atau tag, gunakan sintaks berikut trigger .

resources:
  pipelines:
  - pipeline: source-pipeline
    source: TriggeringPipeline
    trigger:
      branches: # Branches to include
      tags: # List of tags that when matched will trigger the pipeline. 
      - release25
      stages: # List of stages that when complete will trigger the pipeline. 
      - build

Untuk informasi selengkapnya, lihat Pemicu penyelesaian alur.

Penting

Saat Anda menentukan pemicu sumber daya, jika sumber daya alurnya berasal dari repositori yang sama dengan alur saat ini, pemicu mengikuti cabang yang sama dan berkomitmen di mana peristiwa dinaikkan. Tetapi jika sumber daya alur berasal dari repositori yang berbeda, alur saat ini dipicu pada cabang yang ditentukan oleh cabang Default untuk pengaturan build manual dan terjadwal . Untuk informasi selengkapnya, lihat Pertimbangan cabang untuk pemicu penyelesaian alur.

Metadata sumber daya alur sebagai variabel yang telah ditentukan sebelumnya

Dalam setiap eksekusi, metadata untuk sumber daya alur tersedia untuk semua pekerjaan sebagai variabel yang telah ditentukan sebelumnya berikut. Variabel ini tersedia untuk alur Anda saat runtime, dan oleh karena itu tidak dapat digunakan dalam ekspresi templat, yang dievaluasi pada waktu kompilasi alur.

resources.pipeline.<Alias>.projectName
resources.pipeline.<Alias>.projectID
resources.pipeline.<Alias>.pipelineName
resources.pipeline.<Alias>.pipelineID
resources.pipeline.<Alias>.runName
resources.pipeline.<Alias>.runID
resources.pipeline.<Alias>.runURI
resources.pipeline.<Alias>.sourceBranch
resources.pipeline.<Alias>.sourceCommit
resources.pipeline.<Alias>.sourceProvider
resources.pipeline.<Alias>.requestedFor
resources.pipeline.<Alias>.requestedForID

Penting

projectName tidak ada dalam variabel jika sumber daya alur tidak memiliki nilai yang project ditentukan. Properti project bersifat opsional untuk sumber daya alur yang mereferensikan alur dalam proyek yang sama, tetapi dapat ditentukan jika diinginkan.

Ganti <Alias> dengan ID sumber daya alur. Untuk sumber daya alur berikut, variabel yang akan diakses runID adalah resources.pipeline.source-pipeline.runID.

resources:
  pipelines:
  - pipeline: source-pipeline
    source: TriggeringPipeline

Ketika alur dipicu oleh salah satu sumber daya alurnya, variabel berikut diatur selain variabel dalam daftar sebelumnya.

Variabel Nilai
Build.Reason ResourceTrigger
Resources.TriggeringAlias Nama sumber daya alur, seperti source-pipeline dari contoh sebelumnya.
Resource.TriggeringCategory pipeline

Contoh berikut memiliki dua sumber daya alur.

resources:
 pipelines:
   - pipeline: source-pipeline
     source: PipelineTriggerSource
     project: FabrikamFiber
     trigger: true
   - pipeline: other-project-pipeline
     source: PipelineTriggerFromOtherProject
     project: FabrikamRepo
     trigger: true

trigger: none # Only trigger with pipeline resource trigger

pool:
  vmImage: ubuntu-latest

- bash: echo $(resources.pipeline.source-pipeline.projectName)
- bash: printenv | sort

Pai alur ini dijalankan, tugas pertama bash menghasilkan projectName dari sumber daya alur bernama source-pipeline, yaitu FabrikamFiber.

Tugas kedua bash menghasilkan semua variabel lingkungan yang tersedia untuk tugas, termasuk variabel sumber daya alur yang dijelaskan di bagian ini. Mencantumkan variabel lingkungan biasanya tidak dilakukan dalam alur produksi, tetapi dapat berguna untuk pemecahan masalah. Dalam contoh ini ada dua sumber daya alur, dan output berisi dua baris berikut.

RESOURCES_PIPELINE_OTHER-PROJECT-PIPELINE_PROJECTNAME=FabrikamRepo
RESOURCES_PIPELINE_SOURCE-PIPELINE_PROJECTNAME=FabrikamFiber

Catatan

Variabel yang ditentukan sistem dan pengguna disuntikkan sebagai variabel lingkungan untuk platform Anda. Ketika variabel dikonversi menjadi variabel lingkungan, nama variabel menjadi huruf besar, dan titik berubah menjadi garis bawah. Misalnya, nama any.variable variabel menjadi ANY_VARIABLE.

Untuk informasi selengkapnya tentang menggunakan variabel dan sintaks variabel, lihat Memahami sintaks variabel, Menentukan kondisi, dan Ekspresi.

Anda dapat menggunakan artefak dari sumber daya alur dengan menggunakan download tugas. Lihat kata kunci steps.download .

Contoh

resources:
  pipelines:
  - pipeline: MyAppA
    source: MyCIPipelineA
  - pipeline: MyAppB
    source: MyCIPipelineB
    trigger: true
  - pipeline: MyAppC
    project:  DevOpsProject
    source: MyCIPipelineC
    branch: releases/M159
    version: 20190718.2
    trigger:
      branches:
        include:
        - main
        - releases/*
        exclude:
        - users/*

Lihat juga