Klasszikus kiadási és összetevő-változók

Azure DevOps Services | Azure DevOps Server 2020-| 2019 Azure DevOps Server | TFS 2018

Megjegyzés

A Microsoft Team Foundation Server (TFS) 2018-ban és a korábbi verziókban a buildelési és kiadási folyamatokat definícióknak, a futtatásokatbuildeknek, a szolgáltatáskapcsolatokatszolgáltatásvégpontoknak, a fázisokatkörnyezeteknek, a feladatokatpedig fázisoknak nevezzük.

A klasszikus kiadási és összetevő-változók kényelmes módot kínálnak az adatok cseréjére és átvitelére a folyamat során. Minden változó sztringként van tárolva, és értéke a folyamat futtatásai között változhat.

A változók eltérnek a futtatókörnyezeti paraméterektől , amelyek csak a sablon elemzésekor érhetők el.

Megjegyzés

Ez egy referenciacikk, amely a klasszikus kiadási és összetevő-változókat ismerteti. A YAML-folyamatok változóinak megismeréséhez tekintse meg a felhasználó által definiált változókat. Amikor kiadási folyamatból YAML-folyamatba migrál, a Release.* változók nem lesznek feltöltve.

A DevOps CI/CD-folyamatok minden szakaszában az alkalmazás üzembe helyezéséhez szükséges feladatok összeállítása során a változók a következőkben nyújtanak segítséget:

  • Definiáljon egyszer egy általánosabb üzembehelyezési folyamatot, majd szabja testre egyszerűen az egyes fázisokhoz. Egy változó például a webes üzembe helyezés kapcsolati sztring ábrázolására használható, és ennek a változónak az értéke egyik fázisról a másikra módosítható. Ezek egyéni változók.

  • Az üzembe helyezési folyamat futtatásához használt adott kiadás, fázis, összetevők vagy ügynök környezetére vonatkozó információk használata. Előfordulhat például, hogy a szkriptnek hozzá kell férnie a build helyéhez a letöltéshez, vagy az ügynök munkakönyvtárához az ideiglenes fájlok létrehozásához. Ezek alapértelmezett változók.

Tipp

Megtekintheti egy kiadás összes változójának aktuális értékeit , és egy alapértelmezett változóval futtathat egy kiadást hibakeresési módban.

Alapértelmezett változók

A végrehajtási környezettel kapcsolatos információk elérhetővé válnak a tevékenységek alapértelmezett változókon keresztüli futtatásához. A feladatok és szkriptek ezen változók segítségével információkat kereshetnek arról a rendszerről, kiadásról, fázisról vagy ügynökről, amelyben futnak. A System.Debug kivételével ezek a változók írásvédettek, és értékeiket a rendszer automatikusan beállítja. A legfontosabb változók némelyikét az alábbi táblázatok ismertetik. A teljes lista megtekintéséhez tekintse meg az összes változó aktuális értékeit.

Rendszer

Változó neve Description
System.TeamFoundationServerUri A szolgáltatáskapcsolat URL-címe a TFS-ben vagy az Azure Pipelinesban. Használja ezt a szkriptekből vagy feladatokból az Azure Pipelines REST API-k meghívásához.

Például: https://fabrikam.vsrm.visualstudio.com/
System.TeamFoundationCollectionUri A Team Foundation-gyűjtemény vagy az Azure Pipelines URL-címe. Használja ezt a szkriptekből vagy feladatokból, hogy REST API-kat hívjon meg más szolgáltatásokon, például a Build és a Verziókövetésen.

Például: https://dev.azure.com/fabrikam/
System.CollectionId Annak a gyűjteménynek az azonosítója, amelyhez ez a build vagy kiadás tartozik. A TFS 2015-ben nem érhető el.

Például: 6c6f3423-1c84-4625-995a-f7f143a1e43d
System.DefinitionId Annak a kiadási folyamatnak az azonosítója, amelyhez az aktuális kiadás tartozik. A TFS 2015-ben nem érhető el.

Például: 1
System.TeamProject Annak a projektnek a neve, amelyhez ez a build vagy kiadás tartozik.

Például: Fabrikam
System.TeamProjectId Annak a projektnek az azonosítója, amelyhez ez a build vagy kiadás tartozik. A TFS 2015-ben nem érhető el.

