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


Folyamatfuttatások

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

Ez a cikk az Azure Pipelines-folyamatfuttatások tevékenységeinek sorrendjét ismerteti. A futtatás egy folyamat egy végrehajtását jelöli. A folyamatos integrációs (CI) és a folyamatos kézbesítési (CD) folyamatok egyaránt futtatásokból állnak. A futtatás során az Azure Pipelines feldolgozza a folyamatot, az ügynökök pedig egy vagy több feladatot, lépést és feladatot dolgoznak fel.

Folyamat áttekintését bemutató diagram.

Minden futtatáshoz az Azure Pipelines:

  • Feldolgozza a folyamatot.
  • Egy vagy több ügynököt kér le a feladatok futtatására.
  • Leküldi a feladatokat az ügynököknek, és összegyűjti az eredményeket.

Minden feladathoz egy ügynök:

  • Felkészül a feladatra.
  • A feladat minden lépését futtatja.
  • Jelentések eredményei.

A feladatok sikeresek, sikertelenek, megszakíthatók vagy nem fejeződhetnek be. Ezeknek az eredményeknek a megértése segíthet a problémák elhárításában.

A következő szakaszok részletesen ismertetik a folyamatfuttatási folyamatot.

Folyamatfeldolgozás

A kibontott YAML-sablonokat bemutató diagram.

Egy futtatási folyamat feldolgozásához először az Azure Pipelines a következő:

  1. Kibontja a sablonokat , és kiértékeli a sablonkifejezéseket.
  2. Kiértékeli a függőségeket a fázis szintjén, és kiválasztja az első futtatandó szakaszt.

Az Azure Pipelines minden egyes futtatandó szakasz esetében:

  1. Összegyűjti és ellenőrzi az összes feladat-erőforrást a futtatáshoz szükséges engedélyezéshez .
  2. A feladat szintjén kiértékeli a függőségeket, és kiválasztja az első futtatandó feladatot.

Az Azure Pipelines a következő tevékenységeket hajtja végre minden egyes futtatandó feladathoz:

  1. A YAML strategy: matrix - vagy strategy: parallel többkonfigurációkat több futtatókörnyezeti feladatra bontja ki.
  2. Kiértékeli a feltételeket annak eldöntéséhez, hogy a feladat futtatható-e.
  3. Ügynököt kér minden jogosult feladathoz.

A futtatókörnyezeti feladatok befejeződése után az Azure Pipelines ellenőrzi, hogy vannak-e futtatható új feladatok. Hasonlóképpen, ahogy a szakaszok befejeződnek, az Azure Pipelines ellenőrzi, hogy vannak-e további szakaszok.

Változók

A feldolgozási sorrend megértése egyértelművé teszi, hogy miért nem használhat bizonyos változókat a sablonparaméterekben. Az első sablonbővítési lépés csak a YAML-fájl szövegén működik. A futásidejű változók még nem léteznek ebben a lépésben. A lépés után a sablonparaméterek már feloldódnak.

Nem használhat változókat a szolgáltatáskapcsolatok vagy a környezetnevek feloldásához, mert a folyamat engedélyezi az erőforrásokat, mielőtt egy fázis elindulhat. A fázis- és feladatszintű változók még nem érhetők el. A változócsoportok maguk is engedélyköteles erőforrások, így az adataik nem érhetők el az erőforrás-engedélyezés ellenőrzésekor.

Olyan folyamatszintű változókat is használhat, amelyek kifejezetten szerepelnek a folyamaterőforrás-definícióban. További információ: Folyamaterőforrás metaadatai előre definiált változókként.

Ügynökök

Amikor az Azure Pipelinesnak futtatnia kell egy feladatot, egy ügynököt kér le a készletből. A folyamat másképp működik a Microsoft által üzemeltetett és a saját üzemeltetésű ügynökkészletek esetében.

Feljegyzés

A kiszolgálói feladatok nem használnak készletet, mert maguk az Azure Pipelines-kiszolgálón futnak.

A készletkijelölést bemutató diagram.

Párhuzamos feladatok

Először is az Azure Pipelines ellenőrzi a szervezet párhuzamos feladatait. A szolgáltatás összeadja az összes futó feladatot az összes ügynökön, és összehasonlítja azt a megadott vagy megvásárolt párhuzamos feladatok számával.

