Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Layanan Azure DevOps | Azure DevOps Server | Azure DevOps Server 2022 | Azure DevOps Server 2020
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 peluncuran.
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: Akses detail 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 bawaan
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 dari koleksi Team Foundation atau Azure Pipelines. Gunakan ini dari skrip atau tugas Anda untuk memanggil REST API di layanan lain seperti Build dan kontrol versi. Contoh: https://dev.azure.com/fabrikam/ |
| System.CollectionId | ID koleksi di mana 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 di mana artefak diunduh selama proses penyebaran rilis. Direktori dibersihkan sebelum setiap penyebaran jika artefak perlu diunduh ke agen. Sama seperti Agent.ReleaseDirectory dan System.DefaultWorkingDirectory. Contoh: C:\agent\_work\r1\a |
| System.DefaultWorkingDirectory | Direktori di mana artefak diunduh selama proses penyebaran rilis. Direktori dibersihkan sebelum setiap penyebaran jika artefak perlu diunduh ke agen. Sama seperti Agent.ReleaseDirectory dan System.ArtifactsDirectory. Contoh: C:\agent\_work\r1\a |
| System.WorkFolder | Direktori kerja untuk agen perangkat lunak ini, di mana folder turunan 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 |
| Pelepasan.Penempatan.DimintaUntuk | Nama tampilan identitas yang memulai (menjalankan) penyebaran yang sedang berlangsung saat ini. 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 memulai implementasi yang saat ini sedang berlangsung. Contoh: 2f435d07-769f-4e46-849d-10d1ab9ba6ab |
| Release.DeploymentID | ID dari penyebaran. Unik per pekerjaan. Contoh: 254 |
| Release.DeployPhaseID | ID fase di mana penyebaran sedang berjalan. Contoh: 127 |
| Release.EnvironmentId | ID instans tahap dalam rilis yang sedang dalam proses penyebaran. Contoh: 276 |
| Release.EnvironmentName | Nama dari tahap di mana penyebaran sedang berlangsung saat ini. 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 |
| Alasan.Rilis | Alasan penyebaran. Nilai yang didukung adalah:ContinuousIntegration - rilis dimulai untuk Penyebaran Berkelanjutan setelah build selesai.Manual - rilis dimulai secara manual.None - alasan penyebaran belum ditentukan.Schedule - rilis dimulai sesuai jadwal. |
| Deskripsi Pelepasan | 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 untuk 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 pelepasan. 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}.Status | Status penyebaran rilis ini pada tahap yang ditentukan. Contoh: NotStarted |
Variabel agen
| Nama variabel | Deskripsi |
|---|---|
| Agent.Name | Nama agen seperti yang terdaftar di kumpulan agen. Ini kemungkinan besar berbeda dengan nama komputer. Contoh: fabrikam-agent |
| Agent.MachineName | Nama komputer tempat agen dikonfigurasi. Contoh: fabrikam-agent |
| Agent.Version | Versi perangkat lunak agen. Contoh: 2.109.1 |
| Agent.JobName | Nama pekerjaan yang sedang berjalan, seperti Rilis atau Pembangunan. Contoh: Release |
| Agent.HomeDirectory | Folder tempat agen diinstal. Folder ini berisi kode dan sumber daya untuk agen. Contoh: C:\agent |
| Agent.ReleaseDirectory | Direktori di mana artefak diunduh selama proses penyebaran rilis. Direktori dibersihkan sebelum setiap penyebaran jika artefak perlu diunduh ke agen. Sama seperti System.ArtifactsDirectory dan System.DefaultWorkingDirectory. Contoh: C:\agent\_work\r1\a |
| Agent.RootDirectory | Direktori kerja untuk agen perangkat lunak ini, di mana folder turunan dibuat untuk setiap build atau rilis. Sama seperti Agent.WorkFolder dan System.WorkFolder. Contoh: C:\agent\_work |
| Agent.WorkFolder | Direktori kerja untuk agen perangkat lunak ini, di mana folder turunan dibuat untuk setiap build atau rilis. Sama seperti Agent.RootDirectory dan System.WorkFolder. Contoh: C:\agent\_work |
| Agent.DeploymentGroupId | ID grup penyebaran di mana agen terdaftar. Ini hanya tersedia dalam tugas grup penyebaran. Contoh: 1 |
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.
Ganti {alias} dengan nilai yang Anda tentukan untuk alias sumber artefak atau dengan nilai default yang dihasilkan untuk alur pelepasan.
| Nama variabel | Deskripsi |
|---|---|
| Release.Artifacts. {alias}. DefinitionId | Pengidentifikasi alur atau repositori build. Contoh: Azure Pipelines: 1GitHub: fabrikam/asp |
| Release.Artifacts. {alias}. DefinitionName | Nama alur atau repositori build. Contoh: Azure Pipelines: fabrikam-ciTFVC: $/fabrikamGit: fabrikamGitHub: fabrikam/asp (main) |
| Release.Artifacts. {alias}. BuildNumber | Nomor build atau pengidentifikasi komit. Contoh: Azure Pipelines: 20170112.1Jenkins: 20170112.1TFVC: Changeset 3Git: 38629c964GitHub: 38629c964 |
| Release.Artifacts.{alias}.BuildId | Pengidentifikasi build. Contoh: Azure Pipelines: 130Jenkins: 130GitHub: 38629c964d21fe405ef830b7d0220966b82c9e11 |
| Release.Artifacts.{alias}.BuildURI | URL untuk pembuatan. Contoh: Azure Pipelines: vstfs://build-release/Build/130GitHub: https://github.com/fabrikam/asp |
| Release.Artifacts. {alias}. SourceBranch | Alamat lengkap dan nama cabang dari mana sumber itu 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 | Komit 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 dari akun yang memicu pengembangan. 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: BuildJenkins: JenkinsTFVC: TFVCGit: GitGitHub: GitHub |
| Release.Artifacts. {alias}. PullRequest.TargetBranch | Jalur lengkap dan nama cabang yang merupakan target dari sebuah pull request. Variabel ini diinisialisasi hanya jika rilis dipicu oleh alur permintaan pull. Contoh: Azure Pipelines: refs/heads/main |
| Release.Artifacts. {alias}. PullRequest.TargetBranchName | Nama cabang saja yang merupakan target permintaan tarik. 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 | Sama dengan |
|---|---|
| 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.Penyedia |
| 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 Pipelines>Pustaka.
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 Pipeline, atur menu drop-down Cakupan ke Rilis saat menambahkan variabel.
Variabel-Variabel Tahap: Gunakan variabel-variabel tahap untuk berbagi nilai dalam sebuah tahap spesifik dari jalur 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 Path kustom pada agen Windows, hal itu akan menimpa $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 dibatasi pada pekerjaan yang sedang dijalankan dan tidak berlanjut ke seluruh pekerjaan atau tahap. 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 dengan menggunakan tugas Shell script.
Skrip batch
Mengatur variabel sauce 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)
Keluaran konsol dari pembacaan 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 Alur>Rilis, 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.Debugdengan nilaitrueke 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.Debugdengan nilaitrueke tab Variabel .
Tip
Jika Anda mengalami kesalahan yang terkait dengan koneksi layanan Azure ARM, lihat Cara: Memecahkan masalah koneksi layanan Azure Resource Manager untuk detail selengkapnya.
Mengatur variabel
Mengatur variabel