Például: 79f5c12e-3337-4151-be41-a268d2c73344
System.ArtifactsDirectory Az a könyvtár, amelybe a kiadások telepítése során letöltődnek az összetevők. A címtár minden üzembe helyezés előtt törlődik, ha az összetevőket le kell tölteni az ügynökbe. Ugyanaz, mint az Agent.ReleaseDirectory és a System.DefaultWorkingDirectory.

Például: C:\agent\_work\r1\a
System.DefaultWorkingDirectory Az a könyvtár, amelybe a kiadások telepítése során letöltődnek az összetevők. A címtár minden üzembe helyezés előtt törlődik, ha az összetevőket le kell tölteni az ügynökbe. Ugyanaz, mint az Agent.ReleaseDirectory és a System.ArtifactsDirectory.

Például: C:\agent\_work\r1\a
System.WorkFolder Az ügynök munkakönyvtára, ahol az almappák minden buildhez vagy kiadáshoz létrejönnek. Ugyanaz, mint az Agent.RootDirectory és az Agent.WorkFolder.

Például: C:\agent\_work
System.Debug Ez az egyetlen rendszerváltozó , amelyet a felhasználók beállíthatnak. Állítsa igaz értékre a kiadás hibakeresési módban való futtatásához , hogy segítsen a hibakeresésben.

Például: true

Kiadás

Változó neve Description
Release.AttemptNumber A kiadás üzembe helyezésének száma ebben a szakaszban. A TFS 2015-ben nem érhető el.

Például: 1
Release.DefinitionEnvironmentId A fázis azonosítója a megfelelő kiadási folyamatban. A TFS 2015-ben nem érhető el.

Például: 1
Release.DefinitionId Annak a kiadási folyamatnak az azonosítója, amelyhez az aktuális kiadás tartozik. A TFS 2015-ben nem érhető el.

Például: 1
Release.DefinitionName Annak a kiadási folyamatnak a neve, amelyhez az aktuális kiadás tartozik.

Például: fabrikam-cd
Release.Deployment.RequestedFor Annak az identitásnak a megjelenítendő neve, amely aktiválta (elindította) a folyamatban lévő üzembe helyezést. A TFS 2015-ben nem érhető el.

Például: Mateo Escobedo
Release.Deployment.RequestedForemail Annak az identitásnak az e-mail-címe, amely aktiválta (elindította) a folyamatban lévő üzembe helyezést. A TFS 2015-ben nem érhető el.

Például: mateo@fabrikam.com
Release.Deployment.RequestedForId Annak az identitásnak az azonosítója, amely aktiválta (elindította) a folyamatban lévő üzembe helyezést. A TFS 2015-ben nem érhető el.

Például: 2f435d07-769f-4e46-849d-10d1ab9ba6ab
Release.DeploymentID Az üzembe helyezés azonosítója. Feladatonként egyedi.

Például: 254
Release.DeployPhaseID Annak a fázisnak az azonosítója, amelyben az üzembe helyezés fut.

Például: 127
Release.EnvironmentId A fázispéldány azonosítója egy olyan kiadásban, amelyben az üzembe helyezés jelenleg folyamatban van.

Például: 276
Release.EnvironmentName Annak a szakasznak a neve, amelyben az üzembe helyezés jelenleg folyamatban van.

Például: Dev
Release.EnvironmentUri A fázispéldány URI-ja egy olyan kiadásban, amelyben az üzembe helyezés jelenleg folyamatban van.

Például: vstfs://ReleaseManagement/Environment/276
Release.Environments. {stage-name}.status A szakasz üzembehelyezési állapota.

Például: InProgress
Release.PrimaryArtifactSourceAlias Az elsődleges összetevőforrás aliasa

Például: fabrikam\_web
Release.Reason Az üzembe helyezés oka. A támogatott értékek a következők:
ContinuousIntegration – a kiadás a build befejezése után a folyamatos üzembe helyezéssel kezdődött.
Manual – a kiadás manuálisan kezdődött.
None – az üzembe helyezés oka nincs megadva.
Scheduled - a kiadás ütemezés szerint kezdődött.
Release.ReleaseDescription A kiadás időpontjában megadott szöveges leírás.

