Klasik sürüm ve yapıt değişkenleri
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
Klasik sürüm ve yapıt değişkenleri, işlem hattınız genelinde veri alışverişi ve taşımanın kullanışlı bir yoludur. Her değişken bir dize olarak depolanır ve değeri, işlem hattınızın çalıştırmaları arasında değişebilir.
Değişkenler, yalnızca şablon ayrıştırma zamanında kullanılabilen Çalışma Zamanı parametrelerinden farklıdır.
Uygulamanızı DevOps CI/CD işlemlerinizdeki her aşamaya dağıtmak için görevleri oluştururken değişkenler şunları yapma konusunda size yardımcı olur:
Bir kez daha genel bir dağıtım işlem hattı tanımlayın ve her aşama için kolayca özelleştirin. Örneğin, bir değişken web dağıtımının bağlantı dizesi temsil etmek için kullanılabilir ve bu değişkenin değeri bir aşamadan diğerine değiştirilebilir. Bunlar özel değişkenlerdir.
Dağıtım işlem hattının çalıştırıldığı belirli sürümün, aşamanın, yapıtların veya aracının bağlamı hakkındaki bilgileri kullanın. Örneğin, betiğinizi indirmek için derlemenin konumuna veya geçici dosyalar oluşturmak için aracıdaki çalışma dizinine erişmesi gerekebilir. Bunlar varsayılan değişkenlerdir.
Not
YAML işlem hatları için daha fazla ayrıntı için kullanıcı tanımlı değişkenlere ve önceden tanımlanmış değişkenlere bakın.
Varsayılan değişkenler
Yürütme bağlamı hakkındaki bilgiler, varsayılan değişkenler aracılığıyla çalışan görevlerin kullanımına sunulur. Görevleriniz ve betikleriniz, çalıştırdıkları sistem, sürüm, aşama veya aracı hakkında bilgi bulmak için bu değişkenleri kullanabilir. System.Debug dışında, bu değişkenler salt okunur olur ve değerleri sistem tarafından otomatik olarak ayarlanır. En önemli değişkenlerden bazıları aşağıdaki tablolarda açıklanmıştır. Listenin tamamını görüntülemek için bkz . Tüm değişkenlerin geçerli değerlerini görüntüleme.
İpucu
Bir yayın için tüm değişkenlerin geçerli değerlerini görüntüleyebilir ve bir sürümü hata ayıklama modunda çalıştırmak için varsayılan değişkeni kullanabilirsiniz.
Sistem
Değişken adı | Açıklama |
---|---|
System.TeamFoundationServerUri | Azure Pipelines'da hizmet bağlantısının URL'si. Azure Pipelines REST API'lerini çağırmak için betiklerinizden veya görevlerinizden bunu kullanın. Örnek: https://fabrikam.vsrm.visualstudio.com/ |
System.TeamFoundationCollectionUri | Team Foundation koleksiyonunun veya Azure Pipelines'ın URL'si. Derleme ve Sürüm denetimi gibi diğer hizmetlerde REST API'lerini çağırmak için betiklerinizden veya görevlerinizden bunu kullanın. Örnek: https://dev.azure.com/fabrikam/ |
System.CollectionId | Bu derlemenin veya yayının ait olduğu koleksiyonun kimliği. Örnek: 6c6f3423-1c84-4625-995a-f7f143a1e43d |
System.DefinitionId | Geçerli sürümün ait olduğu yayın işlem hattının kimliği. Örnek: 1 |
System.TeamProject | Bu derlemenin veya yayının ait olduğu projenin adı. Örnek: Fabrikam |
System.TeamProjectId | Bu derlemenin veya sürümün ait olduğu projenin kimliği. Örnek: 79f5c12e-3337-4151-be41-a268d2c73344 |
System.ArtifactsDirectory | Yayın dağıtımı sırasında yapıtların indirildiği dizin. Aracıya yapıtların indirilmesi gerekiyorsa dizin her dağıtımdan önce temizlenir. Agent.ReleaseDirectory ve System.DefaultWorkingDirectory ile aynı. Örnek: C:\agent\_work\r1\a |
System.DefaultWorkingDirectory | Yayın dağıtımı sırasında yapıtların indirildiği dizin. Aracıya yapıtların indirilmesi gerekiyorsa dizin her dağıtımdan önce temizlenir. Agent.ReleaseDirectory ve System.ArtifactsDirectory ile aynı. Örnek: C:\agent\_work\r1\a |
System.WorkFolder | Her derleme veya yayın için alt klasörlerin oluşturulduğu bu aracı için çalışma dizini. Agent.RootDirectory ve Agent.WorkFolder ile aynı. Örnek: C:\agent\_work |
System.Debug | Bu, kullanıcılar tarafından ayarlanabilen tek sistem değişkenidir. Hata bulma işlemine yardımcı olmak için sürümü hata ayıklama modunda çalıştırmak için bunu true olarak ayarlayın. Örnek: true |
Sürüm
Değişken adı | Açıklama |
---|---|
Release.AttemptNumber | Bu sürümün bu aşamada dağıtılma sayısı. Örnek: 1 |
Release.DefinitionEnvironmentId | İlgili yayın işlem hattındaki aşamanın kimliği. Örnek: 1 |
Release.DefinitionId | Geçerli sürümün ait olduğu yayın işlem hattının kimliği. Örnek: 1 |
Release.DefinitionName | Geçerli sürümün ait olduğu yayın işlem hattının adı. Örnek: fabrikam-cd |
Release.Deployment.RequestedFor | Sürmekte olan dağıtımı tetikleyen (başlatan) kimliğin görünen adı. Örnek: Mateo Escobedo |
Release.Deployment.RequestedForEmail | Sürmekte olan dağıtımı tetikleyen (başlatan) kimliğin e-posta adresi. Örnek: mateo@fabrikam.com |
Release.Deployment.RequestedForId | Sürmekte olan dağıtımı tetikleyen (başlatan) kimliği. Örnek: 2f435d07-769f-4e46-849d-10d1ab9ba6ab |
Release.DeploymentID | Dağıtımın kimliği. İş başına benzersiz. Örnek: 254 |
Release.DeployPhaseID | Dağıtımın çalıştığı aşamanın kimliği. Örnek: 127 |
Release.EnvironmentId | Dağıtımın devam etmekte olduğu bir sürümdeki aşama örneğinin kimliği. Örnek: 276 |
Release.EnvironmentName | Dağıtımın devam ettiği aşamanın adı. Örnek: Dev |
Release.EnvironmentUri | Dağıtımın devam ettiği bir sürümdeki aşama örneğinin URI'sini. Örnek: vstfs://ReleaseManagement/Environment/276 |
Release.Environments. {stage-name}.status | Aşamanın dağıtım durumu. Örnek: InProgress |
Release.PrimaryArtifactSourceAlias | Birincil yapıt kaynağının diğer adı Örnek: fabrikam\_web |
Release.Reason | Dağıtımın nedeni. Desteklenen değerler şunlardır:ContinuousIntegration - sürüm, bir derleme tamamlandıktan sonra Sürekli Dağıtım'da başladı.Manual - sürüm el ile başlatıldı.None - dağıtım nedeni belirtilmedi.Schedule - yayın bir zamanlamadan başladı. |
Release.ReleaseDescription | Yayın sırasında sağlanan metin açıklaması. Örnek: Critical security patch |
Release.ReleaseId | Geçerli yayın kaydının tanımlayıcısı. Örnek: 118 |
Release.ReleaseName | Geçerli sürümün adı. Örnek: Release-47 |
Release.ReleaseUri | Geçerli sürümün URI'sini. Örnek: vstfs://ReleaseManagement/Release/118 |
Release.ReleaseWebURL | Bu sürümün URL'si. Örnek: https://dev.azure.com/fabrikam/f3325c6c/_release?releaseId=392&_a=release-summary |
Release.RequestedFor | Yayını tetikleyen kimliğin görünen adı. Örnek: Mateo Escobedo |
Release.RequestedForEmail | Yayını tetikleyen kimliğin e-posta adresi. Örnek: mateo@fabrikam.com |
Release.RequestedForId | Yayını tetikleyen kimliği. Örnek: 2f435d07-769f-4e46-849d-10d1ab9ba6ab |
Release.SkipArtifactsİndir | Aracıya yapıtların indirilmesinin atlanıp atlanmayacağını belirten Boole değeri. Örnek: FALSE |
Release.TriggeringArtifact.Alias | Yayını tetikleyen yapıtın diğer adı. Yayın el ile zamanlandığında veya tetiklendiğinde bu boş olur. Örnek: fabrikam\_app |
Sürüm aşaması
Değişken adı | Açıklama |
---|---|
Release.Environments. {stage name}. Durum | Bu sürümün belirtilen aşama içinde dağıtım durumu. Örnek: NotStarted |
Aracı
Değişken adı | Açıklama |
---|---|
Agent.Name | Aracı havuzuna kayıtlı olarak aracının adı. Bu, bilgisayar adından farklı olabilir. Örnek: fabrikam-agent |
Agent.MachineName | Aracının yapılandırıldığı bilgisayarın adı. Örnek: fabrikam-agent |
Agent.Version | Aracı yazılımının sürümü. Örnek: 2.109.1 |
Agent.JobName | Yayın veya Derleme gibi çalışmakta olan işin adı. Örnek: Release |
Agent.HomeDirectory | Aracının yüklü olduğu klasör. Bu klasör, aracının kodunu ve kaynaklarını içerir. Örnek: C:\agent |
Agent.ReleaseDirectory | Yayın dağıtımı sırasında yapıtların indirildiği dizin. Aracıya yapıtların indirilmesi gerekiyorsa dizin her dağıtımdan önce temizlenir. System.ArtifactsDirectory ve System.DefaultWorkingDirectory ile aynı. Örnek: C:\agent\_work\r1\a |
Agent.RootDirectory | Her derleme veya yayın için alt klasörlerin oluşturulduğu bu aracı için çalışma dizini. Agent.WorkFolder ve System.WorkFolder ile aynı. Örnek: C:\agent\_work |
Agent.WorkFolder | Her derleme veya yayın için alt klasörlerin oluşturulduğu bu aracı için çalışma dizini. Agent.RootDirectory ve System.WorkFolder ile aynı. Örnek: C:\agent\_work |
Agent.DeploymentGroupId | Aracının kayıtlı olduğu dağıtım grubunun kimliği. Bu yalnızca dağıtım grubu işlerinde kullanılabilir. Örnek: 1 |
Genel Yapıt
Bir yayında başvuruda bulunan her yapıt için aşağıdaki yapıt değişkenlerini kullanabilirsiniz. Her yapıt türü için tüm değişkenler anlamlı değildir. Aşağıdaki tabloda varsayılan yapıt değişkenleri listelenmiştir ve yapıt türüne bağlı olarak sahip oldukları değerlerin örnekleri verilmiştir. Bir örnek boşsa, değişkenin bu yapıt türü için doldurulmadığını gösterir.
Yer tutucuyu {alias}
yapıt diğer adı için belirttiğiniz değerle veya yayın işlem hattı için oluşturulan varsayılan değerle değiştirin.
Değişken adı | Açıklama |
---|---|
Release.Artifacts. {alias}. Tanım Kimliği | Derleme işlem hattının veya deponun tanımlayıcısı. Azure Pipelines örneği: 1 GitHub örneği: fabrikam/asp |
Release.Artifacts. {alias}. TanımAdı | Derleme işlem hattının veya deponun adı. Azure Pipelines örneği: fabrikam-ci TFVC örneği: $/fabrikam Git örneği: fabrikam GitHub örneği: fabrikam/asp (main) |
Release.Artifacts. {alias}. BuildNumber | Derleme numarası veya işleme tanımlayıcısı. Azure Pipelines örneği: 20170112.1 Jenkins/TeamCity örneği: 20170112.1 TFVC örneği: Changeset 3 Git örneği: 38629c964 GitHub örneği: 38629c964 |
Release.Artifacts. {alias}. BuildId | Derleme tanımlayıcısı. Azure Pipelines örneği: 130 Jenkins/TeamCity örneği: 130 GitHub örneği: 38629c964d21fe405ef830b7d0220966b82c9e11 |
Release.Artifacts. {alias}. BuildURI | Derlemenin URL'si. Azure Pipelines örneği: vstfs://build-release/Build/130 GitHub örneği: https://github.com/fabrikam/asp |
Release.Artifacts. {alias}. SourceBranch | Kaynağın oluşturulduğu dalın tam yolu ve adı. Azure Pipelines örneği: refs/heads/main |
Release.Artifacts. {alias}. SourceBranchName | Yalnızca kaynağın oluşturulduğu dalın adı. Azure Pipelines örneği: main |
Release.Artifacts. {alias}. Sourceversion | Oluşturulan işleme. Azure Pipelines örneği: bc0044458ba1d9298cdc649cb5dcf013180706f7 |
Release.Artifacts. {alias}. Repository.Provider | Kaynağın oluşturulduğu depo türü. Azure Pipelines örneği: Git |
Release.Artifacts. {alias}. RequestedForID | Derlemeyi tetikleyen hesabın tanımlayıcısı. Azure Pipelines örneği: 2f435d07-769f-4e46-849d-10d1ab9ba6ab |
Release.Artifacts. {alias}. RequestedFor | Derlemeyi isteyen hesabın adı. Azure Pipelines örneği: Mateo Escobedo |
Release.Artifacts. {alias}. Türü | Derleme gibi yapıt kaynağının türü. Azure Pipelines örneği: Build Jenkins örneği: Jenkins TeamCity örneği: TeamCity TFVC örneği: TFVC Git örneği: Git GitHub örneği: GitHub |
Release.Artifacts. {alias}. PullRequest.TargetBranch | Çekme isteğinin hedefi olan dalın tam yolu ve adı. Bu değişken yalnızca yayın bir çekme isteği akışı tarafından tetiklendiğinde başlatılır. Azure Pipelines örneği: refs/heads/main |
Release.Artifacts. {alias}. PullRequest.TargetBranchName | Yalnızca çekme isteğinin hedefi olan dalın adı. Bu değişken yalnızca yayın bir çekme isteği akışı tarafından tetiklendiğinde başlatılır. Azure Pipelines örneği: main |
Ayrıca bkz. Yapıt kaynağı diğer adı
Birincil Yapıt
Yapıtlardan birini yayın işlem hattında birincil yapıt olarak tanımlarsınız. Azure Pipelines, belirlenen birincil yapıt için aşağıdaki değişkenleri doldurur.
Değişken adı | Aynı |
---|---|
Build.DefinitionId | Release.Artifacts. {Birincil yapıt diğer adı}. Tanım Kimliği |
Build.DefinitionName | Release.Artifacts. {Birincil yapıt diğer adı}. TanımAdı |
Build.BuildNumber | Release.Artifacts. {Birincil yapıt diğer adı}. BuildNumber |
Build.BuildId | Release.Artifacts. {Birincil yapıt diğer adı}. BuildId |
Build.BuildURI | Release.Artifacts. {Birincil yapıt diğer adı}. BuildURI |
Build.SourceBranch | Release.Artifacts. {Birincil yapıt diğer adı}. SourceBranch |
Build.SourceBranchName | Release.Artifacts. {Birincil yapıt diğer adı}. SourceBranchName |
Build.SourceVersion | Release.Artifacts. {Birincil yapıt diğer adı}. Sourceversion |
Build.Repository.Provider | Release.Artifacts. {Birincil yapıt diğer adı}. Repository.Provider |
Build.RequestedForID | Release.Artifacts. {Birincil yapıt diğer adı}. RequestedForID |
Build.RequestedFor | Release.Artifacts. {Birincil yapıt diğer adı}. RequestedFor |
Build.Type | Release.Artifacts. {Birincil yapıt diğer adı}. Türü |
Build.PullRequest.TargetBranch | Release.Artifacts. {Birincil yapıt diğer adı}. PullRequest.TargetBranch |
Build.PullRequest.TargetBranchName | Release.Artifacts. {Birincil yapıt diğer adı}. PullRequest.TargetBranchName |
Varsayılan değişkenleri kullanma
Varsayılan değişkenleri iki şekilde kullanabilirsiniz: Yayın işlem hattındaki veya betiklerinizdeki görevlerin parametreleri olarak.
Varsayılan değişkeni doğrudan göreve giriş olarak kullanabilirsiniz.
Örneğin, bir göreve diğer adı ASPNET4.CI yapıt kaynağını geçirmek Release.Artifacts.{Artifact alias}.DefinitionName
için kullanabilirsiniz$(Release.Artifacts.ASPNET4.CI.DefinitionName)
.
Betiğinizde varsayılan bir değişken kullanmak için, önce varsayılan değişken adlarındaki öğesini ile _
değiştirmeniz .
gerekir.
Örneğin, diğer adı PowerShell betiğinde ASPNET4.CI yapıt kaynağının yapıt değişkeninin Release.Artifacts.{Artifact alias}.DefinitionName
değerini yazdırmak için kullanabilirsiniz$env:RELEASE_ARTIFACTS_ASPNET4_CI_DEFINITIONNAME
.
Yapıt kaynağı diğer ASPNET4.CI
adı olan özgün adının ile ASPNET4_CI
değiştirildiğini unutmayın.
Tüm değişkenlerin geçerli değerlerini görüntüleme
Yayının özetinin işlem hatları görünümünü açın ve ilgilendiğiniz aşamayı seçin. Adım listesinde İşi başlat'ı seçin.
Bu işlem, bu adımın günlüğünü açar. Aracı tarafından bu iş için kullanılan değerleri görmek için aşağı kaydırın.
Bir sürümü hata ayıklama modunda çalıştırma
Yayının tamamını veya tek bir yayın aşamasındaki görevleri hata ayıklama modunda çalıştırarak yayın yürütülürken ve günlük dosyalarında ek bilgileri gösterin. Bu, sorunları ve hataları çözmenize yardımcı olabilir.
Yayının tamamında hata ayıklama modunu başlatmak için, yayın işlem hattının Değişkenler sekmesine değeriyle
true
adlıSystem.Debug
bir değişken ekleyin.Tek bir aşama için hata ayıklama modunu başlatmak için, aşamanın kısayol menüsünden Aşamayı yapılandır iletişim kutusunu açın ve Değişkenler sekmesine değeriyle
true
adlıSystem.Debug
bir değişken ekleyin.Alternatif olarak, değeriyle
true
adlıSystem.Debug
değişkeni içeren bir değişken grubu oluşturun ve bu değişken grubunu bir yayın işlem hattına bağlayın.
İpucu
Azure RM hizmet bağlantısıyla ilgili bir hata alırsanız bkz . Nasıl yapılır: Azure Resource Manager hizmet bağlantılarında sorun giderme.
Özel değişkenler
Özel değişkenler çeşitli kapsamlarda tanımlanabilir.
Değişken grupları kullanarak bir projedeki tüm tanımlarda değerleri paylaşın. Bir projedeki tüm tanımlarda, aşamalarda ve görevlerde aynı değerleri kullanmanız gerektiğinde ve değerleri tek bir yerde değiştirebilmek istediğinizde bir değişken grubu seçin. Kitaplık sekmesinde değişken grupları tanımlar ve yönetirsiniz.
Yayın işlem hattı değişkenlerini kullanarak tüm aşamalarda değerleri paylaşın. Yayın işlem hattındaki tüm aşamalarda ve görevlerde aynı değeri kullanmanız gerektiğinde ve değeri tek bir yerde değiştirebilmek istediğinizde bir yayın işlem hattı değişkeni seçin. Bu değişkenleri bir yayın işlem hattındaki Değişkenler sekmesinde tanımlar ve yönetirsiniz. İşlem Hattı Değişkenleri sayfasında Kapsam açılan listesini açın ve "Yayın" öğesini seçin. Varsayılan olarak, bir değişken eklediğinizde, bu değişken Yayın kapsamı olarak ayarlanır.
Aşama değişkenlerini kullanarak belirli bir aşamadaki tüm görevler arasında değerleri paylaşın. Aşamadan aşamaya değişen değerler için aşama düzeyi değişkeni kullanın (ve bir aşamadaki tüm görevler için aynıdır). Bu değişkenleri bir yayın işlem hattının Değişkenler sekmesinde tanımlar ve yönetirsiniz. İşlem Hattı Değişkenleri sayfasında Kapsam açılan listesini açın ve gerekli aşamayı seçin. Bir değişken eklediğinizde Kapsam'ı uygun ortama ayarlayın.
Projede, yayın işlem hattında ve aşama kapsamında özel değişkenler kullanmak şunları oluşturmanıza yardımcı olur:
Değerlerin yinelenmesinden kaçının, böylece tüm oluşumları tek bir işlem olarak güncelleştirmeyi kolaylaştırın.
Hassas değerleri, yayın işlem hatlarının kullanıcıları tarafından görülemeyecek veya değiştirilemeyecek şekilde depolayın. Değişkenin yanındaki (asma kilit) simgesini seçerek bir yapılandırma özelliğini güvenli (gizli) değişken olarak belirleyin.
Önemli
Gizli (gizli) değişkenlerin değerleri sunucuda güvenli bir şekilde depolanır ve kaydedildikten sonra kullanıcılar tarafından görüntülenemez. Dağıtım sırasında Azure Pipelines yayın hizmeti, görevler tarafından başvurulduğunda bu değerlerin şifresini çözer ve bunları güvenli bir HTTPS kanalı üzerinden aracıya geçirir.
Not
Özel değişkenler oluşturmak standart değişkenlerin üzerine yazabilir. Örneğin, PowerShell Yolu ortam değişkeni. Bir Windows aracısı üzerinde özel Path
değişken oluşturursanız, değişkenin $env:Path
üzerine yazılır ve PowerShell çalıştırılamaz.
Özel değişkenler kullanma
Derleme ve yayın görevlerinizde özel değişkenler kullanmak için değişken adını parantez içine alıp önünde bir $ karakter olması yeterlidir. Örneğin, adminUserName adlı bir değişkeniniz varsa, bu değişkenin geçerli değerini görevin parametresine olarak $(adminUserName)
ekleyebilirsiniz.
Not
Aynı kapsamdaki bir işlem hattına (örneğin, iş veya aşama) bağlı olan farklı gruplardaki değişkenler çakılır ve sonuç öngörülemez olabilir. Tüm değişken gruplarınızda değişkenler için farklı adlar kullandığınızdan emin olun.
Bir betikte değişkenlerinizi tanımlama ve değiştirme
Bir betikten değişken tanımlamak veya değiştirmek için günlüğe task.setvariable
kaydetme komutunu kullanın.
Güncelleştirilmiş değişken değerinin kapsamı yürütülen iş olarak belirlenmiştir ve işler veya aşamalar arasında akış yapılmaz.
Değişken adları büyük harfe dönüştürülür ve "." ve " " karakterleri "_" ile değiştirilir.
Örneğin Agent.WorkFolder
, AGENT_WORKFOLDER
olur.
Windows'da, buna veya $env:AGENT_WORKFOLDER
olarak %AGENT_WORKFOLDER%
erişebilirsiniz.
Linux ve macOS'ta kullanırsınız $AGENT_WORKFOLDER
.
İpucu
Bir betiği şu şekilde çalıştırabilirsiniz:
- Batch betik görevi veya PowerShell betik görevi kullanan Windows aracısı.
- Kabuk betik görevi kullanan macOS veya Linux aracısı.
Batch betiği
sauce
ve secret.Sauce
değişkenlerini ayarlama
@echo ##vso[task.setvariable variable=sauce]crushed tomatoes
@echo ##vso[task.setvariable variable=secret.Sauce;issecret=true]crushed tomatoes with garlic
Değişkenleri okuma
Bağımsız değişkenler
"$(sauce)" "$(secret.Sauce)"
Komut Dosyası
@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)
Değişkenlerin okunmasından konsol çıkışı:
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)
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin