Megosztás a következőn keresztül:


Változók használata klasszikus kiadási folyamatokban

Azure DevOps Services | Azure DevOps Server 2022 – Azure DevOps Server 2019

A változók klasszikus kiadási folyamatokban való használata kényelmes módja az adatok cseréjének és átvitelének a folyamat során. Minden változó sztringként van tárolva, és értéke változhat a folyamatfuttatások között.

A futtatókörnyezeti paraméterekkel ellentétben, amelyek csak a sablon elemzésekor érhetők el, a klasszikus kiadási folyamatok változói a teljes üzembehelyezési folyamat során elérhetők

Amikor feladatokat állít be az alkalmazás klasszikus kiadási folyamatának minden szakaszában való üzembe helyezéséhez, a változók a következő segítségére lehetnek:

  • Egyszerűsítse a testreszabást: Definiáljon egyszer egy általános üzembehelyezési folyamatot, és egyszerűen alakítsa át a különböző szakaszokhoz. Használjon például egy változót a webes üzembe helyezés kapcsolati sztring ábrázolásához, és szükség szerint módosítsa az értékét az egyes szakaszokhoz. Ezeket egyéni változóknak nevezzük.

  • Környezeti információk kihasználása: Hozzáférés a kiadási környezet részleteihez, például egy szakaszhoz, egy összetevőhöz vagy az üzembe helyezést futtató ügynökhöz. Előfordulhat például, hogy a szkriptekhez le kell tölteni a build helyét, vagy az ügynök munkakönyvtárát az ideiglenes fájlok létrehozásához. Ezeket alapértelmezett változóknak nevezzük.

Feljegyzés

YAML-folyamatok esetén további részletekért tekintse meg a felhasználó által definiált változókat és az előre definiált változókat .

Alapértelmezett változók

Az alapértelmezett változók alapvető információkat nyújtanak a végrehajtási környezetről a futó feladatok és szkriptek számára. Ezek a változók lehetővé teszik annak a rendszernek, kiadásnak, fázisnak vagy ügynöknek a részleteit, amelyben futnak.

A System.Debug kivételével az alapértelmezett változók írásvédettek, és az é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.

Rendszerváltozók

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

Példa: 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 a REST API-k meghívásához más szolgáltatásokon, például a Build és a Verzió vezérlőn.

Példa: https://dev.azure.com/fabrikam/
System.CollectionId Annak a gyűjteménynek az azonosítója, amelyhez ez a build vagy kiadás tartozik.

Példa: 6c6f3423-1c84-4625-995a-f7f143a1e43d
System.DefinitionId Annak a kiadási folyamatnak az azonosítója, amelyhez az aktuális kiadás tartozik.

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

Példa: Fabrikam
System.TeamProjectId Annak a projektnek az azonosítója, amelyhez ez a build vagy kiadás tartozik.

Példa: 79f5c12e-3337-4151-be41-a268d2c73344
System.ArtifactsDirectory Az a könyvtár, amelybe az összetevők letöltődnek a kiadás üzembe helyezése során. 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élda: C:\agent\_work\r1\a
System.DefaultWorkingDirectory Az a könyvtár, amelybe az összetevők letöltődnek a kiadás üzembe helyezése során. 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élda: 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élda: C:\agent\_work
System.Debug Ez az egyetlen rendszerváltozó, amelyet a felhasználók állíthatnak be . Állítsa ezt igaz értékre, hogy hibakeresési módban futtassa a kiadást.

Példa: true

Kiadási változók

Változó neve Leírás
Release.AttemptNumber A kiadás üzembe helyezésének száma ebben a szakaszban.

Példa: 1
Release.DefinitionEnvironmentId A fázis azonosítója a megfelelő kiadási folyamatban.

Példa: 1
Release.DefinitionId Annak a kiadási folyamatnak az azonosítója, amelyhez az aktuális kiadás tartozik.

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

Példa: fabrikam-cd
Release.Deployment.RequestedFor A jelenleg folyamatban lévő üzembe helyezést aktiváló (elindított) identitás megjelenítendő neve.

Példa: Mateo Escobedo
Release.Deployment.RequestedForemail A jelenleg folyamatban lévő üzembe helyezést aktiváló (elindított) identitás e-mail-címe.

Példa: mateo@fabrikam.com
Release.Deployment.RequestedForId Annak az identitásnak az azonosítója, amely aktiválta (elindította) a jelenleg folyamatban lévő üzembe helyezést.

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

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

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

Példa: 276
Release.EnvironmentName Annak a fázisnak a neve, amelyre az üzembe helyezés jelenleg folyamatban van.

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

Példa: vstfs://ReleaseManagement/Environment/276
Release.Environments. {stage-name}.status A fázis üzembe helyezési állapota.

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

Példa: 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ésben kezdődött.
Manual - a kiadás manuálisan indult el.
None - az üzembehelyezési ok nincs megadva.
Schedule - a kiadás ütemezésből indult.
Release.ReleaseDescription A kiadás időpontjában megadott szöveges leírás.

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

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

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

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

