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_202408281.
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)