Ha nincsenek elérhető párhuzamos pontok, a feladatnak várnia kell egy ponton, hogy felszabadítsa. Ha elérhető egy párhuzamos pont, a feladat a megfelelő ügynöktípusra irányítja.

Microsoft által üzemeltetett ügynökök

Elméletileg a Microsoft által üzemeltetett készlet egy globális gépkészlet, bár fizikailag sok különböző készletet osztott fel földrajzi hely és operációs rendszer típusa szerint. A kért YAML vmImage vagy klasszikus szerkesztőkészlet neve alapján az Azure Pipelines kiválaszt egy ügynököt.

A Microsoft-készlet összes ügynöke friss, új virtuális gépek (virtuális gépek), amelyek soha nem futtattak folyamatokat. Amikor a feladat befejeződött, az ügynök virtuális gépe el lesz vetve.

Saját üzemeltetésű ügynökök

Miután elérhető egy párhuzamos pont, az Azure Pipelines megvizsgálja a kompatibilis ügynök saját üzemeltetésű készletét. A saját üzemeltetésű ügynökök olyan képességeket kínálnak, amelyek azt jelzik, hogy az adott szoftver telepítve van, vagy a beállítások konfigurálva vannak. A folyamat igényekkel rendelkezik, amelyek a feladat futtatásához szükséges képességek.

Ha az Azure Pipelines nem talál olyan ingyenes ügynököt, amelynek képességei megfelelnek a folyamat igényeinek, a feladat továbbra is várakozik. Ha a készletben nincsenek olyan ügynökök, amelyek képességei megfelelnek az igényeknek, a feladat meghiúsul.

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 mellékhatásai, például a gyorsítótárak bemelegítése vagy a legtöbb véglegesítés már elérhető a helyi adattárban.

Feladat előkészítése

Miután egy ügynök elfogadta a feladatot, a következő előkészítési munkát végzi:

  1. Letölti a feladat futtatásához szükséges összes feladatot , és gyorsítótárazza őket későbbi használatra.
  2. 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.

Lépés végrehajtása

Az ügynök sorrendben futtatja a lépéseket. Mielőtt elkezdődhet egy lépés, az összes korábbi lépést be kell fejezni vagy ki kell hagyni.

Az egyes tevékenységek futtatását bemutató diagram.

A lépéseket tevékenységek hajtják végre, amelyek lehetnek Node.js, PowerShell vagy más szkriptek. A feladatrendszer a bemeneteket és kimeneteket a háttérszkriptekhez irányítja. A feladatok olyan gyakori szolgáltatásokat is biztosítanak, 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 a környezetét az előző lépésektől. 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 használhatják a naplózási parancsok nevű mechanizmust az ügynökkel való kommunikációhoz. Amikor egy feladat vagy szkript egy naplózási parancsot ír a szabványos kimenetre, az ügynök bármilyen műveletet végrehajt, amelyet a parancs kér.

A naplózási paranccsal új folyamatváltozókat hozhat létre. A folyamatváltozók a következő lépésben automatikusan környezeti változókká alakulnak. A szkriptek az alábbi értékekkel myValue állíthatnak be új változókatmyVar:

echo '##vso[task.setVariable variable=myVar]myValue'
Write-Host "##vso[task.setVariable variable=myVar]myValue"

Eredményjelentés és -gyűjtemény

Minden lépés jelenthet figyelmeztetéseket, hibákat és hibákat. A lépés hibajelentéseket és figyelmeztetéseket jelent a folyamat összegzési oldalán, ha a feladatokat sikeresként jelöli meg a hibákkal, vagy a feladat sikertelenként való megjelölésével jelenti a hibákat. Egy lépés meghiúsul, ha egy parancs használatával ##vso explicit módon jelenti a hibát, vagy a szkriptet egy nem aero kilépési kóddal zárja le.

A lépések futtatásakor az ügynök folyamatosan küld kimeneti sorokat az Azure Pipelinesnak, hogy láthassa a konzol élő hírcsatornáját. Minden lépés végén a rendszer a lépés teljes kimenetét naplófájlként tölti fel. A folyamat befejeződése után letöltheti a naplót.

Diagram, amely bemutatja, hogyan haladnak a naplók és az eredmények ügynökről szolgáltatásra.