Például: Critical security patch
Release.ReleaseId Az aktuális kiadási rekord azonosítója.

Például: 118
Release.ReleaseName Az aktuális kiadás neve.

Például: Release-47
Release.ReleaseUri Az aktuális kiadás URI-ja.

Például: vstfs://ReleaseManagement/Release/118
Release.ReleaseWebURL A kiadás URL-címe.

Például: https://dev.azure.com/fabrikam/f3325c6c/_release?releaseId=392&_a=release-summary
Release.RequestedFor A kiadást kiváltó identitás megjelenítendő neve.

Például: Mateo Escobedo
Release.RequestedForEmail A kiadást kiváltó identitás e-mail-címe.

Például: mateo@fabrikam.com
Release.RequestedForId A kiadást kiváltó identitás azonosítója.

Például: 2f435d07-769f-4e46-849d-10d1ab9ba6ab
Release.SkipArtifactsDownload Logikai érték, amely megadja, hogy kihagyja-e az összetevők letöltését az ügynökre.

Például: FALSE
Release.TriggeringArtifact.Alias A kiadást kiváltó összetevő aliasa. Ez üres, amikor a kiadást ütemezték vagy manuálisan aktiválták.

Például: fabrikam\_app

Kiadási fázis

Változó neve Description
Release.Environments. {stage name}. Állapot A kiadás üzembe helyezésének állapota egy adott szakaszban. A TFS 2015-ben nem érhető el.

Például: NotStarted

Ügynök

Változó neve Description
Agent.Name Az ügynöknek az ügynökkészletben regisztrált neve. Ez valószínűleg eltér a számítógép nevétől.

Például: fabrikam-agent
Agent.MachineName Annak a számítógépnek a neve, amelyen az ügynök konfigurálva van.

Például: fabrikam-agent
Agent.Version Az ügynökszoftver verziója.

Például: 2.109.1
Agent.JobName A futó feladat neve, például Kiadás vagy Build.

Például: Release
Agent.HomeDirectory Az a mappa, ahová az ügynök telepítve van. Ez a mappa tartalmazza az ügynök kódját és erőforrásait.

Például: C:\agent
Agent.ReleaseDirectory Az a könyvtár, amelybe a kiadás üzembe helyezése során letöltődnek az összetevők. A címtár minden üzembe helyezés előtt törlődik, ha az összetevőket le kell tölteni az ügynökre. Ugyanaz, mint a System.ArtifactsDirectory és a System.DefaultWorkingDirectory.

Például: C:\agent\_work\r1\a
Agent.RootDirectory Az ügynök munkakönyvtára, ahol az almappák minden buildhez vagy kiadáshoz létrejönnek. Ugyanaz, mint az Agent.WorkFolder és a System.WorkFolder.

Például: C:\agent\_work
Agent.WorkFolder Az ügynök munkakönyvtára, ahol az almappák minden buildhez vagy kiadáshoz létrejönnek. Ugyanaz, mint az Agent.RootDirectory és a System.WorkFolder.

Például: C:\agent\_work
Agent.DeploymentGroupId Annak a központi telepítési csoportnak az azonosítója, amellyel az ügynök regisztrálva van. Ez csak az üzembehelyezési csoport feladataiban érhető el. A TFS 2018 1. frissítésében nem érhető el.

Például: 1

Általános összetevő

Minden kiadásban hivatkozott összetevőhöz használhatja az alábbi összetevőváltozókat. Nem minden változó értelmezhető minden összetevőtípushoz. Az alábbi táblázat felsorolja az alapértelmezett összetevőváltozókat, és az összetevő típusától függően példákat tartalmaz az értékükre. Ha egy példa üres, az azt jelenti, hogy a változó nincs feltöltve az adott összetevőtípushoz.

Cserélje le a {alias} helyőrzőt az összetevő aliasához megadott értékre vagy a kiadási folyamathoz létrehozott alapértelmezett értékre.

Változó neve Description
Release.Artifacts. {alias}. Definícióazonosító A buildelési folyamat vagy adattár azonosítója.

