Bagikan melalui


Menjalankan dan membangun angka

Layanan Azure DevOps | Azure DevOps Server 2022 - Azure DevOps Server 2019

Artikel ini menjelaskan bagaimana Azure Pipelines membangun angka dan nomor eksekusi dibuat, dan bagaimana Anda dapat menyesuaikannya di alur Anda.

Nomor eksekusi digunakan untuk mengidentifikasi eksekusi alur atau build tertentu. Nomor build identik dengan nomor eksekusi.

Jika Anda tidak menentukan nama build di alur YAML, atau Anda membiarkan bidang Nama kosong di alur Klasik, eksekusi Anda mendapatkan bilangan bulat unik sebagai namanya. Anda dapat memberi eksekusi nama yang lebih berguna yang bermakna bagi tim Anda. Anda dapat menggunakan kombinasi token, variabel, dan karakter garis bawah dalam nama build.

Dalam alur YAML, properti nama build dipanggil name dan harus berada di tingkat akar alur. Item yang ditentukan pada tingkat akar file YAML adalah properti alur .

Catatan

Properti name tidak berfungsi dalam file templat.

Contoh kode berikut menghasilkan nomor build yang disesuaikan seperti project_def_master_20240828.1.

name: $(TeamProject)_$(Build.DefinitionName)_$(SourceBranchName)_$(Date:yyyyMMdd).$(Rev:r)

steps:
  - script: echo '$(Build.BuildNumber)'

Nomor eksekusi

Nilai default untuk nomor eksekusi di Azure Pipelines adalah $(Date:yyyyMMdd).$(Rev:r). $(Rev:r) adalah format variabel khusus yang hanya berfungsi di bidang nomor build. Saat build selesai, jika tidak ada yang lain dalam nomor build yang berubah, Rev nilai bilangan bulat akan meningkat satu per satu.

$(Rev:r) mengatur ulang ke 1 ketika bagian lain dari nomor build berubah. Misalnya, jika Anda mengonfigurasi format nomor build sebagai $(Build.DefinitionName)_$(Date:yyyyMMdd).$(Rev:r), nomor build diatur ulang saat tanggal berubah.

Jika nomor build sebelumnya adalah MyBuild_20230621.1, nomor build berikutnya hari itu adalah MyBuild_20230621.2. Nomor build pertama keesokan harinya adalah MyBuild_20230622.1.

$(Rev:r) juga mengatur ulang ke 1 jika Anda mengubah nomor build untuk menunjukkan perubahan versi. Misalnya, jika format build Anda adalah 1.0.$(Rev:r) dan nomor build terakhir Anda adalah 1.0.3, jika Anda mengubah nomor build menjadi 1.1.$(Rev:r), nomor build berikutnya adalah 1.1.1.

Contoh

Pertimbangkan data berikut untuk eksekusi build:

  • Nama proyek: Fabrikam
  • Nama alur: CIBuild
  • Cabang: utama
  • ID Build/ID Eksekusi: 752
  • Tanggal: 6 Mei 2024
  • Waktu: 21.07.03
  • Satu eksekusi selesai sebelumnya hari ini.

Jika Anda menentukan format nomor build berikut, eksekusi kedua pada 6 Mei 2024 diberi nama Fabrikam_CIBuild_main_20240506.2.

$(TeamProject)_$(Build.DefinitionName)_$(SourceBranchName)_$(Date:yyyyMMdd).$(Rev:.r)

Token

Tabel berikut ini memperlihatkan bagaimana setiap token diselesaikan, berdasarkan contoh sebelumnya. Anda hanya dapat menggunakan token ini untuk menentukan nomor eksekusi. Mereka tidak bekerja di tempat lain dalam alur.