Példa: 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élda: Mateo Escobedo
Release.RequestedForemail A kiadást kiváltó identitás e-mail-címe.

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

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

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

Példa: fabrikam\_app

Kiadási fázis változói

Változó neve Leírás
Release.Environments. {stage name}. Állapot A kiadás üzembe helyezésének állapota egy adott szakaszban.

Példa: NotStarted

Ügynökváltozók

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

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

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

Példa: 2.109.1
Agent.JobName A futó feladat neve, például kiadás vagy build.

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

Példa: C:\agent
Agent.ReleaseDirectory Az a könyvtár, amelybe az összetevők letöltődnek a kiadás üzembe helyezése során. 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 a System.ArtifactsDirectory és a System.DefaultWorkingDirectory.

Példa: 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élda: 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élda: C:\agent\_work
Agent.DeploymentGroupId Annak a telepítési csoportnak az azonosítója, amellyel az ügynök regisztrálva van. Ez csak az üzembehelyezési csoport feladataiban érhető el.

Példa: 1

Artifacts változók kiadása

A kiadásban hivatkozott összes összetevőhöz a következő összetevőváltozókat használhatja. Vegye figyelembe, hogy nem minden változó vonatkozik minden összetevőtípusra. Az alábbi táblázat felsorolja az alapértelmezett összetevőváltozókat, és példákat tartalmaz az értékükre az összetevő típusa alapján. Ha egy példa üres, az azt jelzi, hogy a változó nem alkalmazható az adott összetevőtípusra.

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

Változó neve Leírás
Release.Artifacts. {alias}. Definícióazonosító A buildelési folyamat vagy adattár azonosítója. Példák:

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

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

Azure Pipelines: 20170112.1
Jenkins: 20170112.1
TFVC: Changeset 3
Git: 38629c964
GitHub: 38629c964
Release.Artifacts. {alias}. BuildId A build azonosítója. Példák:

Azure Pipelines: 130
Jenkins: 130
GitHub: 38629c964d21fe405ef830b7d0220966b82c9e11
Release.Artifacts. {alias}. BuildURI A build URL-címe. Példák:

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

Azure Pipelines: refs/heads/main
Release.Artifacts. {alias}. SourceBranchName Csak annak az ágnak a neve, amelyből a forrás készült. Példák:

Azure Pipelines: main
Release.Artifacts. {alias}. SourceVersion A létrehozott véglegesítés. Példák:

Azure Pipelines: bc0044458ba1d9298cdc649cb5dcf013180706f7
Release.Artifacts. {alias}. Adattár.Provider Az adattár típusa, amelyből a forrás készült. Példák:

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

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

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

Azure Pipelines: Build
Jenkins: Jenkins
TFVC: TFVC
Git: Git
GitHub: GitHub
Release.Artifacts. {alias}. PullRequest.TargetBranch A lekéréses kérelem célhelyeként megadott ág teljes elérési útja és neve. Ez a változó csak akkor inicializálódik, ha a kiadást egy lekéréses kérelem folyamata aktiválja. Példák:

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

Azure Pipelines: main

Elsődleges összetevő változói

A klasszikus kiadási folyamatokban, ha több összetevőt használ, kijelölhet egyet elsődleges összetevőként. Az Azure Pipelines ezután feltölti a következő változókat a kijelölt elsődleges összetevőhöz.

Változó neve Akárcsak
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}. Adattár.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: a kiadási folyamat tevékenységeinek paramétereiként vagy a szkripteken belül.

Az alapértelmezett változót közvetlenül egy tevékenység bemeneteként használhatja. Ha például argumentumként szeretne átadni Release.Artifacts.{Artifact alias}.DefinitionName egy Olyan összetevő PowerShell-feladatának, amelynek aliasa ASPNET4.CI , akkor a következőt kell használnia $(Release.Artifacts.ASPNET4.CI.DefinitionName):

Képernyőkép az alapértelmezett változó argumentumként való használatáról.

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 egy powerShell-szkriptben az aliasaként ASPNET4.CI összetevő értékét Release.Artifacts.{Artifact alias}.DefinitionName szeretné kinyomtatni, használja a következőt$env:RELEASE_ARTIFACTS_ASPNET4_CI_DEFINITIONNAME: . Vegye figyelembe, hogy az eredeti alias ( ASPNET4.CI) helyébe ASPNET4_CI lép.