Azure Pipelines-példa: 1
GitHub példa:fabrikam/asp
Release.Artifacts. {alias}. DefinitionName A buildelési folyamat vagy adattár neve.

Azure Pipelines-példa: fabrikam-ci
TFVC-példa: $/fabrikam
Git-példa: fabrikam
GitHub példa:fabrikam/asp (main)
Release.Artifacts. {alias}. BuildNumber A buildszám vagy a véglegesítés azonosítója.

Azure Pipelines-példa: 20170112.1
Jenkins/TeamCity példa: 20170112.1
TFVC-példa: Changeset 3
Git-példa: 38629c964
GitHub példa:38629c964
Release.Artifacts. {alias}. BuildId A buildazonosító.

Azure Pipelines-példa: 130
Jenkins/TeamCity példa: 130
GitHub példa:38629c964d21fe405ef830b7d0220966b82c9e11
Release.Artifacts. {alias}. BuildURI A build URL-címe.

Azure Pipelines-példa: vstfs://build-release/Build/130
GitHub példa:https://github.com/fabrikam/asp
Release.Artifacts. {alias}. SourceBranch Annak az ágnak a teljes elérési útja és neve, amelyből a forrást létrehozták.

Azure Pipelines-példa: refs/heads/main
Release.Artifacts. {alias}. SourceBranchName Csak annak az ágnak a neve, amelyből a forrást létrehozták.

Azure Pipelines-példa: main
Release.Artifacts. {alias}. SourceVersion A létrehozott véglegesítés.

Azure Pipelines-példa: bc0044458ba1d9298cdc649cb5dcf013180706f7
Release.Artifacts. {alias}. Repository.Provider Az a tárháztípus, amelyből a forrást létrehozták.

Azure Pipelines-példa: Git
Release.Artifacts. {alias}. RequestedForID A buildet aktiváló fiók azonosítója.

Azure Pipelines-példa: 2f435d07-769f-4e46-849d-10d1ab9ba6ab
Release.Artifacts. {alias}. RequestedFor A buildet kérő fiók neve.

Azure Pipelines-példa: Mateo Escobedo
Release.Artifacts. {alias}. Típus Az összetevőforrás típusa, például Build.

Azure Pipelines-példa: Build
Jenkins-példa: Jenkins
TeamCity-példa: TeamCity
TFVC-példa: TFVC
Git-példa: Git
GitHub példa:GitHub
Release.Artifacts. {alias}. PullRequest.TargetBranch A lekéréses kérelem céljaként megadott ág teljes elérési útja és neve. Ezt a változót csak akkor inicializálja a rendszer, ha a kiadást egy lekéréses kérelem folyamata aktiválja.

Azure Pipelines-példa: refs/heads/main
Release.Artifacts. {alias}. PullRequest.TargetBranchName Csak annak az ágnak a neve, amely egy lekéréses kérelem célja. Ezt a változót csak akkor inicializálja a rendszer, ha a kiadást egy lekéréses kérelem folyamata aktiválja.

Azure Pipelines-példa: main

Lásd még : Összetevő forrásának aliasa

Elsődleges összetevő

Az egyik összetevőt elsődleges összetevőként kell kijelölni egy kiadási folyamatban. A kijelölt elsődleges összetevő esetében az Azure Pipelines a következő változókat tölti ki.

Változó neve Ugyanaz, mint
Build.DefinitionId Release.Artifacts. {Elsődleges összetevő aliasa}. Definícióazonosító
Build.DefinitionName Release.Artifacts. {Elsődleges összetevő aliasa}. DefinitionName
Build.BuildNumber Release.Artifacts. {Elsődleges összetevő aliasa}. BuildNumber
Build.BuildId Release.Artifacts. {Elsődleges összetevő aliasa}. BuildId
Build.BuildURI Release.Artifacts. {Elsődleges összetevő aliasa}. BuildURI
Build.SourceBranch Release.Artifacts. {Elsődleges összetevő aliasa}. SourceBranch
Build.SourceBranchName Release.Artifacts. {Elsődleges összetevő aliasa}. SourceBranchName
Build.SourceVersion Release.Artifacts. {Elsődleges összetevő aliasa}. SourceVersion
Build.Repository.Provider Release.Artifacts. {Elsődleges összetevő aliasa}. Repository.Provider
Build.RequestedForID Release.Artifacts. {Elsődleges összetevő aliasa}. RequestedForID
Build.RequestedFor Release.Artifacts. {Elsődleges összetevő aliasa}. RequestedFor
Build.Type Release.Artifacts. {Elsődleges összetevő aliasa}. Típus
Build.PullRequest.TargetBranch Release.Artifacts. {Elsődleges összetevő aliasa}. PullRequest.TargetBranch
Build.PullRequest.TargetBranchName Release.Artifacts. {Elsődleges összetevő aliasa}. PullRequest.TargetBranchName

