Klasik yayın işlem hatlarında değişkenleri kullanma
Makale
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.
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ı.
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.
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 olanbir 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_WORKFOLDERolarak %AGENT_WORKFOLDER% erişin.
@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
arguments
"$(sauce)" "$(secret.Sauce)"
Komut Dosyası
bat
@echo off
set sauceArgument=%~1set 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 donot spoil the secret)
PowerShell betiği
sauce ve secret.Sauce değişkenlerini ayarlama
PowerShell
Write-Host"##vso[task.setvariable variable=sauce]crushed tomatoes"Write-Host"##vso[task.setvariable variable=secret.Sauce;issecret=true]crushed tomatoes with
garlic"
Param(
[string]$sauceArgument,
[string]$secretSauceArgument
)
Write-Host No problem reading $env:SAUCE or $sauceArgumentWrite-Host But I cannot read $env:SECRET_SAUCEWrite-Host But I can read $secretSauceArgument"(but the log is redacted so I do not spoil the secret)"
Satır içi PowerShell betiği
sauce Satır içi betikte ve secret.Sauce değişkenlerini kullanın.
YAML
- pwsh:|
Write-Host No problem reading $(sauce)
Write-Host But I cannot read $env:SECRET_SAUCE
Write-Host But I can read $(secret.Sauce) "(but the log is redacted so I do not spoil the secret)"
sauce ve secret.Sauce değişkenlerini ayarlama
Bash
#!/bin/bashecho"##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
arguments
"$(sauce)" "$(secret.Sauce)"
Komut Dosyası
Bash
#!/bin/bashecho"No problem reading $SAUCE"echo"But I cannot read $SECRET_SAUCE"
Değişkenlerin okunmasından konsol çıkışı:
Output
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 truesahip 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.
Diğer geliştiriciler ve uzmanlarla gerçek dünyadaki kullanım örneklerini temel alan ölçeklenebilir yapay zeka çözümleri oluşturmak için toplantı serisine katılın.
Değişkenler, işlem hattında kullanılmak üzere sizin tanımladığınız ad-değer çiftleridir. Değişkenleri görevlere giriş olarak ve betiklerinizde kullanabilirsiniz.