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
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 Anda menyiapkan tugas untuk menyebarkan aplikasi 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. Variabel 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. Variabel 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 memberi Anda akses ke detail tentang sistem, rilis, tahap, atau agen tempat mereka berjalan.
Dengan pengecualian System.Debug, variabel default bersifat baca-saja, dan sistem secara otomatis mengatur nilainya.
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 variabel ini dalam 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 variabel ini dalam skrip atau tugas Anda untuk memanggil REST API pada layanan lain seperti kontrol Build dan Version. 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 tempat alur mengunduh artefak selama penyebaran rilis. Alur menghapus direktori 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 alur mengunduh artefak selama penyebaran rilis. Alur menghapus direktori 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 alur membuat subfolder 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 pengguna. Atur variabel 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 tidak 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 melewatkan pengunduhan artefak ke agen. Contoh: FALSE |
| Release.TriggeringArtifact.Alias | Alias artefak yang memicu rilis. Nilai 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. Nama ini kemungkinan berbeda dari 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 tugas yang dijalankan, seperti Rilis atau Build (Penyusunan). Contoh: Release |
| Agent.HomeDirectory | Folder tempat agen diinstal. Folder ini berisi kode dan sumber daya untuk agen. Contoh: C:\agent |
| Agent.ReleaseDirectory | Direktori tempat penyebaran rilis mengunduh artefak. Direktori dibersihkan sebelum setiap penyebaran jika artefak perlu diunduh ke agen. Ini sama dengan 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. Ini 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. Ini sama dengan Agent.RootDirectory dan System.WorkFolder.Contoh: C:\agent\_work |
| Agent.DeploymentGroupId | ID grup penyebaran tempat agen terdaftar. ID ini hanya tersedia dalam pekerjaan grup penyebaran. Contoh: 1 |
Merilis variabel artefak
Untuk setiap artefak yang Anda referensikan dalam rilis, gunakan variabel artefak berikut. Perhatikan bahwa tidak semua variabel berlaku untuk setiap jenis artefak. Tabel berikut mencantumkan variabel artefak default dan menyediakan contoh nilainya berdasarkan jenis artefak. Jika contoh kosong, itu menunjukkan bahwa variabel tidak berlaku untuk jenis artefak tersebut.
Ganti {alias} placeholder 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: 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: JenkinsLayanan Azure DevOps: 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 menunjuk satu artefak sebagai artefak utama. Azure Pipelines kemudian 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.
Gunakan 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, gunakan $(Release.Artifacts.ASPNET4.CI.DefinitionName).
Untuk menggunakan variabel default dalam skrip Anda, ganti . 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. Alias asli, ASPNET4.CI, diganti dengan ASPNET4_CI.
Variabel kustom
Anda dapat menentukan variabel kustom pada cakupan yang berbeda.
Grup Variabel: Gunakan grup variabel untuk berbagi nilai di semua definisi dalam proyek. Pendekatan 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. Pendekatan ini sangat ideal untuk skenario di mana Anda membutuhkan 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. Pendekatan 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.
Dengan menggunakan variabel kustom di tingkat proyek, alur rilis, dan tahap, Anda dapat:
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 pengguna tidak dapat melihatnya setelah disimpan. Selama penyebaran, Azure Pipelines mendekripsi nilai-nilai ini saat tugas mereferensikannya 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 menimpa variabel $env:Path dan mungkin 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, sisipkan 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 tahap) dapat berkonflik dan menyebabkan hasil yang tidak dapat diprediksi. Untuk menghindari masalah 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.
Langkah ini membuka log. Gulir ke bawah untuk melihat nilai yang digunakan agen untuk pekerjaan ini.
Menjalankan rilis dalam mode debug
Menjalankan rilis dalam mode debug dapat membantu Anda mendiagnosis dan mengatasi masalah 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 Resource Manager, lihat Cara: Memecahkan masalah koneksi layanan Azure Resource Manager untuk detail selengkapnya.
Mengatur variabel
Mengatur variabel