Alapértelmezett változók használata

Az alapértelmezett változókat kétféleképpen használhatja : paraméterekként a kiadási folyamatban vagy a szkriptekben lévő tevékenységekhez.

Az alapértelmezett változók közvetlenül használhatók a tevékenységek bemeneteként. Ha például át szeretné adni Release.Artifacts.{Artifact alias}.DefinitionName annak az összetevőforrásnak az aliasát, amelynek az aliasa ASPNET4.CI egy tevékenységnek, használja a következőt $(Release.Artifacts.ASPNET4.CI.DefinitionName): .

Using artifact variables in arguments to a PowerShell Script task

Ha alapértelmezett változót szeretne használni a szkriptben, először cserélje le az . alapértelmezett változóneveket a következőre _: . Ha például ki szeretné nyomtatni annak az összetevőforrásnak az összetevőváltozóját Release.Artifacts.{Artifact alias}.DefinitionName , amelynek aliasa egy PowerShell-szkriptben ASPNET4.CI , használja a következőt $env:RELEASE_ARTIFACTS_ASPNET4_CI_DEFINITIONNAME: .

Using artifact variables in an inline PowerShell script

Vegye figyelembe, hogy az összetevőforrás aliasának ASPNET4.CIeredeti nevét a következő váltja ASPNET4_CIfel: .

Az összes változó aktuális értékeinek megtekintése

  1. Nyissa meg a kiadás összegzésének folyamatnézetét, és válassza ki a kívánt szakaszt. A lépések listájában válassza a Feladat inicializálása lehetőséget.

    Opening the log for a release

  2. Ezzel megnyitja a lépéshez tartozó naplót. Görgessen le az ügynök által a feladathoz használt értékek megtekintéséhez.

    Viewing the values of the variables in a release

Kiadás futtatása hibakeresési módban

További információk megjelenítése a kiadás végrehajtásakor és a naplófájlokban a teljes kiadás vagy csak az egyes kiadási fázisban lévő feladatok hibakeresési módban való futtatásával. Ez segíthet a problémák és hibák megoldásában.

  • Egy teljes kiadás hibakeresési módjának elindításához adjon hozzá egy, az értékkel true elnevezett System.Debug változót egy kiadási folyamat Változók lapjára.

  • Ha egyetlen fázis hibakeresési módját szeretné elindítani, nyissa meg a Szakasz konfigurálása párbeszédpanelt a szakasz helyi menüjéből, és adjon hozzá egy, az értékkel true elnevezett System.Debug változót a Változók laphoz.

  • Másik lehetőségként hozzon létre egy változócsoportot, amely egy értékkel true elnevezett System.Debug változót tartalmaz, és kapcsolja ezt a változócsoportot egy kiadási folyamathoz.

Tipp

Ha azure RM-szolgáltatáskapcsolattal kapcsolatos hibaüzenetet kap, tekintse meg az Azure Resource Manager szolgáltatáskapcsolatok hibaelhárítását ismertető témakört.

Egyéni változók

