Folyamatfuttatási szekvencia
Azure DevOps Services | 2022. Azure DevOps Server – 2019. Azure DevOps Server
A futtatások egy folyamat egyetlen végrehajtását jelentik. A futtatás során a folyamat feldolgozásra kerül, az ügynökök pedig egy vagy több feladatot dolgoznak fel. A folyamatfuttatás feladatokból, lépésekből és tevékenységekből áll. Folyamatos integrációs (CI) és folyamatos kézbesítési (CD) folyamatokat is futtat.
Folyamat futtatásakor sok minden történik a háttérben. Bár gyakran nem kell tudni róluk, néha hasznos, ha a nagy képet. Magas szinten az Azure Pipelines a következőket teszi:
- Folyamat feldolgozása
- Egy vagy több ügynök kérése feladatok futtatásához
- Feladatok átadása ügynököknek és az eredmények összegyűjtése
Az ügynökoldalon minden feladathoz az ügynök a következőket fogja elvégezni:
- Felkészülés a feladatra
- A feladat minden lépésének futtatása
- Eredmények jelentése az Azure Pipelinesnak
A feladatok sikeresek, sikertelenek vagy megszakíthatók. Előfordulhatnak olyan helyzetek is, amikor egy feladat nem fejeződik be. Ennek megértése segíthet a problémák elhárításában.
Vizsgáljuk meg egyenként az egyes lépéseket.
Folyamat feldolgozása
Ha egy folyamatot futtatássá szeretne alakítani, az Azure Pipelines az alábbi sorrendben halad végig a következő lépéseken:
- Először bontsa ki a sablonok csomópontot , és értékelje ki a sablonkifejezéseket.
- Ezután értékelje ki a függőségeket a fázis szintjén a futtatandó első fázis(ok) kiválasztásához.
- A futtatásra kijelölt egyes fázisok esetében két dolog történik:
- A rendszer összegyűjti és ellenőrzi az összes feladatban használt összes erőforrást a futtatáshoz szükséges engedélyezéshez .
- Értékelje ki a függőségeket a feladat szintjén az első futtatandó feladat(ok) kiválasztásához.
- A futtatásra kijelölt feladatok esetében bontsa ki a több konfigurációt (
strategy: matrix
vagystrategy: parallel
YAML-ben) több futtatókörnyezeti feladatra. - Minden futtatókörnyezeti feladat esetében értékelje ki a feltételeket annak eldöntéséhez, hogy az adott feladat futtatható-e.
- Ügynök kérése minden jogosult futtatókörnyezeti feladathoz.
A futtatókörnyezeti feladatok befejezésekor az Azure Pipelines ellenőrzi, hogy vannak-e futtatható új feladatok. Ha igen, a 4–6. lépés ismétlődik az új feladatokkal. Hasonlóképpen, ahogy a szakaszok befejeződnek, a 2–6. lépés minden új szakasz esetében megismétlődik.
Ez a rendezés segít megválaszolni egy gyakori kérdést: miért nem használhatok bizonyos változókat a sablonparaméterekben? Az 1. lépés, a sablonbővítés, kizárólag a YAML-dokumentum szövegén működik. Ebben a lépésben nem léteznek futtatókörnyezeti változók. Az 1. lépés után a sablonparaméterek fel lettek oldva, és már nem léteznek.
Egy másik gyakori problémára is választ ad: miért nem tudok változókat használni a szolgáltatáskapcsolat/környezetnevek feloldásához? Az erőforrások a fázisok futásának megkezdése előtt vannak engedélyezve, így a fázis- és feladatszintű változók nem érhetők el. A folyamatszintű változók használhatók, de csak azok a változók, amelyek kifejezetten szerepelnek a folyamatban. A változócsoportok maguk is olyan erőforrások, amelyeket engedélyezni szükséges, így adataik szintén nem érhetők el az erőforrás-engedélyezés ellenőrzésekor.
Ügynök kérése
Amikor az Azure Pipelinesnak futtatnia kell egy feladatot, egy ügynököt fog kérni a készlettől. (A kiszolgálói feladatok kivételt képeznek, mivel magukon az Azure Pipelines-kiszolgálón futnak.) A Microsoft által üzemeltetett és a saját üzemeltetésű ügynökkészletek némileg eltérően működnek.
A Microsoft által üzemeltetett ügynökkészletre vonatkozó kérések
Először a szolgáltatás ellenőrzi a szervezet párhuzamos feladatait. Összeadja az összes futó feladatot az összes Microsoft által üzemeltetett ügynökön, és összehasonlítja azt a megvásárolt párhuzamos feladatok számával. Ha nincsenek elérhető párhuzamos tárolóhelyek, a feladatnak várnia kell egy tárolóhelyen, hogy felszabaduljon.
Ha elérhető egy párhuzamos pont, a feladat a kért ügynöktípusra lesz irányítva.
Elméletileg a Microsoft által üzemeltetett készlet egy óriási, globális gépkészlet.
(A valóságban sok különböző fizikai készlet van felosztva földrajzi hely és operációsrendszer-típus szerint.) vmImage
A kért (YAML-ben) vagy készletnév (a klasszikus szerkesztőben) alapján egy ügynök van kiválasztva.
A Microsoft-készlet összes ügynöke friss, új virtuális gép, amely még nem futtatott folyamatokat. A feladat befejezése után az ügynök virtuális gépe el lesz vetve.
Saját üzemeltetésű ügynökkészlet-kérelmek
A Microsoft által üzemeltetett készlethez hasonlóan a szolgáltatás először ellenőrzi a szervezet párhuzamos feladatait. Összeadja az összes futó feladatot az összes saját üzemeltetésű ügynökön, és összehasonlítja azt a megvásárolt párhuzamos feladatok számával. Ha nincsenek elérhető párhuzamos tárolóhelyek, a feladatnak várnia kell egy tárolóhelyen, hogy felszabaduljon.
Ha már elérhető egy párhuzamos pont, a saját üzemeltetésű készlet megvizsgál egy kompatibilis ügynököt. A saját üzemeltetésű ügynökök olyan képességeket kínálnak, amelyek sztringek, amelyek azt jelzik, hogy egy adott szoftver telepítve van, vagy a beállítások konfigurálva vannak. A folyamatnak vannak igényei, amelyek a feladat futtatásához szükséges képességek. Ha nem található olyan ingyenes ügynök, amelynek képességei megfelelnek a folyamat igényeinek, a feladat továbbra is várakozni fog. Ha a készletben nincsenek olyan ügynökök, amelyek képességei megfelelnek az igényeknek, a feladat sikertelen lesz.
A saját üzemeltetésű ügynököket általában futtatástól futtatásig használják újra. A saját üzemeltetésű ügynökök esetében a folyamatfeladatoknak lehetnek olyan mellékhatásai, mint a gyorsítótárak bemelegítése vagy a legtöbb véglegesítés már elérhető a helyi adattárban.
Felkészülés feladat futtatására
Miután egy ügynök elfogadta a feladatot, el kell végeznie néhány előkészítési feladatot. Az ügynök letölti (és gyorsítótárazza a következő alkalommal) a feladat futtatásához szükséges összes feladatot . Munkaterületet hoz létre a lemezen a futtatás során használt forráskód, összetevők és kimenetek tárolásához. Ezután megkezdi a lépések futtatását.
Minden lépés futtatása
A lépések egymás után, egymás után futnak. Mielőtt egy lépés elkezdődhet, az összes előző lépést be kell fejezni (vagy át kell hagyni).
A lépéseket tevékenységek hajtják végre. Maguk a feladatok Node.js vagy PowerShell-szkriptekként vannak implementálva. A feladatrendszer a bemeneteket és kimeneteket a háttérszkriptekhez irányítja. Emellett olyan gyakori szolgáltatásokat is biztosít, mint a rendszerútvonal módosítása és új folyamatváltozók létrehozása.
Minden lépés a saját folyamatában fut, elkülönítve azt a környezettől, amelyet az előző lépésekben hagyott. Ennek a lépésenkénti folyamatmodellnek köszönhetően a környezeti változók nem maradnak meg a lépések között. A feladatok és szkriptek azonban rendelkeznek egy olyan mechanizmussal, a amely kommunikál az ügynökkel: naplózási parancsokkal. Amikor egy feladat vagy szkript egy naplózási parancsot ír a standard kiírásához, az ügynök bármilyen műveletet végrehajt.
Van egy ügynökparancs új folyamatváltozók létrehozásához.
A folyamatváltozók a következő lépésben automatikusan környezeti változókká lesznek konvertálva.
Ha új változót myVar
szeretne beállítani a értékével myValue
, egy szkript a következőt teheti:
echo '##vso[task.setVariable variable=myVar]myValue'
Write-Host "##vso[task.setVariable variable=myVar]myValue"
Jelentések és eredmények gyűjtése
Minden lépés jelenthet figyelmeztetéseket, hibákat és hibákat.
A rendszer hibákat és figyelmeztetéseket jelent a folyamat összefoglalási oldalára, és a feladatot "hibákkal sikeresnek" jelöli.
A hibákat a rendszer az összefoglaló oldalon is jelenti, de a feladatot "sikertelenként" jelöli meg.
A lépés akkor hiba, ha explicit módon hibát jelez (parancs használatával ##vso
), vagy a szkriptet nem nulla kilépési kóddal zárja le.
A lépések futtatásakor az ügynök folyamatosan küld kimeneti sorokat a szolgáltatásnak. Ezért látható a konzol élő hírcsatornája. Az egyes lépések végén a lépés teljes kimenete naplófájlként is fel lesz töltve. A naplók a folyamat befejezése után tölthetők le. Az ügynök által feltölthető egyéb elemek összetevőket és teszteredményeket tartalmaznak. Ezek a folyamat befejezése után is elérhetők.
Állapot és feltételek
Az ügynök nyomon követi az egyes lépések sikerességét vagy sikertelenségét. A problémák vagy a sikertelen lépések sikerességével a feladat állapota frissül. A feladat mindig az egyes lépések "legrosszabb" eredményét tükrözi: ha egy lépés meghiúsul, a feladat is meghiúsul.
Egy lépés futtatása előtt az ügynök ellenőrzi a lépés feltételét annak megállapításához, hogy fut-e. Alapértelmezés szerint egy lépés csak akkor fut, ha a feladat állapota sikeres vagy problémákat tapasztal. Számos feladat rendelkezik olyan törlési lépésekkel, amelyeket a többi eseménytől függetlenül futtatni kell, így megadhatják az "always()" feltételt. A törlési lépések úgy is beállíthatók, hogy csak lemondáskor fussanak. Egy sikeres tisztítási lépés nem tudja menteni a feladatot a sikertelenségtől; a feladatok soha nem tudnak visszamenni a sikerhez a hiba beírása után.
Időkorlátok és a kapcsolat bontása
Minden feladat időtúllépéssel rendelkezik. Ha a feladat nem fejeződött be a megadott időpontban, a kiszolgáló megszakítja a feladatot. Megkísérli jelezni az ügynöknek, hogy állítsa le, és megszakítottként jelöli meg a feladatot. Az ügynökoldalon ez azt jelenti, hogy az összes hátralévő lépést megszakítja, és feltölti a fennmaradó eredményeket.
A feladatoknak egy megszakítási időtúllépés néven ismert türelmi időszakuk van, amelyben a lemondási munkákat el kell végezni. (Ne feledje, hogy a lépések megjelölhetők úgy, hogy megszakítás esetén is fussanak.) Ha az időtúllépés és a megszakítás időtúllépése után az ügynök nem jelentette, hogy a munka leállt, a kiszolgáló hibaként jelöli meg a feladatot.
Mivel az Azure Pipelines időről időre osztja el a munkát az ügynökgépek között, előfordulhat, hogy az ügynökök nem válaszolnak a kiszolgálóra. Ez akkor fordulhat elő, ha az ügynök gazdagépe eltűnik (áramkimaradás, a virtuális gép ki van kapcsolva), vagy ha hálózati hiba történik. A feltételek észlelésének elősegítése érdekében az ügynök percenként egyszer szívverési üzenetet küld, amely tájékoztatja a kiszolgálót, hogy még működik. Ha a kiszolgáló öt egymást követő percen át nem kap szívverést, feltételezi, hogy az ügynök nem tér vissza. A feladat hibaként van megjelölve, és tudatja a felhasználóval, hogy újra meg kell próbálkoznia a folyamatsal.
Futtatások kezelése a parancssori felületen keresztül
Az Azure DevOps CLI használatával listázhatja a projekt folyamatfuttatásait, és megtekintheti egy adott futtatás részleteit. A folyamatfuttatásban címkéket is hozzáadhat és törölhet.
Előfeltételek
- Telepítenie kell az Azure DevOps CLI-bővítményt az Azure DevOps CLI használatának első lépései című cikkben leírtak szerint.
- Jelentkezzen be az Azure DevOpsba a használatával
az login
. - A cikkben szereplő példákhoz állítsa be az alapértelmezett szervezetet a használatával
az devops configure --defaults organization=YourOrganizationURL
.
Folyamatfuttatások listázása
Listázhatja a projektben futó folyamatokat az az pipelines runs list paranccsal. Első lépésekért lásd: Ismerkedés az Azure DevOps CLI-vel.
az pipelines runs list [--branch]
[--org]
[--pipeline-ids]
[--project]
[--query-order {FinishTimeAsc, FinishTimeDesc, QueueTimeAsc, QueueTimeDesc, StartTimeAsc, StartTimeDesc}]
[--reason {all, batchedCI, buildCompletion, checkInShelveset, individualCI, manual, pullRequest, schedule, triggered, userCreated, validateShelveset}]
[--requested-for]
[--result {canceled, failed, none, partiallySucceeded, succeeded}]
[--status {all, cancelling, completed, inProgress, none, notStarted, postponed}]
[--tags]
[--top]
Választható paraméterek
- ág: Szűrés ehhez az ághoz tartozó buildek alapján.
- org: Azure DevOps-szervezet URL-címe. Az alapértelmezett szervezetet a paranccsal
az devops configure -d organization=ORG_URL
konfigurálhatja. Kötelező, ha nincs alapértelmezettként konfigurálva, vagy a használatávalgit config
vette fel. Példa:--org https://dev.azure.com/MyOrganizationName/
. - pipeline-ids: A buildeket listázni kívánt definíciók szóközzel elválasztott azonosítói.
- projekt: A projekt neve vagy azonosítója. Az alapértelmezett projektet a paranccsal
az devops configure -d project=NAME_OR_ID
konfigurálhatja. Kötelező, ha nincs alapértelmezettként konfigurálva, vagy a használatávalgit config
vette fel. - query-order: Határozza meg, hogy a folyamatfuttatások milyen sorrendben legyenek felsorolva. Az elfogadott értékek a következők: FinishTimeAsc, FinishTimeDesc, QueueTimeAsc, QueueTimeDesc, StartTimeAsc és StartTimeDesc.
- reason: Csak a megadott okból listázni kell a buildeket. Az elfogadott értékek a következők: batchedCI, buildCompletion, checkInShelveset, individualCI, manual, pullRequest, schedule, trigger, userCreated és validateShelveset.
- requested-for: Korlátozza a megadott felhasználó vagy csoport számára kért buildeket.
- result: A megadott eredménnyel rendelkező buildekre korlátozható. Az elfogadott értékek megszakítva, sikertelenek, nincsek, részbenSucceeded éssikeresek.
- status: Korlátozza a megadott állapotú buildeket. Az elfogadott értékek a következők: mind, megszakítás, befejezett, inProgress, none, notStarted és elhalasztva.
- címkék: Korlátozza a buildeket az egyes megadott címkékkel. Szóköz elválasztva.
- top: A listázandó buildek maximális száma.
Példa
A következő parancs felsorolja az első három folyamatfuttatást, amelyek állapota befejeződött és sikeres, és az eredményt táblaformátumban adja vissza.
az pipelines runs list --status completed --result succeeded --top 3 --output table
Run ID Number Status Result Pipeline ID Pipeline Name Source Branch Queued Time Reason
-------- ---------- --------- --------- ------------- -------------------------- --------------- -------------------------- ------
125 20200124.1 completed succeeded 12 Githubname.pipelines-java master 2020-01-23 18:56:10.067588 manual
123 20200123.2 completed succeeded 12 Githubname.pipelines-java master 2020-01-23 11:55:56.633450 manual
122 20200123.1 completed succeeded 12 Githubname.pipelines-java master 2020-01-23 11:48:05.574742 manual
Folyamatfuttatás részleteinek megjelenítése
A projektben futtatott folyamat részleteinek megjelenítése az az pipelines runs show paranccsal. Első lépésekért lásd: Ismerkedés az Azure DevOps CLI-vel.
az pipelines runs show --id
[--open]
[--org]
[--project]
Paraméterek
- id: Kötelező megadni. A folyamatfuttatás azonosítója.
- megnyitás: Nem kötelező. Megnyitja a builderedmények lapját a webböngészőben.
- org: Azure DevOps-szervezet URL-címe. Az alapértelmezett szervezetet a paranccsal
az devops configure -d organization=ORG_URL
konfigurálhatja. Kötelező, ha nincs alapértelmezettként konfigurálva, vagy a használatávalgit config
vette fel. Példa:--org https://dev.azure.com/MyOrganizationName/
. - projekt: A projekt neve vagy azonosítója. Az alapértelmezett projektet a paranccsal
az devops configure -d project=NAME_OR_ID
konfigurálhatja. Kötelező, ha nincs alapértelmezettként konfigurálva, vagy a használatávalgit config
vette fel.
Példa
Az alábbi parancs a 123 azonosítójú folyamatfuttatás részleteit mutatja be, és táblaformátumban adja vissza az eredményeket. Megnyitja a webböngészőt a builderedmények oldalára is.
az pipelines runs show --id 122 --open --output table
Run ID Number Status Result Pipeline ID Pipeline Name Source Branch Queued Time Reason
-------- ---------- --------- --------- ------------- -------------------------- --------------- -------------------------- --------
123 20200123.2 completed succeeded 12 Githubname.pipelines-java master 2020-01-23 11:55:56.633450 manual
Címke hozzáadása folyamatfuttatáshoz
Címkét adhat hozzá a projekt egyik folyamatfuttatásához az az pipelines run tag add paranccsal. Első lépésekért lásd: Ismerkedés az Azure DevOps CLI-vel.
az pipelines runs tag add --run-id
--tags
[--org]
[--project]
Paraméterek
- run-id: Kötelező. A folyamatfuttatás azonosítója.
- tags: Kötelező. A folyamatfuttatáshoz hozzáadandó címkék (vesszővel tagolt értékek).
- org: Azure DevOps-szervezet URL-címe. Az alapértelmezett szervezetet a paranccsal
az devops configure -d organization=ORG_URL
konfigurálhatja. Kötelező, ha nincs alapértelmezettként konfigurálva, vagy a használatávalgit config
vette fel. Példa:--org https://dev.azure.com/MyOrganizationName/
. - projekt: A projekt neve vagy azonosítója. Az alapértelmezett projektet a paranccsal
az devops configure -d project=NAME_OR_ID
konfigurálhatja. Kötelező, ha nincs alapértelmezettként konfigurálva, vagy a használatávalgit config
vette fel.
Példa
A következő parancs hozzáadja a YAML címkét a 123-as azonosítójú folyamatfuttatáshoz, és az eredményt JSON formátumban adja vissza.
az pipelines runs tag add --run-id 123 --tags YAML --output json
[
"YAML"
]
Folyamatfuttatási címkék listázása
Listázhatja a projektben futó folyamat címkéit az az pipelines run tag list paranccsal. Első lépésekért lásd: Ismerkedés az Azure DevOps CLI-vel.
az pipelines runs tag list --run-id
[--org]
[--project]
Paraméterek
- run-id: Kötelező. A folyamatfuttatás azonosítója.
- org: Azure DevOps-szervezet URL-címe. Az alapértelmezett szervezetet a paranccsal
az devops configure -d organization=ORG_URL
konfigurálhatja. Kötelező, ha nincs alapértelmezettként konfigurálva, vagy a használatávalgit config
vette fel. Példa:--org https://dev.azure.com/MyOrganizationName/
. - project: A projekt neve vagy azonosítója. Az alapértelmezett projektet konfigurálhatja a paranccsal
az devops configure -d project=NAME_OR_ID
. Kötelező, ha nincs alapértelmezettként konfigurálva, vagy a használatával veszi fel a elemetgit config
.
Példa
Az alábbi parancs felsorolja a folyamatfuttatás címkéit a 123-at azonosítóval, és az eredményt táblaformátumban adja vissza.
az pipelines runs tag list --run-id 123 --output table
Tags
------
YAML
Címke törlése a folyamatfuttatásból
Töröljön egy címkét a projektben futtatott folyamatból az az pipelines run tag delete paranccsal. Az első lépésekért lásd: Ismerkedés az Azure DevOps CLI-vel.
az pipelines runs tag delete --run-id
--tag
[--org]
[--project]
Paraméterek
- run-id: Kötelező. A folyamatfuttatás azonosítója.
- címke: Kötelező. A folyamatfuttatásból törölni kívánt címke.
- org: Azure DevOps-szervezet URL-címe. Az alapértelmezett szervezetet a paranccsal
az devops configure -d organization=ORG_URL
konfigurálhatja. Kötelező, ha nincs alapértelmezettként konfigurálva, vagy a használatával veszi fel a elemetgit config
. Példa:--org https://dev.azure.com/MyOrganizationName/
. - project: A projekt neve vagy azonosítója. Az alapértelmezett projektet konfigurálhatja a paranccsal
az devops configure -d project=NAME_OR_ID
. Kötelező, ha nincs alapértelmezettként konfigurálva, vagy a használatával veszi fel a elemetgit config
.
Példa
A következő parancs törli a YAML-címkét a 123-as azonosítójú folyamatfuttatásból.
az pipelines runs tag delete --run-id 123 --tag YAML
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: