Menggunakan variabel dalam alur rilis Klasik
Layanan Azure DevOps | Azure DevOps Server 2022 - Azure DevOps Server 2019
Menggunakan variabel dalam alur rilis Klasik adalah cara mudah untuk bertukar dan mengangkut data ke seluruh alur Anda. Setiap variabel disimpan sebagai string dan nilainya dapat berubah di antara eksekusi alur.
Tidak seperti parameter Runtime, yang hanya tersedia pada waktu penguraian templat, variabel dalam alur rilis Klasik dapat diakses di seluruh proses penyebaran
Saat menyiapkan tugas untuk menyebarkan aplikasi Anda di setiap tahap alur rilis Klasik, variabel dapat membantu Anda:
Menyederhanakan penyesuaian: Tentukan alur penyebaran generik sekali dan mudah menyesuaikannya untuk tahap yang berbeda. Misalnya, gunakan variabel untuk mewakili string koneksi penyebaran web, menyesuaikan nilainya sesuai kebutuhan untuk setiap tahap. Ini dikenal sebagai variabel kustom.
Memanfaatkan informasi kontekstual: Detail akses tentang konteks rilis, seperti tahap, artefak, atau agen yang menjalankan penyebaran. Misalnya, skrip Anda mungkin memerlukan lokasi build untuk diunduh, atau direktori kerja agen untuk membuat file sementara. Ini disebut sebagai variabel default.
Catatan
Untuk alur YAML, lihat variabel yang ditentukan pengguna dan variabel yang telah ditentukan sebelumnya untuk detail selengkapnya.
Variabel default
Variabel default memberikan informasi penting tentang konteks eksekusi untuk tugas dan skrip anda yang sedang berjalan. Variabel ini memungkinkan Anda mengakses detail tentang sistem, rilis, tahap, atau agen tempat mereka berjalan.
Dengan pengecualian System.Debug, variabel default bersifat baca-saja, dengan nilainya secara otomatis diatur oleh sistem.
Beberapa variabel paling signifikan dijelaskan dalam tabel berikut. Untuk melihat daftar lengkap, lihat Menampilkan nilai saat ini dari semua variabel.
Variabel sistem
Nama variabel | Deskripsi |
---|---|
System.TeamFoundationServerUri | URL koneksi layanan di Azure Pipelines. Gunakan ini dari skrip atau tugas Anda untuk memanggil REST API Azure Pipelines. Contoh: https://fabrikam.vsrm.visualstudio.com/ |
System.TeamFoundationCollectionUri | URL koleksi Team Foundation atau Azure Pipelines. Gunakan ini dari skrip atau tugas Anda untuk memanggil REST API di layanan lain seperti kontrol Build dan Versi. Contoh: https://dev.azure.com/fabrikam/ |
System.CollectionId | ID koleksi tempat build atau rilis ini berada. Contoh: 6c6f3423-1c84-4625-995a-f7f143a1e43d |
System.DefinitionId | ID alur rilis tempat rilis saat ini berada. Contoh: 1 |
System.TeamProject | Nama proyek tempat build atau rilis ini berada. Contoh: Fabrikam |
System.TeamProjectId | ID proyek tempat build atau rilis ini berada. Contoh: 79f5c12e-3337-4151-be41-a268d2c73344 |
System.ArtifactsDirectory | Direktori tempat artefak diunduh selama penyebaran rilis. Direktori dibersihkan sebelum setiap penyebaran jika memerlukan artefak untuk diunduh ke agen. Sama seperti Agent.ReleaseDirectory dan System.DefaultWorkingDirectory. Contoh: C:\agent\_work\r1\a |
System.DefaultWorkingDirectory | Direktori tempat artefak diunduh selama penyebaran rilis. Direktori dibersihkan sebelum setiap penyebaran jika memerlukan artefak untuk diunduh ke agen. Sama seperti Agent.ReleaseDirectory dan System.ArtifactsDirectory. Contoh: C:\agent\_work\r1\a |
System.WorkFolder | Direktori kerja untuk agen ini, tempat subfolder dibuat untuk setiap build atau rilis. Sama seperti Agent.RootDirectory dan Agent.WorkFolder. Contoh: C:\agent\_work |
System.Debug | Ini adalah satu-satunya variabel sistem yang dapat diatur oleh pengguna. Atur ini ke true untuk menjalankan rilis dalam mode debug untuk membantu dalam pencarian kesalahan. Contoh: true |
Variabel rilis
Nama variabel | Deskripsi |
---|---|
Release.AttemptNumber | Frekuensi rilis ini disebarkan dalam tahap ini. Contoh: 1 |
Release.DefinitionEnvironmentId | ID tahap dalam alur rilis yang sesuai. Contoh: 1 |
Release.DefinitionId | ID alur rilis tempat rilis saat ini berada. Contoh: 1 |
Release.DefinitionName | Nama alur rilis tempat rilis saat ini berada. Contoh: fabrikam-cd |
Release.Deployment.RequestedFor | Nama tampilan identitas yang memicu (memulai) penyebaran yang saat ini sedang berlangsung. Contoh: Mateo Escobedo |
Release.Deployment.RequestedForEmail | Alamat email identitas yang memicu (memulai) penyebaran yang saat ini sedang berlangsung. Contoh: mateo@fabrikam.com |
Release.Deployment.RequestedForId | ID identitas yang memicu (memulai) penyebaran yang saat ini sedang berlangsung. Contoh: 2f435d07-769f-4e46-849d-10d1ab9ba6ab |
Release.DeploymentID | ID penyebaran. Unik per pekerjaan. Contoh: 254 |
Release.DeployPhaseID | ID fase tempat penyebaran berjalan. Contoh: 127 |
Release.EnvironmentId | ID instans tahap dalam rilis tempat penyebaran saat ini sedang berlangsung. Contoh: 276 |
Release.EnvironmentName | Nama tahap tempat penyebaran saat ini sedang berlangsung. Contoh: Dev |
Release.EnvironmentUri | URI instans tahap dalam rilis tempat penyebaran saat ini sedang berlangsung. Contoh: vstfs://ReleaseManagement/Environment/276 |
Release.Environments. {stage-name}.status | Status penyebaran tahapan. Contoh: InProgress |
Release.PrimaryArtifactSourceAlias | Alias sumber artefak utama. Contoh: fabrikam\_web |
Release.Reason | Alasan penyebaran. Nilai yang didukung adalah:ContinuousIntegration - rilis dimulai dalam Penyebaran Berkelanjutan setelah build selesai.Manual - rilis dimulai secara manual.None - alasan penyebaran belum ditentukan.Schedule - rilis dimulai dari jadwal. |
Release.ReleaseDescription | Deskripsi teks yang disediakan pada saat rilis. Contoh: Critical security patch |
Release.ReleaseId | Pengidentifikasi rekaman rilis saat ini. Contoh: 118 |
Release.ReleaseName | Nama rilis saat ini. Contoh: Release-47 |
Release.ReleaseUri | URI rilis saat ini. Contoh: vstfs://ReleaseManagement/Release/118 |
Release.ReleaseWebURL | URL untuk rilis ini. Contoh: https://dev.azure.com/fabrikam/f3325c6c/_release?releaseId=392&_a=release-summary |
Release.RequestedFor | Nama tampilan identitas yang memicu rilis. Contoh: Mateo Escobedo |
Release.RequestedForEmail | Alamat email identitas yang memicu rilis. Contoh: mateo@fabrikam.com |
Release.RequestedForId | ID identitas yang memicu rilis. Contoh: 2f435d07-769f-4e46-849d-10d1ab9ba6ab |
Release.SkipArtifactsDownload | Nilai Boolean yang menentukan apakah akan melewati pengunduhan artefak ke agen atau tidak. Contoh: FALSE |
Release.TriggeringArtifact.Alias | Alias artefak yang memicu rilis. Ini kosong ketika rilis dijadwalkan atau dipicu secara manual. Contoh: fabrikam\_app |
Variabel tahap rilis
Nama variabel | Deskripsi |
---|---|
Release.Environments. {nama tahap}. Keadaan | Status penyebaran rilis ini dalam tahap tertentu. Contoh: NotStarted |
Variabel agen
Merilis variabel Artefak
Untuk setiap artefak yang dirujuk dalam rilis, Anda dapat menggunakan variabel artefak berikut. Perhatikan bahwa tidak semua variabel berlaku untuk setiap jenis artefak. Tabel di bawah ini mencantumkan variabel artefak default dan memberikan contoh nilainya berdasarkan jenis artefak. Jika contoh kosong, itu menunjukkan bahwa variabel tidak berlaku untuk jenis artefak tersebut.
{alias}
Ganti tempat penampung dengan nilai yang Anda tentukan untuk alias sumber artefak atau dengan nilai default yang dihasilkan untuk alur rilis.
Nama variabel | Deskripsi |
---|---|
Release.Artifacts. {alias}. DefinitionId | Pengidentifikasi alur atau repositori build. Contoh: Azure Pipelines: 1 GitHub: fabrikam/asp |
Release.Artifacts. {alias}. DefinitionName | Nama alur atau repositori build. Contoh: Azure Pipelines: fabrikam-ci TFVC: $/fabrikam Git: fabrikam GitHub: fabrikam/asp (main) |
Release.Artifacts. {alias}. BuildNumber | Nomor build atau pengidentifikasi penerapan. Contoh: Azure Pipelines: 20170112.1 Jenkins: 20170112.1 TFVC: Changeset 3 Git: 38629c964 GitHub: 38629c964 |
Release.Artifacts. {alias}. BuildId | Pengidentifikasi build. Contoh: Azure Pipelines: 130 Jenkins: 130 GitHub: 38629c964d21fe405ef830b7d0220966b82c9e11 |
Release.Artifacts. {alias}. BuildURI | URL untuk build. Contoh: Azure Pipelines: vstfs://build-release/Build/130 GitHub: https://github.com/fabrikam/asp |
Release.Artifacts. {alias}. SourceBranch | Jalur lengkap dan nama cabang tempat sumber dibangun. Contoh: Azure Pipelines: refs/heads/main |
Release.Artifacts. {alias}. SourceBranchName | Nama hanya cabang tempat sumber dibangun. Contoh: Azure Pipelines: main |
Release.Artifacts. {alias}. SourceVersion | Penerapan yang dibangun. Contoh: Azure Pipelines: bc0044458ba1d9298cdc649cb5dcf013180706f7 |
Release.Artifacts. {alias}. Repositori.Provider | Jenis repositori tempat sumber dibangun. Contoh: Azure Pipelines: Git |
Release.Artifacts. {alias}. RequestedForID | Pengidentifikasi akun yang memicu build. Contoh: Azure Pipelines: 2f435d07-769f-4e46-849d-10d1ab9ba6ab |
Release.Artifacts. {alias}. DimintaUntuk | Nama akun yang meminta build. Contoh: Azure Pipelines: Mateo Escobedo |
Release.Artifacts. {alias}. Jenis | Jenis sumber artefak, seperti Build.Examples Azure Pipelines: Build Jenkins: Jenkins TFVC: TFVC Git: Git GitHub: GitHub |
Release.Artifacts. {alias}. PullRequest.TargetBranch | Jalur lengkap dan nama cabang yang merupakan target permintaan pull. Variabel ini diinisialisasi hanya jika rilis dipicu oleh alur permintaan pull. Contoh: Azure Pipelines: refs/heads/main |
Release.Artifacts. {alias}. PullRequest.TargetBranchName | Nama hanya cabang yang merupakan target permintaan pull. Variabel ini diinisialisasi hanya jika rilis dipicu oleh alur permintaan pull. Contoh: Azure Pipelines: main |
Variabel Artefak Utama
Dalam alur rilis Klasik, jika Anda menggunakan beberapa artefak, Anda dapat menunjuknya sebagai artefak utama. Azure Pipelines kemudian akan mengisi variabel berikut untuk artefak utama yang ditunjuk.
Nama variabel | Seperti |
---|---|
Build.DefinitionId | Release.Artifacts. {Alias artefak utama}. DefinitionId |
Build.DefinitionName | Release.Artifacts. {Alias artefak utama}. DefinitionName |
Build.BuildNumber | Release.Artifacts. {Alias artefak utama}. BuildNumber |
Build.BuildId | Release.Artifacts. {Alias artefak utama}. BuildId |
Build.BuildURI | Release.Artifacts. {Alias artefak utama}. BuildURI |
Build.SourceBranch | Release.Artifacts. {Alias artefak utama}. SourceBranch |
Build.SourceBranchName | Release.Artifacts. {Alias artefak utama}. SourceBranchName |
Build.SourceVersion | Release.Artifacts. {Alias artefak utama}. SourceVersion |
Build.Repository.Provider | Release.Artifacts. {Alias artefak utama}. Repositori.Provider |
Build.RequestedForID | Release.Artifacts. {Alias artefak utama}. RequestedForID |
Build.RequestedFor | Release.Artifacts. {Alias artefak utama}. DimintaUntuk |
Build.Type | Release.Artifacts. {Alias artefak utama}. Jenis |
Build.PullRequest.TargetBranch | Release.Artifacts. {Alias artefak utama}. PullRequest.TargetBranch |
Build.PullRequest.TargetBranchName | Release.Artifacts. {Alias artefak utama}. PullRequest.TargetBranchName |
Menggunakan variabel default
Anda dapat menggunakan variabel default dengan dua cara: sebagai parameter untuk tugas dalam alur rilis atau dalam skrip Anda.
Anda dapat menggunakan variabel default secara langsung sebagai input ke tugas. Misalnya, untuk meneruskan Release.Artifacts.{Artifact alias}.DefinitionName
sebagai argumen ke tugas PowerShell untuk artefak dengan ASPNET4.CI sebagai aliasnya, Anda akan menggunakan $(Release.Artifacts.ASPNET4.CI.DefinitionName)
.
Untuk menggunakan variabel default dalam skrip Anda, Anda harus terlebih dahulu mengganti .
dalam nama variabel default dengan _
. Misalnya, untuk mencetak nilai Release.Artifacts.{Artifact alias}.DefinitionName
artefak dengan ASPNET4.CI sebagai aliasnya dalam skrip PowerShell, gunakan $env:RELEASE_ARTIFACTS_ASPNET4_CI_DEFINITIONNAME
. Perhatikan bahwa alias asli, ASPNET4.CI, diganti dengan ASPNET4_CI.
Variabel kustom
Variabel kustom dapat didefinisikan pada berbagai cakupan.
Grup Variabel: Gunakan grup variabel untuk berbagi nilai di semua definisi dalam proyek. Ini berguna ketika Anda ingin menggunakan nilai yang sama di seluruh definisi, tahapan, dan tugas dalam proyek, dan mengelolanya dari satu lokasi. Tentukan dan kelola grup variabel di Pustaka Alur>.
Variabel Alur Rilis: Gunakan variabel alur rilis untuk berbagi nilai di semua tahap dalam alur rilis. Ini sangat ideal untuk skenario di mana Anda memerlukan nilai yang konsisten di seluruh tahap dan tugas, dengan kemampuan untuk memperbaruinya dari satu lokasi. Tentukan dan kelola variabel ini di tab Variabel dari alur rilis . Di halaman Variabel Alur, atur daftar drop-down Cakupan ke Rilis saat menambahkan variabel.
Variabel Tahap: Gunakan variabel tahap untuk berbagi nilai dalam tahap tertentu dari alur rilis. Ini berguna untuk nilai yang berbeda dari tahap ke tahap tetapi konsisten di semua tugas dalam tahap. Tentukan dan kelola variabel ini di tab Variabel dari alur rilis . Di halaman Variabel Alur, atur daftar drop-down Cakupan ke lingkungan yang sesuai saat menambahkan variabel.
Menggunakan variabel kustom di tingkat proyek, alur rilis, dan tahap membantu Anda:
Hindari nilai duplikat, sehingga lebih mudah untuk memperbarui semua kemunculan dengan satu perubahan.
Amankan nilai sensitif dengan mencegahnya dilihat atau dimodifikasi oleh pengguna. Untuk menandai variabel sebagai aman (rahasia), pilih ikon di samping variabel.
Penting
Nilai variabel tersembunyi (rahasia) disimpan dengan aman di server dan tidak dapat dilihat oleh pengguna setelah disimpan. Selama penyebaran, Azure Pipelines mendekripsi nilai-nilai ini saat dirujuk oleh tugas dan meneruskannya ke agen melalui saluran HTTPS yang aman.
Catatan
Membuat variabel kustom dapat menimpa variabel standar. Misalnya, jika Anda menentukan variabel Jalur kustom pada agen Windows, variabel tersebut akan menimpa variabel $env:Path, yang dapat mencegah PowerShell berjalan dengan benar.
Menggunakan variabel kustom
Untuk menggunakan variabel kustom dalam tugas Anda, sertakan nama variabel dalam tanda kurung dan mendahuluinya dengan $ karakter. Misalnya, jika Anda memiliki variabel bernama adminUserName, Anda dapat menyisipkan nilainya saat ini ke dalam tugas sebagai $(adminUserName)
.
Catatan
Variabel dari grup yang berbeda yang ditautkan ke alur pada cakupan yang sama (misalnya, pekerjaan atau tahapan) dapat bertentangan, yang mengarah ke hasil yang tidak dapat diprediksi. Untuk menghindari hal ini, pastikan bahwa variabel di semua grup variabel Anda memiliki nama yang unik.
Menentukan dan memodifikasi variabel Anda dalam skrip
Untuk menentukan atau mengubah variabel dari skrip, gunakan perintah pengelogan task.setvariable
. Nilai variabel yang diperbarui dilingkup ke pekerjaan yang dijalankan dan tidak bertahan di seluruh pekerjaan atau tahapan. Perhatikan bahwa nama variabel diubah menjadi huruf besar, dengan "." dan " " diganti dengan "_".
Misalnya, Agent.WorkFolder
menjadi AGENT_WORKFOLDER
.
- Di Windows, akses variabel ini sebagai
%AGENT_WORKFOLDER%
atau$env:AGENT_WORKFOLDER
. - Di Linux dan macOS, gunakan
$AGENT_WORKFOLDER
.
Tip
Anda dapat menjalankan skrip pada:
- Agen Windows menggunakan tugas skrip Batch atau tugas PowerShell.
- Agen macOS atau Linux menggunakan tugas skrip Shell.
Skrip batch
sauce
Mengatur variabel dan secret.Sauce
@echo ##vso[task.setvariable variable=sauce]crushed tomatoes
@echo ##vso[task.setvariable variable=secret.Sauce;issecret=true]crushed tomatoes with garlic
Membaca variabel
Argumen
"$(sauce)" "$(secret.Sauce)"
Skrip
@echo off
set sauceArgument=%~1
set secretSauceArgument=%~2
@echo No problem reading %sauceArgument% or %SAUCE%
@echo But I cannot read %SECRET_SAUCE%
@echo But I can read %secretSauceArgument% (but the log is redacted so I do not spoil the secret)
Output konsol dari membaca variabel:
No problem reading crushed tomatoes or crushed tomatoes
But I cannot read
But I can read ******** (but the log is redacted so I do not spoil the secret)
Menampilkan nilai saat ini dari semua variabel
Pilih Rilis>Alur, lalu pilih alur rilis Anda.
Buka tampilan ringkasan untuk rilis Anda, dan pilih tahap yang Anda minati. Dalam daftar langkah-langkah, pilih Inisialisasi pekerjaan.
Ini membuka log untuk langkah ini. Gulir ke bawah untuk melihat nilai yang digunakan oleh agen untuk pekerjaan ini.
Menjalankan rilis dalam mode debug
Menjalankan rilis dalam mode debug dapat membantu Anda mendiagnosis dan mengatasi masalah atau kegagalan dengan menampilkan informasi tambahan selama eksekusi rilis. Anda dapat mengaktifkan mode debug untuk seluruh rilis atau hanya untuk tugas dalam tahap rilis tertentu.
Untuk mengaktifkan mode debug untuk seluruh rilis, tambahkan variabel bernama
System.Debug
dengan nilaitrue
ke tab Variabel dari alur rilis .Untuk mengaktifkan mode debug untuk tahap tertentu, buka dialog Konfigurasikan tahap dari menu pintasan tahap, dan tambahkan variabel bernama
System.Debug
dengan nilaitrue
ke tab Variabel .Atau, buat grup variabel yang berisi variabel bernama
System.Debug
dengan nilaitrue
, dan tautkan grup variabel ini ke alur rilis.
Tip
Jika Anda mengalami kesalahan yang terkait dengan koneksi layanan Azure ARM, lihat Cara: Memecahkan masalah koneksi layanan Azure Resource Manager untuk detail selengkapnya.