Az egyéni változók különböző hatókörökben határozhatók meg.

  • Változócsoportok használatával megoszthatja az értékeket a projekt összes definíciójában. Akkor válasszon változócsoportot, ha ugyanazokat az értékeket kell használnia a projekt összes definíciójában, szakaszában és tevékenységében, és az értékeket egyetlen helyen szeretné módosítani. A változócsoportokat a Tár lapon határozhatja meg és kezelheti.

  • A kiadási folyamat változóinak használatával megoszthatja az értékeket az összes fázisban. Akkor válasszon egy kiadási folyamat változót, ha ugyanazt az értéket kell használnia a kiadási folyamat összes szakaszában és feladatában, és az értéket egyetlen helyen szeretné módosítani. Ezeket a változókat egy kiadási folyamat Változók lapján határozhatja meg és kezelheti. A Folyamatváltozók lapon nyissa meg a Hatókör legördülő listát, és válassza a "Kiadás" lehetőséget. Alapértelmezés szerint egy változó hozzáadásakor a kiadás hatóköre van megadva.

  • Szakaszváltozók használatával megoszthatja az értékeket az összes tevékenység között egy adott szakaszban. Szakaszszintű változót használjon az olyan értékekhez, amelyek szakaszonként változnak (és megegyeznek a fázis összes tevékenységéhez). Ezeket a változókat a kiadási folyamat Változók lapján határozhatja meg és kezelheti. A Folyamatváltozók lapon nyissa meg a Hatókör legördülő listát, és válassza ki a szükséges szakaszt. Változó hozzáadásakor állítsa a hatókört a megfelelő környezetre.

Ha egyéni változókat használ a projektben, a kiadási folyamatban és a fázishatókörben, a következőkhöz nyújt segítséget:

  • Kerülje az értékek duplikálását, így egyszerűbben frissítheti az összes előfordulást egyetlen műveletként.

  • A bizalmas értékeket oly módon tárolja, hogy a kiadási folyamatok felhasználói ne láthassanak vagy módosíthassanak. Jelöljön ki egy konfigurációs tulajdonságot biztonságos (titkos) változóként a padlock változó melletti (lakat) ikonra kattintva.

    Fontos

    A rejtett (titkos) változók értékei biztonságosan vannak tárolva a kiszolgálón, és a mentés után a felhasználók nem tekinthetik meg őket. Az üzembe helyezés során az Azure Pipelines kiadási szolgáltatás visszafejti ezeket az értékeket, amikor a feladatok hivatkoznak rájuk, és egy biztonságos HTTPS-csatornán keresztül továbbítja azokat az ügynöknek.

Megjegyzés

Az egyéni változók létrehozása felülírhatja a standard változókat. Például a PowerShell Elérési út környezeti változója. Ha egyéni Path változót hoz létre egy Windows ügynökön, az felülírja a $env:Path változót, és a PowerShell nem fog tudni futni.

Egyéni változók használata

Ha egyéni változókat szeretne használni a buildelési és kiadási feladatokban, egyszerűen foglalja zárójelbe a változó nevét, és írjon elé egy karaktert $ . Ha például egy adminUserName nevű változóval rendelkezik, a változó aktuális értékét beszúrhatja egy tevékenység $(adminUserName)paraméterébe.

Megjegyzés

Az ugyanabban a hatókörben lévő folyamathoz (például feladathoz vagy fázishoz) kapcsolt különböző csoportok változói ütköznek, és az eredmény kiszámíthatatlan lehet. Győződjön meg arról, hogy az összes változócsoportban különböző neveket használ a változókhoz.

Változók definiálása és módosítása szkriptben

Egy szkript változójának definiálásához vagy módosításához használja a naplózási task.setvariable parancsot. Vegye figyelembe, hogy a frissített változó értéke a végrehajtandó feladat hatókörére van korlátozva, és nem halad át a feladatokon vagy szakaszokon. A változónevek nagybetűssé alakulnak, a "." és a " karaktereket pedig a "_" karakter váltja fel.

Ez lehet például Agent.WorkFolder a következő: AGENT_WORKFOLDER. A Windows a következőképpen érheti el: %AGENT_WORKFOLDER% vagy $env:AGENT_WORKFOLDER. Linux és macOS rendszeren a .$AGENT_WORKFOLDER

Tipp

Szkriptet futtathat a következőn:

Batch-szkript

A változók és secret.Sauce a sauce változók beállítása

@echo ##vso[task.setvariable variable=sauce]crushed tomatoes
@echo ##vso[task.setvariable variable=secret.Sauce;issecret=true]crushed tomatoes with garlic

A változók olvasása

Argumentumok

"$(sauce)" "$(secret.Sauce)"

Script

@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)

Konzolkimenet a változók olvasásából:

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)