Képernyőkép egy alapértelmezett változó beágyazott PowerShell-szkriptben való használatáról.

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: Változócsoportok használatával oszthat meg értékeket a projekt összes definíciójában. Ez akkor hasznos, ha ugyanazokat az értékeket szeretné használni a projekt definícióiban, szakaszaiban és tevékenységeiben, és egyetlen helyről szeretné kezelni őket. Változócsoportok definiálása és kezelése a Folyamattárban>.

  • Kiadási folyamat változói: A kiadási folyamat változóinak használatával megoszthatja az értékeket a kiadási folyamat minden szakaszában. Ez olyan helyzetekben ideális, ahol a szakaszok és tevékenységek konzisztens értékére van szüksége, és egyetlen helyről frissítheti azt. Ezeket a változókat a kiadási folyamat Változók lapján definiálhatja és kezelheti. A Folyamatváltozók lapon állítsa a Hatókör legördülő listát Kiadás értékre változó hozzáadásakor.

  • Fázisváltozók: Szakaszváltozók használatával oszthat meg értékeket egy kiadási folyamat egy adott szakaszán belül. Ez olyan értékek esetében hasznos, amelyek szakaszonként eltérőek, de konzisztensek egy adott szakasz összes tevékenységében. Ezeket a változókat a kiadási folyamat Változók lapján definiálhatja és kezelheti. A Folyamatváltozók lapon állítsa a Hatókör legördülő listát a megfelelő környezetre változó hozzáadásakor.

A projekt, a kiadási folyamat és a fázisszint egyéni változóinak használata segít a következőkben:

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

  • Biztonságossá teheti a bizalmas értékeket, ha megakadályozza, hogy a felhasználók megtekintse vagy módosítsák őket. Ha biztonságosként (titkosként) szeretne megjelölni egy változót, válassza a lakat változó melletti ikont.

    Fontos

    A rejtett változók (titkos kulcsok) értékeit a rendszer biztonságosan tárolja 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 visszafejti ezeket az értékeket, amikor feladatok hivatkoznak rájuk, és egy biztonságos HTTPS-csatornán keresztül továbbítja azokat az ügynöknek.

Feljegyzés

Az egyéni változók létrehozása felülírhatja a standard változókat. Ha például egyéni Elérési út változót határoz meg egy Windows-ügynökön, az felülírja a $env:Path változót, ami megakadályozhatja, hogy a PowerShell megfelelően fusson.

Egyéni változók használata

Ha egyéni változókat szeretne használni a feladatokban, zárójelbe kell tenni a változó nevét, és meg kell előznie egy $ karakterrel. Ha például egy adminUserName nevű változóval rendelkezik, az aktuális értékét beszúrhatja egy tevékenységbe.$(adminUserName)

Feljegyzés

Az azonos hatókörű folyamathoz (például feladathoz vagy fázishoz) kapcsolódó különböző csoportok változói ütközhetnek, ami kiszámíthatatlan eredményekhez vezethet. Ennek elkerülése érdekében győződjön meg arról, hogy az összes változócsoport változói egyedi névvel rendelkeznek.

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. A frissített változó értéke hatóköre a végrehajtás alatt álló feladatra terjed ki, és nem marad meg a feladatok vagy szakaszok között. Vegye figyelembe, hogy a változónevek nagybetűssé alakulnak, a "." és a " helyett "_".

Például a Agent.WorkFolder következő lesz AGENT_WORKFOLDER: .

  • Windows rendszeren ezt a változót %AGENT_WORKFOLDER% a következőképpen vagy $env:AGENT_WORKFOLDERúgy érheti el.
  • Linuxon és macOS rendszeren használja a .$AGENT_WORKFOLDER

Tipp.

Szkriptet a következőn futtathat:

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

Szkript

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

A változók olvasásának konzolkimenete:

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)

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

  1. Válassza a Pipelines Releases (Folyamatok kiadásai)> lehetőséget, majd válassza ki a kiadási folyamatot.

  2. Nyissa meg a kiadás összefoglaló né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.

    Képernyőkép az inicializálási feladat lépésről.

  3. Ezzel megnyitja a lépés naplóit. Görgessen le a feladat ügynöke által használt értékek megtekintéséhez.

    Képernyőkép az ügynök által használt változókról.

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

Ha hibakeresési módban futtat egy kiadást, azzal segíthet a problémák vagy hibák diagnosztizálásában és megoldásában, ha további információkat jelenít meg a kiadás végrehajtása során. Engedélyezheti a hibakeresési módot a teljes kiadáshoz, vagy csak egy adott kiadási fázisban lévő feladatokhoz.

  • Ha egy teljes kiadás hibakeresési módját szeretné engedélyezni, adjon hozzá egy értéket true tartalmazó System.Debug változót a kiadási folyamat Változók lapjára.

  • Ha engedélyezni szeretné a hibakeresési módot egy adott szakaszhoz, nyissa meg a Szakasz konfigurálása párbeszédpanelt a szakasz helyi menüjében, és adjon hozzá egy, az értékkel true elnevezett System.Debug változót a Változók lapra.

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

Tipp.

Ha hibát tapasztal az Azure ARM-szolgáltatáskapcsolatokkal kapcsolatban, további részletekért lásd : Az Azure Resource Manager szolgáltatáskapcsolatainak hibaelhárítása.