Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022
Az Azure Pipelines-feladatok lépésekből állnak, amelyek lehetnek feladatok vagy szkriptek. A feladatok előre csomagolt szkriptek vagy eljárások, amelyek műveletet hajtanak végre, vagy bemenetek készletét használják a folyamatautomatizálás definiálásához. Ez a cikk a folyamattevékenységeket és azok használatát ismerteti. A sémainformációkat a steps.task definícióban találja.
Az Azure Pipelines számos beépített feladatot tartalmaz, amelyek alapvető buildelési és üzembe helyezési forgatókönyveket tesznek lehetővé. Az elérhető beépített Azure Pipelines-tevékenységek listáját az Azure Pipelines tevékenységreferenciájában találja. A Visual Studio Marketplace-ről is telepíthet feladatokat, vagy egyéni feladatokat is létrehozhat.
A feladat minden lépése alapértelmezés szerint ugyanabban a környezetben fut, akár a gazdagépen, akár egy feladattárolóban. A lépéscélok használatával szabályozhatja az egyes tevékenységek környezetét. Ha néhány feladatot párhuzamosan szeretne futtatni több ügynökön, vagy ügynök használata nélkül, olvassa el a feladatok megadása a folyamatban című témakört.
Feladatkezelés
A feladatok az Azure DevOps szervezeti szintjén érhetők el és telepíthetők. Csak a szervezet számára létező feladatokat és feladatverziókat használhatja.
A tevékenységkorlátozások> alatt letilthatja a beépített feladatokat, a Marketplace-feladatokat vagy mindkettőt a Szervezeti beállítások>folyamatbeállításai között. Ha letiltja a beépített és a Marketplace-feladatokat is, csak az Azure DevOps csomóponti parancssori felületével telepített feladatok érhetők el.
A Marketplace-feladatok letiltása segíthet a folyamatok biztonságának javításában. A legtöbb esetben nem szabad letiltania a beépített feladatokat. További információ: Az elérhető tevékenységek szabályozása.
Egyéni tevékenységek
A Visual Studio Marketplace számos bővítményt kínál, amelyek az Azure Pipelines feladatkatalógusának kibővítéséhez telepíthetők. Egyéni feladatokat is létrehozhat. További információ: Egyéni folyamatok feladatbővítményének hozzáadása.
A YAML-folyamatokban név szerint hivatkozik a feladatokra. Ha az egyéni tevékenység neve megegyezik egy beépített tevékenységnévvel, a folyamat a beépített feladatot használja. A helyzet elkerülése érdekében hivatkozhat az Ön egyéni feladatára a feladat létrehozásakor rendelt egyedi GUID használatával. További információ: task.json összetevőinek ismertetése.
Feladatverziók
A feladatok verziószámozottak, és meg kell adnia a csővezetékben használt feladatok fő verzióját. A verzió megadása segít megelőzni a feladat új verzióinak kiadásával kapcsolatos problémákat.
A csővezetékek automatikusan frissülnek az új kisebb feladat-verziók, például az 1.2-1.3-as verzió használatára. A kisebb feladatverziók általában visszafelé kompatibilisek, de bizonyos esetekben kiszámíthatatlan hibák fordulhatnak elő, amikor egy tevékenység automatikusan frissül.
Ha megjelenik egy új fő feladatverzió, például a 2.0, a folyamat a megadott fő verziót használja tovább, amíg manuálisan át nem állítja az új fő verzióra. A build naplók riasztásokat adnak, ha új főbb verziók érhetők el. Csak a szervezethez tartozó feladatverziókat használhatja.
A YAML-ben a feladat nevében adja meg a főverziót @ . Ha például a feladat 2. verzióját szeretné használni, adja megPublishTestResults.PublishTestResults@2 Megadhatja, hogy melyik alverziót szeretné használni, ha megadja a feladat teljes verziószámát a @következő után: például GoTool@0.3.1.
Tevékenységbeállítások
A YAML-folyamat task lépéseihez az alábbi tulajdonságok érhetők el. További információ: steps.task definition.
| Ingatlan | Típus | Description |
|---|---|---|
task |
karakterlánc | Első tulajdonságként kötelező megadni. A futtatni kívánt feladat neve. |
inputs |
karakterlánc | A tevékenység bemenetei név-érték párok használatával. |
condition |
karakterlánc | A tevékenység futtatásának feltételei. |
continueOnError |
Boolean | Hibás állapot esetén is folytatódjon-e a futás? |
displayName |
karakterlánc | A feladat ember által olvasható neve. |
enabled |
Boolean | Azt határozza meg, hogy a feladat futtatásakor fut-e a feladat. |
env |
karakterlánc | A folyamatkörnyezetbe leképezendő változók név-érték párok használatával. |
name |
karakterlánc | A lépés azonosítója. |
retryCountOnTaskFailure |
karakterlánc | Újrapróbálkozések száma, ha a feladat meghiúsul. |
target |
karakterlánc | A feladat futtatására szolgáló környezet. |
timeoutInMinutes |
karakterlánc | A tevékenység automatikus megszakítása előtt futtatható maximális idő. |
Feltételek
A tevékenységek nem tudják meghatározni, hogy a tevékenység befejezése után folytatják-e a folyamatfeladatot, csak befejezési állapotot adnak, például succeeded vagy failed. Az alsóbb rétegbeli tevékenységek és feladatok ezután ennek az állapotnak a alapján határozhatják condition meg, hogy fut-e.
A feltételek tulajdonság határozza meg a feladat futtatásának feltételeit. Alapértelmezés szerint egy lépés akkor fut, ha a feladatban még semmi sem hiúsult meg, és az azt közvetlenül megelőző lépés befejeződött.
Az alapértelmezett értékeket felülbírálhatja vagy testre szabhatja úgy, hogy a lépést akkor is futtatja, ha vagy csak akkor, ha egy korábbi függőség meghiúsul, vagy más kimenetelű. Definiálhat egyéni feltételeket is, amelyek kifejezésekből állnak.
Feljegyzés
A feltételek az azonos ügynökkészlettel rendelkező összes korábbi közvetlen és közvetett függőségre vonatkoznak. A különböző ügynökkészletekben lévő szakaszok vagy feladatok párhuzamosan futnak.
A korábbi függőségi állapoton alapuló feltételek a következők:
-
Sikeres: Csak akkor fut, ha az összes korábbi függőség sikeres. Ez a viselkedés az alapértelmezett, ha nincs beállítva feltétel a YAML-ben. A feltétel alkalmazásához adja meg a
condition: succeeded(). -
Sikeres vagy sikertelen: Futtatás akkor is, ha egy korábbi függőség meghiúsul, kivéve, ha a futtatás megszakadt. A feltétel alkalmazásához adja meg a
condition: succeededOrFailed(). -
Mindig: Futtatás akkor is, ha egy korábbi függőség meghiúsul, még akkor is, ha a futtatás megszakadt. A feltétel alkalmazásához adja meg a
condition: always(). -
Sikertelen: Csak akkor fut, ha egy korábbi függőség meghiúsul. A feltétel alkalmazásához adja meg a
condition: failed().
A következő YAML-példában a PublishTestResults@2 feltétel miatt akkor is fut, ha az előző lépés sikertelen volt.
steps:
- task: UsePythonVersion@0
inputs:
versionSpec: '3.x'
architecture: 'x64'
- task: PublishTestResults@2
inputs:
testResultsFiles: "**/TEST-*.xml"
condition: succeededOrFailed()
Folytatás hiba esetén
A continueOnError tulajdonság jelzi a feladatnak, hogy a hibáktól függetlenül folytatja-e a futást, és jelentse-e a sikerességet. Ha be van trueállítva, ez a tulajdonság arra utasítja a feladatot, hogy hagyja figyelmen kívül az állapotot failed , és folytassa a futtatásokat. Az alsóbb rétegbeli lépések és feladatok úgy kezelik a feladat eredményét, mint success amikor futtatási döntéseket hoznak.
Engedélyezve
Alapértelmezés szerint a feladat mindig fut, amikor a folyamat fut. A feladat letiltásához beállíthatja az enabled értékét false-ra. A feladat ideiglenes letiltásával eltávolíthatja a feladatot a folyamatból tesztelési célból vagy adott üzemelő példányok esetén.
Újrapróbálkozások száma feladathiba esetén
A retryCountOnTaskFailure tulajdonság megadja, hogy hány alkalommal próbálkozzon újra a tevékenység sikertelensége esetén. Az alapértelmezett érték a nulla újrapróbálkozás.
- Az újrapróbálkozések maximális száma 10.
- Az újrapróbálkozást megelőző várakozási idő minden sikertelen kísérlet után megnő, exponenciális visszalépési stratégiát követve. Az első újrapróbálkozás 1 másodperc után történik, a második újrapróbálkozás 4 másodperc után, a tizedik újrapróbálkozás pedig 100 másodperc után.
- A feladat újrapróbálkozása nem biztosít idempotenciát. Az első próbálkozás mellékhatásai, például egy külső erőforrás részleges létrehozása, az újrapróbálkozás meghiúsulását okozhatják.
- A feladat számára nem teszik elérhetővé az újrapróbálkozások számát.
- A feladathiba figyelmeztetést ad a tevékenységnaplókhoz, amely jelzi, hogy a feladat újrapróbálkozása előtt sikertelen volt.
- Minden újrapróbálkozási kísérlet ugyanazon feladatcsomópont részeként jelenik meg a felhasználói felületen.
Feljegyzés
A retryCountOnTaskFailure tulajdonsághoz az ügynök 2.194.0-s vagy újabb verziója szükséges. Az Azure DevOps Server 2022-ben az újrapróbálkozások nem támogatottak ügynök nélküli feladatokhoz. További információ: Az Azure DevOps szolgáltatás 2021. november 16-i frissítése – Automatikus újrapróbálkozások egy tevékenységhez és az Azure DevOps szolgáltatásfrissítése 2025. június 14. – Újrapróbálkozás a kiszolgálói feladatokhoz.
Target
A feladatok végrehajtási környezetben futnak, amely vagy az ügynök gazdagépe, vagy egy tároló. Egy feladat felülírhatja a környezetének beállításait egy target megadásával. Az elérhető lehetőségek az host ügynök gazdagépének és a folyamatban definiált tárolóknak a megcélzása. Az alábbi példában SampleTask@1 a gazdagépen fut, és AnotherTask@1 egy tárolóban fut.
resources:
containers:
- container: pycontainer
image: python:3.11
steps:
- task: SampleTask@1
target: host
- task: AnotherTask@1
target: pycontainer
Időkorlát
Az időtúllépési időszak akkor kezdődik, amikor a tevékenység elindul, és nem tartalmazza azt az időt, amikor a tevékenység várólistára kerül, vagy egy ügynökre vár.
Feljegyzés
A pipeline-ok munka szintű időtúllépést is megadhatnak a feladat szintű időtúllépés mellett. Ha a feladatszint időtúllépési időköze egy tevékenység befejeződése előtt eltelik, a futó feladat leáll, még akkor is, ha a tevékenység hosszabb időtúllépési intervallummal van konfigurálva. További információ: Időtúllépések.
Környezeti változók
Környezeti változók használatával rendszer- vagy felhasználó által meghatározott adatokat képezhet le a feladatfolyamatba.
A YAML-folyamatfeladatok megadhatnak egy tulajdonságot env , amely a környezeti változókat képviselő név-érték sztringeket sorolja fel.
- task: AzureCLI@2
env:
ENV_VARIABLE_NAME: value
ENV_VARIABLE_NAME2: value
...
A környezeti változókat script lépésekkel, vagy parancssori, Bash- vagy PowerShell-feladatok szkriptjeinek használatával állíthatja be.
Az alábbi példa egy script olyan lépést futtat, amely egy értéket rendel a ENV_VARIABLE_NAME környezeti változóhoz, és visszhangozza az értéket.
- script: echo "This is " $ENV_VARIABLE_NAME
env:
ENV_VARIABLE_NAME: value
displayName: 'echo environment variable'
Az előző szkript funkcionálisan megegyezik egy Bash@3 feladat bemenettel való futtatásával script . Az alábbi példa a szintaxist task használja.
- task: Bash@3
inputs:
script: echo "This is " $ENV_VARIABLE_NAME
env:
ENV_VARIABLE_NAME: value
displayName: 'echo environment variable'
Eszköztelepítői feladatok létrehozása
A buildelési eszköz telepítői feladatai lehetővé teszik a buildelési folyamat számára a függőségek telepítését és szabályozását. A buildelési eszköz telepítőfeladatait a következő műveletekhez használhatja:
- Telepítsen egy eszközt vagy futtatókörnyezetet egy buildhez, beleértve a Microsoft által üzemeltetett ügynököket is.
- Ellenőrizze az alkalmazást vagy a tárat egy függőség több verziójával, például Node.js.
Az eszköztelepítői feladatok listáját az Eszközműveletek című témakörben találja.
Példa: Alkalmazás tesztelése és ellenőrzése a Node.js több verzióján
Az alábbi példa egy buildelési folyamatot állít be egy alkalmazás futtatásához és érvényesítéséhez a Node.jstöbb verzióján.
Hozzon létre egy azure-pipelines.yml fájlt, amely a következő tartalommal rendelkezik a projekt alapkönyvtárában.
pool:
vmImage: 'windows-latest'
jobs:
- job: NodeJS
strategy:
matrix:
node14:
nodeVersion: '14.x'
node16:
nodeVersion: '16.x'
maxParallel: 2
steps:
- task: NodeTool@0
displayName: 'Install Node.js $(nodeVersion)'
inputs:
versionSpec: '$(nodeVersion)'
checkLatest: true
- script: |
echo Using Node version $(nodeVersion)
node --version
displayName: 'Verify Node Installation'
Mentse és futtassa a csővezetéket. A feladat kétszer fut, egyet a változóban megadott Node.js minden egyes verziójához nodeVersion .
A Node.js Tool Installer letölti a Node.js verziót, ha az még nincs telepítve az ügynökre. A parancssori szkript a telepített verziót írja a parancssorba.
Kapcsolódó tartalom
Súgó és támogatás
- Hibaelhárítási tippek megismerése.
- Kérjen tanácsot a Stack Overflow-ról.
- Tegye közzé kérdéseit, keressen válaszokat, vagy javasoljon egy funkciót az Azure DevOps fejlesztői közösségében.
- Támogatást kérhet az Azure DevOpshoz.