Token Contoh nilai Catatan
$(Build.DefinitionName) CIBuild Nama alur tidak boleh berisi karakter spasi kosong atau tidak valid.
$(Build.BuildId) 752 $(Build.BuildId) adalah ID internal yang tidak dapat diubah, juga disebut RUN ID, yang unik di seluruh organisasi Azure DevOps.
$(DayOfMonth) 6
$(DayOfYear) 126
$(Hours) 21
$(Minutes) 7
$(Month) 5
$(Rev:r) 2 Eksekusi harian ketiga adalah 3, dan sebagainya. Gunakan $(Rev:r) untuk memastikan bahwa setiap build yang selesai memiliki nama yang unik.
$(Date:yyyyMMdd) 20240506 Anda dapat menentukan format tanggal lainnya seperti $(Date:MMddyy).
$(Seconds) 3
$(SourceBranchName) utama
$(TeamProject) Fabrikam
$(Year:yy) 24
$(Year:yyyy) 2024

Penting

Jika Anda ingin menampilkan awalan nol dalam nomor eksekusi, Anda dapat menambahkan lebih banyak r karakter ke Rev token. Misalnya, tentukan $(Rev:rr) apakah Anda ingin Rev angka dimulai dengan 01, 02, dan sebagainya.

Jika Anda menggunakan zero-padded Rev sebagai bagian dari skema penomoran versi, ketahuilah bahwa beberapa tugas alur atau alat populer, seperti paket NuGet, hapus nol di depannya. Perilaku ini menyebabkan ketidakcocokan nomor versi dalam artefak yang diproduksi.

Expressions

Jika Anda menggunakan ekspresi untuk mengatur nomor build, Anda tidak dapat menggunakan beberapa token, karena nilainya tidak diatur pada ekspresi waktu dievaluasi. Token ini termasuk $(Build.BuildId), $(Build.BuildURL), dan $(Build.BuildNumber).

Variabel

Anda dapat menggunakan variabel yang ditentukan pengguna dan yang telah ditentukan sebelumnya dalam nomor build Anda. Misalnya, jika Anda menentukan My.Variable, Anda dapat menentukan format angka berikut:

$(Build.DefinitionName)_$(Build.DefinitionVersion)_$(Build.RequestedFor)_$(Build.BuildId)_$(My.Variable)

Dalam contoh sebelumnya, empat variabel pertama telah ditentukan sebelumnya. Untuk informasi tentang cara menentukan variabel pengguna, lihat Mengatur variabel dalam alur.

FAQ

Seberapa besar nomor eksekusi, dan karakter apa yang dapat saya gunakan?

Nomor eksekusi bisa hingga 255 karakter. Anda tidak dapat menggunakan karakter ", , /, :, ><, ', |, ?, @, atau *, dan Anda tidak dapat mengakhiri angka dengan ..

Zona waktu apa nilai waktu nomor build diekspresikan?

Zona waktu adalah UTC.

Zona waktu sama dengan zona waktu sistem operasi komputer yang menjalankan server tingkat aplikasi Anda.

Bagaimana cara mengatur nomor build secara dinamis dengan kondisi?

Anda dapat menggunakan variabel sebagai bagian dari nomor eksekusi Anda. Dalam contoh berikut, variabel why digunakan sebagai bagian dari nomor eksekusi, dan nilainya berubah tergantung pada Build.Reason.

variables:
  - name: why
    ${{ if eq(variables['Build.Reason'], 'PullRequest') }}:
      value: pr
    ${{ elseif eq(variables['Build.Reason'], 'Manual' ) }}:
      value: manual
    ${{ elseif eq(variables['Build.Reason'], 'IndividualCI' ) }}:
      value: indivci
    ${{ else }}:
      value: other

name: $(TeamProject)_$(SourceBranchName)_$(why)_$(Date:yyyyMMdd).$(Rev:.r)

pool:
  vmImage: 'ubuntu-latest'

steps:
- script: echo '$(Build.BuildNumber)'

Bagaimana cara mereferensikan variabel nomor eksekusi dalam skrip?

Anda dapat menentukan variabel baru yang menyertakan nomor eksekusi, atau memanggil nomor eksekusi secara langsung. Dalam contoh berikut, $(MyRunNumber) adalah variabel baru yang menyertakan nomor eksekusi. Anda dapat memanggil variabel nomor eksekusi dengan menggunakan MyRunNumber atau $(Build.BuildNumber).

# Set MyRunNumber
variables: 
  MyRunNumber: '1.0.0-CI+$(Build.BuildNumber)'

steps:
- script: echo $(MyRunNumber)
- script: echo $(Build.BuildNumber)

Tentukan variabel