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
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)
:
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.
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 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:
- Egy Windows-ügynök Batch-szkriptfeladatot vagy PowerShell-feladatot használ.
- MacOS- vagy Linux-ügynök Shell-szkriptfeladattal.
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
Válassza a Pipelines Releases (Folyamatok kiadásai)> lehetőséget, majd válassza ki a kiadási folyamatot.
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.
Ezzel megnyitja a lépés naplóit. Görgessen le a feladat ügynöke által használt értékek megtekintéséhez.
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
elnevezettSystem.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
true
elnevezettSystem.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.