Az ügynök feltölthet összetevőket és teszteredményeket is, amelyek 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. Ahogy a lépések sikeresek a problémák vagy a sikertelenség esetén, 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.

Mielőtt az ügynök futtatna egy lépést, ellenőrzi a lépés állapotát annak megállapításához, hogy a lépésnek futnia kell-e. Alapértelmezés szerint egy lépés csak akkor fut le, ha a feladat állapota sikeres vagy probléma esetén sikeres, de más feltételeket is megadhat.

Sok feladat rendelkezik olyan törlési lépésekkel, amelyeket a többi művelettől függetlenül futtatni kell, hogy meg tudják adni a feltételt always(). A törlés vagy más lépések is beállíthatók úgy, hogy csak lemondáskor fussanak.

A sikeres törlési lépés nem tudja menteni a feladatot a sikertelenségtől. A feladatok a hiba beírása után soha nem léphetnek vissza a sikerhez.

Időkorlátok és a kapcsolat bontása

Minden feladat időtúllépéssel rendelkezik. Ha a feladat nem fejeződik be a megadott időpontban, a kiszolgáló megszakítja a feladatot. A kiszolgáló megkísérli jelezni az ügynök leállását, és megszakítottként jelöli meg a feladatot. Az ügynök oldalán a lemondás azt jelenti, hogy az összes fennmaradó lépést megszakítja, és feltölti a fennmaradó eredményeket.

A feladatoknak van egy lemondási időtúllépés nevű türelmi időszaka, amelyben a lemondási munka befejeződik. A futtatás lépéseit a lemondáskor is megjelölheti. A feladat időtúllépése és a megszakítási időtúllépés után, ha az ügynök nem jelenti, hogy leállt a munka, a kiszolgáló hibaként jelöli meg a feladatot.

Az ügynökgépek nem válaszolhatnak a kiszolgálóra, ha az ügynök gazdagépe áramkimaradást vagy ki van kapcsolva, vagy hálózati hiba történt. Ezeknek a feltételeknek a észleléséhez az ügynök percenként egyszer szívverési üzenetet küld, hogy tájékoztassa a kiszolgálót, hogy még működik.

Ha a kiszolgáló öt egymást követő percig 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 az Azure DevOps parancssori felületén keresztül

A folyamatfuttatásokat az Azure DevOps parancssori felületén futó az pipelines-futtatások használatával kezelheti. Első lépésként tekintse meg az Azure DevOps parancssori felület használatának első lépéseit. A teljes parancshivatkozásért tekintse meg az Azure DevOps CLI parancsreferenciáit.

Az alábbi példák bemutatják, hogyan használhatja az Azure DevOps CLI-t a projekt folyamatfuttatásainak listázására, egy adott futtatás részleteinek megtekintésére és a folyamatfuttatások címkéinek kezelésére.

Előfeltételek

  • Az Azure CLI és az Azure DevOps CLI bővítmény telepítése az Azure DevOps CLI használatának első lépéseiben leírtak szerint történik. Jelentkezzen be az Azure-ba a .az login
  • Az alapértelmezett szervezet a következő használatával az devops configure --defaults organization=<YourOrganizationURL>van beállítva: .

Folyamatfuttatások listázása

Listázhatja a projektben futó folyamatokat az az pipelines runs list paranccsal.

Az alábbi parancs felsorolja az első három folyamatfuttatást, amelyek állapota befejeződött és sikeres volt, é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 folyamatok részleteinek megjelenítése az az pipelines run show paranccsal.

Az alábbi parancs a 123-at azonosítóval futtatott folyamat részleteit mutatja be, táblaformátumban adja vissza az eredményeket, és megnyitja a webböngészőt az Azure Pipelines buildelési eredményoldalán.

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 a folyamatfuttatáshoz

Címkét adhat hozzá a projektben futtatott folyamathoz az az pipelines run tag add paranccsal.

Az alábbi 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

A projektben futtatott folyamatok címkéinek listázása az az pipelines run tag list paranccsal. Az alábbi parancs felsorolja a folyamat 123-at azonosító címkéit, é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

A projektben futtatott folyamat címkéjének törlése az az pipelines run tag delete paranccsal. Az alábbi 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