Klasik yayın işlem hatlarında değişkenleri kullanma
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
Klasik yayın işlem hatlarında değişkenleri kullanmak, 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ı çalıştırmaları arasında değişebilir.
Yalnızca şablon ayrıştırma zamanında kullanılabilen Çalışma Zamanı parametrelerinin aksine, Klasik yayın işlem hatlarındaki değişkenlere tüm dağıtım işlemi boyunca erişilebilir
Klasik yayın işlem hattınızın her aşamasında uygulamanızı dağıtmak için görevler ayarlarken değişkenler size yardımcı olabilir:
Özelleştirmeyi basitleştirme: Genel dağıtım işlem hattını bir kez tanımlayın ve farklı aşamalar için kolayca uyarlayın. Örneğin, bir web dağıtımının bağlantı dizesi temsil etmek için bir değişken kullanın ve her aşama için gereken değeri ayarlayın. Bunlar özel değişkenler olarak bilinir.
Bağlamsal bilgilerden yararlanın: Yayın bağlamı hakkında aşama, yapıt veya dağıtımı çalıştıran aracı gibi ayrıntılara erişin. Örneğin, betikleriniz indirme için derleme konumunu veya geçici dosyalar oluşturmak için aracının çalışma dizinini gerektirebilir. Bunlar varsayılan değişkenler olarak adlandırılır.
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
Varsayılan değişkenler, çalışan görevlerinize ve betiklerinize yönelik yürütme bağlamı hakkında temel bilgiler sağlar. Bu değişkenler, çalıştırdıkları sistem, sürüm, aşama veya aracı hakkındaki ayrıntılara erişmenizi sağlar.
System.Debug dışında, varsayılan 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.
Sistem değişkenleri
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 |
Yayın değişkenleri
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 |
Yayın aşaması değişkenleri
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şkenleri
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 |
Release Artifacts değişkenleri
Bir yayında başvuruda bulunan her yapıt için aşağıdaki yapıt değişkenlerini kullanabilirsiniz. Tüm değişkenlerin her yapıt türü için geçerli olmadığını unutmayın. Aşağıdaki tabloda varsayılan yapıt değişkenleri listelenmiştir ve yapıt türüne göre değerlerine ilişkin örnekler verilmiştir. Bir örnek boşsa, değişkenin bu yapıt türü için geçerli olmadığını gösterir.
Yer tutucuyu {alias}
yapıt kaynağı 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ı. Örnekler: Azure Pipelines: 1 GitHub: fabrikam/asp |
Release.Artifacts. {alias}. TanımAdı | Derleme işlem hattının veya deponun adı. Örnekler: Azure Pipelines: fabrikam-ci TFVC: $/fabrikam Aptal: fabrikam GitHub: fabrikam/asp (main) |
Release.Artifacts. {alias}. BuildNumber | Derleme numarası veya işleme tanımlayıcısı. Örnekler: Azure Pipelines: 20170112.1 Jenkins: 20170112.1 TFVC: Changeset 3 Aptal: 38629c964 GitHub: 38629c964 |
Release.Artifacts. {alias}. BuildId | Derleme tanımlayıcısı. Örnekler: Azure Pipelines: 130 Jenkins: 130 GitHub: 38629c964d21fe405ef830b7d0220966b82c9e11 |
Release.Artifacts. {alias}. BuildURI | Derlemenin URL'si. Örnekler: Azure Pipelines: vstfs://build-release/Build/130 GitHub: https://github.com/fabrikam/asp |
Release.Artifacts. {alias}. SourceBranch | Kaynağın oluşturulduğu dalın tam yolu ve adı. Örnekler: Azure Pipelines: refs/heads/main |
Release.Artifacts. {alias}. SourceBranchName | Yalnızca kaynağın oluşturulduğu dalın adı. Örnekler: Azure Pipelines: main |
Release.Artifacts. {alias}. SourceVersion | Oluşturulan işleme. Örnekler: Azure Pipelines: bc0044458ba1d9298cdc649cb5dcf013180706f7 |
Release.Artifacts. {alias}. Repository.Provider | Kaynağın oluşturulduğu depo türü. Örnekler: Azure Pipelines: Git |
Release.Artifacts. {alias}. RequestedForID | Derlemeyi tetikleyen hesabın tanımlayıcısı. Örnekler: Azure Pipelines: 2f435d07-769f-4e46-849d-10d1ab9ba6ab |
Release.Artifacts. {alias}. RequestedFor | Derlemeyi isteyen hesabın adı. Örnekler: Azure Pipelines: Mateo Escobedo |
Release.Artifacts. {alias}. Tür | Build.Examples gibi yapıt kaynağının türü Azure Pipelines: Build Jenkins: Jenkins TFVC: TFVC Aptal: Git GitHub: 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. Örnekler: Azure Pipelines: 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. Örnekler: Azure Pipelines: main |
Birincil Yapıt değişkenleri
Klasik yayın işlem hatlarında, birden çok yapıt kullanıyorsanız, birini birincil yapıt olarak belirleyebilirsiniz. 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, diğer adı ASPNET4.CI olan bir yapıtın PowerShell görevine bağımsız değişken olarak 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, powershell betiğinde diğer adı olarak ASPNET4.CI olan bir yapıtın değerini Release.Artifacts.{Artifact alias}.DefinitionName
yazdırmak için kullanın$env:RELEASE_ARTIFACTS_ASPNET4_CI_DEFINITIONNAME
. ASPNET4.CI özgün diğer adının ASPNET4_CI ile değiştirildiğini unutmayın.
Özel değişkenler
Özel değişkenler çeşitli kapsamlarda tanımlanabilir.
Değişken Grupları: Bir projedeki tüm tanımlarda değerleri paylaşmak için değişken grupları kullanın. Bu, bir proje içindeki tanımlar, aşamalar ve görevler boyunca aynı değerleri kullanmak ve bunları tek bir konumdan yönetmek istediğinizde kullanışlıdır. İşlem Hatları>Kitaplığı'nda değişken grupları tanımlayın ve yönetin.
Yayın İşlem Hattı Değişkenleri: Yayın işlem hattı içindeki tüm aşamalarda değerleri paylaşmak için yayın işlem hattı değişkenlerini kullanın. Bu, aşamalar ve görevler arasında tutarlı bir değere ihtiyaç duyduğunuz ve bunu tek bir konumdan güncelleştirebileceğiniz senaryolar için idealdir. Yayın işlem hattının Değişkenler sekmesinde bu değişkenleri tanımlayın ve yönetin. İşlem Hattı Değişkenleri sayfasında, Değişken eklerken Kapsam açılan listesini Yayın olarak ayarlayın.
Aşama Değişkenleri: Yayın işlem hattının belirli bir aşamasındaki değerleri paylaşmak için aşama değişkenlerini kullanın. Bu, aşamadan aşamaya farklılık gösteren ancak bir aşama içindeki tüm görevler arasında tutarlı olan değerler için kullanışlıdır. Yayın işlem hattının Değişkenler sekmesinde bu değişkenleri tanımlayın ve yönetin. İşlem Hattı Değişkenleri sayfasında, değişken eklerken Kapsam açılan listesini uygun ortama ayarlayın.
Projede, yayın işlem hattında ve aşama düzeylerinde özel değişkenler kullanmak şunları oluşturmanıza yardımcı olur:
Değerleri yinelemekten kaçının, böylece tüm oluşumları tek bir değişiklikle güncelleştirmeyi kolaylaştırma.
Hassas değerlerin kullanıcılar tarafından görüntülenmesini veya değiştirilmesini engelleyerek bunların güvenliğini sağlayın. Bir değişkeni güvenli (gizli dizi) olarak işaretlemek için değişkenin yanındaki simgeyi seçin.
Önemli
Gizli değişkenlerin (gizli dizi) 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, 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, bir Windows aracısı üzerinde özel bir Path değişkeni tanımlarsanız, $env:Path değişkeninin üzerine yazılır ve bu da PowerShell'in düzgün çalışmasını engelleyebilir.
Özel değişkenler kullanma
Görevlerinizde özel değişkenler kullanmak için değişken adını parantez içine alın ve önüne bir $ karakter koyun. Örneğin, adminUserName adlı bir değişkeniniz varsa, geçerli değerini görevine olarak $(adminUserName)
ekleyebilirsiniz.
Not
Aynı kapsamdaki bir işlem hattına (örneğin, iş veya aşama) bağlı farklı gruplardan gelen değişkenler çakışarak öngörülemeyen sonuçlara yol açabilir. Bunu önlemek için tüm değişken gruplarınızdaki değişkenlerin benzersiz adlara sahip olduğundan 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şin kapsamıdır ve işler veya aşamalar arasında kalıcı olmaz. Değişken adlarının "." ve " " ile "_" ile değiştirildiğinde büyük harfe dönüştürüldüğünü unutmayın.
Örneğin Agent.WorkFolder
, AGENT_WORKFOLDER
olur.
- Windows'da bu değişkene veya
$env:AGENT_WORKFOLDER
olarak%AGENT_WORKFOLDER%
erişin. - Linux ve macOS'ta kullanın
$AGENT_WORKFOLDER
.
İpucu
Betiği şu şekilde çalıştırabilirsiniz:
- Batch betik görevi veya PowerShell görevi kullanan bir Windows aracısı.
- Kabuk betik görevi kullanan bir 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)
Tüm değişkenlerin geçerli değerlerini görüntüleme
İşlem Hatları Yayınları'nın> ardından yayın işlem hattınızı seçin.
Yayınınızın özet 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üklerini 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
Bir sürümün hata ayıklama modunda çalıştırılması, yayın yürütme sırasında ek bilgiler görüntüleyerek sorunları veya hataları tanılamanıza ve çözmenize yardımcı olabilir. Hata ayıklama modunu tüm sürüm için veya yalnızca belirli bir yayın aşamasındaki görevler için etkinleştirebilirsiniz.
Yayının tamamında hata ayıklama modunu etkinleştirmek için yayın işlem hattının Değişkenler sekmesine değeriyle
true
adlıSystem.Debug
bir değişken ekleyin.Belirli bir aşama için hata ayıklama modunu etkinleştirmek 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ğerine
true
sahip adlıSystem.Debug
bir değişken içeren bir değişken grubu oluşturun ve bu değişken grubunu yayın işlem hattına bağlayın.
İpucu
Azure ARM hizmet bağlantılarıyla ilgili bir hatayla karşılaşırsanız, diğer ayrıntılar için bkz . Nasıl yapılır: Azure Resource Manager hizmet bağlantılarında sorun giderme.