Folyamatok ütemezésének konfigurálása
Azure DevOps Services | Azure DevOps Server 2022 – Azure DevOps Server 2019
Az Azure Pipelines többféle eseményindítót biztosít a folyamat indításának konfigurálásához.
- Az ütemezett eseményindítók ütemezés alapján indítják el a folyamatot, például egy éjszakai build alapján. Ez a cikk útmutatást nyújt az ütemezett eseményindítók használatával a folyamatok ütemezés szerinti futtatásához.
- Az eseményalapú eseményindítók eseményekre válaszul indítják el a folyamatot, például lekéréses kérelmet hoznak létre, vagy leküldést hajtanak be egy ágba. Az eseményalapú eseményindítók használatáról további információt az Azure Pipelines eseményindítói című témakörben talál.
A folyamatokban ütemezett és eseményalapú eseményindítókat egyesíthet, például ellenőrizheti a buildet minden leküldéskor (CI-eseményindító), lekéréses kérelem (PR-eseményindító) és éjszakai buildeléskor (ütemezett eseményindító). Ha csak ütemezés szerint szeretné felépíteni a folyamatot, és nem az eseményalapú eseményindítókra reagálva, győződjön meg arról, hogy a folyamat nem rendelkezik más eseményindítókkal. Egy GitHub-adattár YAML-folyamataiban például alapértelmezés szerint engedélyezve vannak a CI-triggerek és a PR-eseményindítók. Az alapértelmezett eseményindítók letiltásával kapcsolatos információkért tekintse meg az Azure Pipelines eseményindítóit , és keresse meg az adattár típusát bemutató szakaszt.
Ütemezett triggerek
Fontos
A folyamatbeállítások felhasználói felületén definiált ütemezett eseményindítók elsőbbséget élveznek a YAML ütemezett eseményindítóival szemben.
Ha a YAML-folyamatban ütemezett YAML-triggerek és a felhasználói felületen meghatározott ütemezett triggerek is vannak, akkor csak a felhasználói felületen meghatározott ütemezett triggerek futnak. Ahhoz, hogy az ütemezett YAML-triggerek fussanak a YAML-folyamatban, el kell távolítani a folyamatbeállítások felhasználói felületén definiált ütemezett triggereket. Miután az összes felhasználói felület ütemezett eseményindítója el lett távolítva, leküldést kell végrehajtani a YAML ütemezett eseményindítóinak kiértékeléséhez.
Ha törölni szeretné a felhasználói felület ütemezett eseményindítóit egy YAML-folyamatból, tekintse meg a felhasználói felület beállításainak felülírása a YAML ütemezett eseményindítóit.
Az ütemezett eseményindítók konfigurálnak egy folyamatot úgy, hogy a cron szintaxissal meghatározott ütemezésen fusson.
schedules:
- cron: string # cron syntax defining a schedule
displayName: string # friendly name given to a specific schedule
branches:
include: [ string ] # which branches the schedule applies to
exclude: [ string ] # which branches to exclude from the schedule
always: boolean # whether to always run the pipeline or only if there have been source code changes since the last successful scheduled run. The default is false.
schedules:
- cron: string # cron syntax defining a schedule
displayName: string # friendly name given to a specific schedule
branches:
include: [ string ] # which branches the schedule applies to
exclude: [ string ] # which branches to exclude from the schedule
always: boolean # whether to always run the pipeline or only if there have been source code changes since the last successful scheduled run. The default is false.
batch: boolean # Whether to run the pipeline if the previously scheduled run is in-progress; the default is false.
# batch is available in Azure DevOps Server 2022.1 and higher
A YAML ütemezett folyamatainak a következő megkötései vannak.
- A cron-ütemezések időzónája UTC.
- Ha záradék nélküli
include
branches
záradékotexclude
ad meg, az egyenértékű ainclude
záradékban való megadásával*
. - Ütemezések megadásakor nem használhat folyamatváltozókat.
- Ha sablonokat használ a YAML-fájlban, akkor az ütemezéseket a fő YAML-fájlban kell megadni, és nem a sablonfájlokban.
Az ütemezett eseményindítók elágazási szempontjai
Az ütemezett eseményindítók kiértékelése egy ág esetében a következő események bekövetkezésekor történik.
- Létrejön egy folyamat.
- A folyamat YAML-fájlja egy leküldésből vagy a folyamatszerkesztőben való szerkesztéssel frissül.
- A folyamat YAML-fájljának elérési útja frissül, hogy egy másik YAML-fájlra hivatkozzon. Ez a módosítás csak az alapértelmezett ágat frissíti, ezért csak az alapértelmezett ág frissített YAML-fájljában veszi fel az ütemezéseket. Ha bármely más ág később egyesíti az alapértelmezett ágat, például
git pull origin main
az újonnan hivatkozott YAML-fájl ütemezett eseményindítóit a rendszer kiértékeli az adott ághoz. - Létrejön egy új ág.
Miután az egyik ilyen esemény bekövetkezik egy ágban, a rendszer hozzáadja az adott ághoz tartozó ütemezett futtatásokat, ha ez az ág megfelel az adott ág YAML-fájljában található ütemezett eseményindítók ágszűrőinek.
Fontos
Az ág ütemezett futtatásai csak akkor lesznek hozzáadva, ha az ág megfelel az adott ág YAML-fájljában lévő ütemezett eseményindítók ágszűrőinek.
Egy folyamat például a következő ütemezéssel jön létre, és a YAML-fájl ezen verziója be van jelölve az main
ágba. Ez az ütemezés napi rendszerességgel hozza létre az main
ágat.
# YAML file in the main branch
schedules:
- cron: '0 0 * * *'
displayName: Daily midnight build
branches:
include:
- main
Ezután egy új ág jön létre a nevesített new-feature
ág alapjánmain
. Az új ágBAN lévő YAML-fájl ütemezett eseményindítói beolvasva lesznek, és mivel nincs egyezés az new-feature
ághoz, a rendszer nem módosítja az ütemezett buildeket, és az new-feature
ág nem ütemezett eseményindítóval van létrehozva.
Ha new-feature
hozzá van adva a listához, és ezt a branches
módosítást leküldi az new-feature
ágba, a YAML-fájl beolvassa, és mivel new-feature
most már szerepel az ágak listájában, a rendszer ütemezett buildet ad hozzá az new-feature
ághoz.
# YAML file in the new-feature-branch
schedules:
- cron: '0 0 * * *'
displayName: Daily midnight build
branches:
include:
- main
- new-feature
Most vegye figyelembe, hogy a rendszer létrehoz egy elnevezett release
ágat, main
majd release
hozzáadja az ág YAML-fájljának main
ágszűrőihez, de az újonnan létrehozott release
ághoz nem.
# YAML file in the release branch
schedules:
- cron: '0 0 * * *'
displayName: Daily midnight build
branches:
include:
- main
# YAML file in the main branch with release added to the branches list
schedules:
- cron: '0 0 * * *'
displayName: Daily midnight build
branches:
include:
- main
- release
Mivel release
az ág ágszűrőihez main
lett hozzáadva, de az ág ágszűrőihez release
nem, az release
ág nem erre az ütemezésre lesz felépítve. Az ütemezett build csak akkor lesz hozzáadva az ütemezőhöz, ha release
hozzáadja az ágat a kiadási ág YAML-fájljának ágszűrőihez.
Batch-szempontok ütemezett eseményindítókhoz
Feljegyzés
A batch
tulajdonság az Azure DevOps Server 2022.1-s és újabb verzióiban érhető el.
A batch
tulajdonság konfigurálja, hogy futtassa-e a folyamatot, ha a korábban ütemezett futtatás folyamatban van; az alapértelmezett érték a következő false
. Ez a folyamatadattár verziójától függetlenül történik.
Az alábbi táblázat a használat módját always
és batch
működését ismerteti.
Mindig | Batch | Működés |
---|---|---|
false |
false |
A folyamat csak akkor fut, ha az utolsó sikeres ütemezett folyamatfuttatás tekintetében változás történt. |
false |
true |
A folyamat csak akkor fut, ha az utolsó sikeres ütemezett folyamatfuttatáshoz képest változás történt, és nincs folyamatban lévő ütemezett folyamatfuttatás. |
true |
false |
A folyamat a cron ütemezésének megfelelően fut. |
true |
true |
A folyamat a cron ütemezésének megfelelően fut. |
Fontos
Ha always
igen true
, a folyamat a cron ütemezése szerint fut, még akkor is, ha batch
az true
.
Build.CronSchedule.DisplayName változó
Feljegyzés
A Build.CronSchedule.DisplayName
változó az Azure DevOps Server 2022.1-s és újabb verzióiban érhető el.
Ha egy folyamat cron ütemezett eseményindító miatt fut, az előre definiált Build.CronSchedule.DisplayName
változó tartalmazza a displayName
folyamatfuttatást kiváltó cron-ütemezést.
A YAML-folyamat több cronütemezést is tartalmazhat, és előfordulhat, hogy azt szeretné, hogy a folyamat különböző fázisokat vagy feladatokat futtasson a cron ütemezése alapján. Van például egy éjszakai és egy heti buildje, és csak az éjszakai buildelés során szeretne futtatni egy bizonyos szakaszt. A változót egy Build.CronSchedule.DisplayName
feladat vagy szakasz feltételében használhatja annak meghatározásához, hogy az adott feladatot vagy szakaszt futtatja-e.
- stage: stage1
# Run this stage only when the pipeline is triggered by the
# "Daily midnight build" cron schedule
condition: eq(variables['Build.CronSchedule.DisplayName'], 'Daily midnight build')
További példákért lásd a schedules.cron példákat.
Az ütemezett buildek nem támogatottak az Azure DevOps Server 2019 YAML-szintaxisában. A YAML buildelési folyamat létrehozása után a folyamatbeállítások használatával megadhat egy ütemezett eseményindítót.
Példák
Az alábbi példa két ütemezést határoz meg:
schedules:
- cron: '0 0 * * *'
displayName: Daily midnight build
branches:
include:
- main
- releases/*
exclude:
- releases/ancient/*
- cron: '0 12 * * 0'
displayName: Weekly Sunday build
branches:
include:
- releases/*
always: true
Az első ütemezés, a napi éjféli build minden nap éjfélkor futtat egy folyamatot, de csak akkor, ha a kód az utolsó sikeres ütemezett futtatás óta módosult, és az összes releases/*
ág esetébenmain
, kivéve a következő ágakatreleases/ancient/*
: .
A második ütemezés, a Heti vasárnap build vasárnap délben futtat egy folyamatot, függetlenül attól, hogy a kód módosult-e az utolsó futtatás óta, az összes releases/*
ág esetében.
Feljegyzés
A cron-ütemezések időzónája UTC, ezért ezekben a példákban az éjféli build és a dél-build UTC-ben éjfélkor és délben van.
További példákért lásd : Migrálás a klasszikus szerkesztőből.
Az ütemezett buildek nem támogatottak az Azure DevOps Server 2019 YAML-szintaxisában. A YAML buildelési folyamat létrehozása után a folyamatbeállítások használatával megadhat egy ütemezett eseményindítót.
Cron szintaxis
Minden Azure Pipelines ütemezett eseményindító-cronkifejezés egy szóközzel tagolt kifejezés, amely öt bejegyzést tartalmaz az alábbi sorrendben. A kifejezés egyetlen idézőjelbe '
van zárva.
mm HH DD MM DW
\ \ \ \ \__ Days of week
\ \ \ \____ Months
\ \ \______ Days
\ \________ Hours
\__________ Minutes
Mező | Elfogadott értékek |
---|---|
Percek | 0–59 |
Óra | 0–23 |
Nap | 1–31 |
Hónap | 1–12, teljes angol nevek, angol nevek első három betűje |
A hét napjai | 0–6 (vasárnaptól kezdődően), teljes angol nevek, angol nevek első három betűje |
Az értékek az alábbi formátumokban lehetnek.
Formátum | Példa | Leírás |
---|---|---|
Helyettesítő | * |
Megfelel a mező összes értékének |
Egyetlen érték | 5 |
Egyetlen értéket ad meg ehhez a mezőhöz |
Vessző tagolt | 3,5,6 |
Több értéket ad meg ehhez a mezőhöz. Több formátum is kombinálható, például 1,3-6 |
Tartományok | 1-3 |
A mező befogadó értéktartománya |
Időközönként | */4 vagy 1-5/2 |
A mezőhöz egyeztetendő intervallumok, például minden negyedik érték vagy az 1–5. tartomány 2 lépésintervallummal |
Példa | Cron-kifejezés |
---|---|
Buildelés minden hétfőn, szerdán és pénteken 18:00-kor | 0 18 * * Mon,Wed,Fri , 0 18 * * 1,3,5 vagy 0 18 * * 1-5/2 |
6 óránkénti buildelés | 0 0,6,12,18 * * * , 0 */6 * * * vagy 0 0-18/6 * * * |
Buildelés 6 óránként 9:00-tól | 0 9,15,21 * * * vagy 0 9-21/6 * * * |
A támogatott formátumokról további információt a Crontab Expressionben talál.
Az ütemezett buildek nem támogatottak az Azure DevOps Server 2019 YAML-szintaxisában. A YAML buildelési folyamat létrehozása után a folyamatbeállítások használatával megadhat egy ütemezett eseményindítót.
Ütemezett futtatások nézete
A közelgő ütemezett buildek előnézetét úgy tekintheti meg, ha az Ütemezett futtatások lehetőséget választja a folyamat folyamatának részletes lapján található helyi menüből.
Fontos
Az ütemezett futtatások nézet csak az aktuális dátumtól számított hét napon belül ütemezett folyamatokat jeleníti meg. Ha a cron-ütemezés 7 napnál hosszabb időközzel rendelkezik, és a következő futtatás az aktuális dátumtól számított hét nap után kezdődik, akkor az nem jelenik meg az Ütemezett futtatások nézetben.
Az ütemezett eseményindítók létrehozása vagy frissítése után az Ütemezett futtatások nézet használatával ellenőrizheti őket.
Ez a példa az alábbi ütemezés ütemezett futását jeleníti meg.
schedules:
- cron: '0 0 * * *'
displayName: Daily midnight build
branches:
include:
- main
Az Ütemezett futtatások ablakai megjelenítik az Azure DevOps-portálra való tallózáshoz használt számítógépen beállított helyi időzónára konvertált időt. Ez a példa az EST időzónában készített képernyőképet jeleníti meg.
Feljegyzés
Ha módosítja egy futó folyamat ütemezését, az Ütemezett futtatások nézet nem frissül az új ütemezéssel, amíg az éppen futó folyamat be nem fejeződik.
Az ütemezett buildek nem támogatottak az Azure DevOps Server 2019 YAML-szintaxisában. A YAML buildelési folyamat létrehozása után a folyamatbeállítások használatával megadhat egy ütemezett eseményindítót.
Akkor is fut, ha nincsenek kódmódosítások
Alapértelmezés szerint a folyamat nem ütemezettként fut, ha a legutóbbi sikeres ütemezett futtatás óta nem történt kódmódosítás. Tegyük fel például, hogy ütemezett egy folyamatot, hogy minden este 21:00-kor fusson. Hétköznapokon különböző módosításokat küldhet a kódhoz. A folyamat ütemezés szerint fut. Hétvégén nem módosítja a kódot. Ha a pénteki ütemezett futtatás óta nem történt kódmódosítás, akkor a folyamat nem az ütemezett módon fut a hétvégén.
Ha egy folyamatot akkor is futtatni szeretne, ha nincsenek kódmódosítások, használhatja a kulcsszót always
.
schedules:
- cron: ...
...
always: true
Az ütemezett buildek nem támogatottak az Azure DevOps Server ezen verziójának YAML-szintaxisában. A YAML buildelési folyamat létrehozása után a folyamatbeállítások használatával megadhat egy ütemezett eseményindítót.
A YAML-folyamatokban ütemezett futtatások számának korlátozásai
A folyamatok ütemezési gyakoriságának vannak bizonyos korlátozásai. Ezek a korlátozások az Azure Pipelines-erőforrásokkal, különösen a Microsoft által üzemeltetett ügynökökkel való visszaélés megakadályozása érdekében lettek bevezetve. A következő korlátozások vannak érvényben:
- folyamatonként hozzávetőlegesen 1000 futtatás hetente
- folyamatonként 10 futtatás minden 15 percben
Migrálás a klasszikus szerkesztőből
Az alábbi példák bemutatják, hogyan migrálhatja az ütemterveket a klasszikus szerkesztőből a YAML-be.
- Példa: Git-adattár éjszakai buildelése több időzónában
- Példa: Éjszakai buildelés különböző frekvenciákkal
Példa: Git-adattár éjszakai buildelése több időzónában
Ebben a példában a klasszikus szerkesztő ütemezett eseményindítójának két bejegyzése van, amelyek a következő buildeket állítják elő.
Minden hétfőtől péntekig 15:00-kor (UTC + 5:30 időzóna) hozzon létre ágakat, amelyek megfelelnek az
features/india/*
ágszűrő feltételeinekMinden hétfőtől péntekig 15:00-kor (UTC - 5:00 időzóna) olyan ágakat hozhat létre, amelyek megfelelnek az
features/nc/*
ágszűrő feltételeinek
Az ezzel egyenértékű YAML ütemezett eseményindító a következő:
schedules:
- cron: '30 21 * * Sun-Thu'
displayName: M-F 3:00 AM (UTC + 5:30) India daily build
branches:
include:
- /features/india/*
- cron: '0 8 * * Mon-Fri'
displayName: M-F 3:00 AM (UTC - 5) NC daily build
branches:
include:
- /features/nc/*
Az első ütemezésben, M-F 3:00 (UTC + 5:30) India napi build, a cron szintaxis (mm HH DD MM DW
) a 30 21 * * Sun-Thu
.
- Percek és órák –
30 21
Ez a (9:30 PM UTC
) értékre van leképzve21:30 UTC
. Mivel a klasszikus szerkesztőben a megadott időzóna UTC + 5:30, a YAML-eseményindítóhoz megadott kívánt UTC időpont eléréséhez 5 órát és 30 percet kell kivonnunk a kívánt létrehozási időből 3:00-tól. - A napok és a hónapok helyettesítő karakterekként vannak megadva, mivel ez az ütemezés nem azt határozza meg, hogy csak a hónap bizonyos napjain vagy egy adott hónapban fusson.
- A hét napjai -
Sun-Thu
- az időzóna-átalakítás miatt ahhoz, hogy a buildek 3:00-kor fussanak az UTC + 5:30 India időzónában, meg kell határoznunk, hogy az előző napon induljanak el UTC-ben. Meg is adhatja a hét napjait a következőként0-4
vagy0,1,2,3,4
.
A második ütemezés, M-F 3:00 (UTC - 5) NC napi build, a cron szintaxisa .0 8 * * Mon-Fri
- Percek és órák –
0 8
Ez a leképezés a8:00 AM UTC
. Mivel a klasszikus szerkesztőben a megadott időzóna UTC – 5:00, 5 órát kell hozzáadnunk a kívánt létrehozási időponttól 3:00-tól, hogy megérkezzünk a YAML-eseményindítóhoz megadott utc-időponthoz. - A napok és a hónapok helyettesítő karakterekként vannak megadva, mivel ez az ütemezés nem azt határozza meg, hogy csak a hónap bizonyos napjain vagy egy adott hónapban fusson.
- A hét napjai –
Mon-Fri
Mivel az időzónák konvertálása nem terjed ki a hét több napjára a kívánt ütemezéshez, itt nem kell átalakítást végeznünk. Meg is adhatja a hét napjait a következőként1-5
vagy1,2,3,4,5
.
Fontos
A YAML ütemezett eseményindítóinak UTC időzónái nem veszik figyelembe a nyári időszámítást.
Tipp.
Ha a hét 3 betűs napjait használja, és több napos időtartamot szeretne a Napon keresztül használni, a Nap a hét első napjának kell tekinteni, például az éjféli EST ütemezéséhez, csütörtöktől vasárnapig a cron szintaxisa 0 5 * * Sun,Thu-Sat
.
Példa: Éjszakai buildelés különböző frekvenciákkal
Ebben a példában a klasszikus szerkesztő ütemezett eseményindítójának két bejegyzése van, amelyek a következő buildeket állítják elő.
Minden hétfőtől péntekig 15:00 (UTC) időpontban olyan ágakat hozhat létre, amelyek megfelelnek az és az
main
releases/*
ágszűrés feltételeinekMinden vasárnap 15:00 -kor (UTC) hozza létre az
releases/lastversion
ágat, még akkor is, ha a forrás vagy a folyamat nem változott
Az ezzel egyenértékű YAML ütemezett eseményindító a következő:
schedules:
- cron: '0 3 * * Mon-Fri'
displayName: M-F 3:00 AM (UTC) daily build
branches:
include:
- main
- /releases/*
- cron: '0 3 * * Sun'
displayName: Sunday 3:00 AM (UTC) weekly latest version build
branches:
include:
- /releases/lastversion
always: true
Az első ütemezés, M-F 3:00 (UTC) napi build, a cron szintaxis .0 3 * * Mon-Fri
- Percek és órák –
0 3
Ez a leképezés a3:00 AM UTC
. Mivel a klasszikus szerkesztőben megadott időzóna UTC, nem kell időzóna-átalakításokat végeznünk. - A napok és a hónapok helyettesítő karakterekként vannak megadva, mivel ez az ütemezés nem azt határozza meg, hogy csak a hónap bizonyos napjain vagy egy adott hónapban fusson.
- A hét napjai –
Mon-Fri
mivel nincs időzónák átalakítása, a hét napjai közvetlenül a klasszikus szerkesztő ütemtervéből jelennek meg. Megadhatja a hét1,2,3,4,5
napjait is.
A második ütemezés, vasárnap 3:00 (UTC) hetente legújabb verzió build, a cron szintaxis .0 3 * * Sun
- Percek és órák –
0 3
Ez a leképezés a3:00 AM UTC
. Mivel a klasszikus szerkesztőben megadott időzóna UTC, nem kell időzóna-átalakításokat végeznünk. - A napok és a hónapok helyettesítő karakterekként vannak megadva, mivel ez az ütemezés nem azt határozza meg, hogy csak a hónap bizonyos napjain vagy egy adott hónapban fusson.
- A hét napjai –
Sun
Mivel az időzónák konvertálása nem terjed ki a hét több napjára a kívánt ütemezéshez, itt nem kell átalakítást végeznünk. Megadhatja a hét0
napjait is. - Azt is meg fogjuk adni
always: true
, hogy a build ütemezetten fut-e, hogy a forráskód frissült-e.
GYIK
- Azt akarom, hogy a folyamat csak az ütemezés szerint fusson, és ne akkor, ha valaki módosítást küld egy ágba
- Meghatároztam egy ütemezést a YAML-fájlban. De nem futott. Mi történt?
- A YAML-ütemezésem jól működött. De most már nem dolgoznak. Hogyan hibakeresést?
- A kódom nem változott, de egy ütemezett build aktiválódik. Miért?
- A tervezett futtatás az Ütemezett futtatások panelen jelenik meg. Ez azonban jelenleg nem fut. Miért?
- A YAML-folyamatban definiált ütemezések az egyik ágon működnek, a másiknál azonban nem. Hogyan oldhatom meg ezt a problémát?
Azt akarom, hogy a folyamat csak az ütemezés szerint fusson, és ne akkor, ha valaki módosítást küld egy ágba
Ha azt szeretné, hogy a folyamat csak az ütemezés szerint fusson, és nem akkor, ha valaki módosítást küld egy ágba, vagy egyesíti a fő ág módosítását, akkor explicit módon le kell tiltania a folyamat alapértelmezett CI- és PR-eseményindítóit.
Az alapértelmezett CI- és PR-eseményindítók letiltásához adja hozzá az alábbi utasításokat a YAML-folyamathoz, és ellenőrizze, hogy nem bírálta-e felül a YAML-folyamat eseményindítóit felhasználói felületi eseményindítókkal.
trigger: none
pr: none
További információ: pr definíció és triggerdefiníció.
Meghatároztam egy ütemezést a YAML-fájlban. De nem futott. Mi történt?
Ellenőrizze, hogy az Azure Pipelines mely futtatásokat ütemezte a folyamathoz. Ezeket a futtatásokat a folyamat ütemezett futtatási műveletének kiválasztásával találja meg. A lista szűrve lesz, hogy csak a következő néhány napban megjelenő néhány futtatás jelenjen meg. Ha ez nem felel meg az elvárásnak, valószínűleg az a helyzet, hogy helytelenül írta be a cron ütemezését, vagy nincs megadva az ütemezés a megfelelő ágban. Az ütemezések konfigurálásához olvassa el a fenti témakört. Értékelje újra a cron szintaxist. A cron-ütemezések minden időpontja UTC-ben van.
Hozzon létre egy kis apró módosítást a YAML-fájlon, és küldje el a frissítést az adattárba. Ha probléma merült fel a YAML-fájl ütemezésének korábbi olvasása során, akkor azt most kell kijavítani.
Ha a felhasználói felületen bármilyen ütemezés van meghatározva, akkor a YAML-ütemezések nem lesznek betartva. Győződjön meg arról, hogy nincsenek felhasználói felületi ütemezései, ha a folyamat szerkesztőjéhez lép, majd kiválasztja az Eseményindítókat.
A folyamathoz ütemezhető futtatások száma korlátozott. További információ a korlátokról.
Ha a kód nem módosul, előfordulhat, hogy az Azure Pipelines nem indít el új futtatásokat. Megtudhatja, hogyan bírálhatja felül ezt a viselkedést.
A YAML-ütemezésem jól működött. De most már nem dolgoznak. Hogyan hibakeresést?
Ha nem adta meg
always:true
, a folyamat csak akkor lesz ütemezve, ha a kódban frissítések történtek. Ellenőrizze, hogy történt-e kódmódosítás, és hogyan konfigurálta az ütemezéseket.A folyamat ütemezésének hányszoros korlátja van. Ellenőrizze, hogy túllépte-e ezeket a korlátokat.
Ellenőrizze, hogy valaki engedélyezte-e a további ütemezéseket a felhasználói felületen. Nyissa meg a folyamat szerkesztőjében, és válassza az Eseményindítók lehetőséget. Ha ütemezéseket definiáltak a felhasználói felületen, akkor a YAML-ütemezések nem lesznek betartva.
Ellenőrizze, hogy a folyamat szüneteltetve van-e vagy le van-e tiltva. Válassza ki a folyamathoz tartozó Gépház.
Ellenőrizze, hogy az Azure Pipelines mely futtatásokat ütemezte a folyamathoz. Ezeket a futtatásokat a folyamat ütemezett futtatási műveletének kiválasztásával találja meg. Ha nem látja a várt ütemezéseket, hozzon létre egy kis apró módosítást a YAML-fájlon, és küldje el a frissítést az adattárba. Ennek újra kell szinkronizálnia az ütemezéseket.
Ha a GitHubot használja a kód tárolására, lehetséges, hogy a GitHub szabályozta az Azure Pipelinest, amikor új futtatást próbált elindítani. Ellenőrizze, hogy manuálisan indíthat-e új futtatásokat.
A kódom nem változott, de egy ütemezett build aktiválódik. Miért?
Lehetséges, hogy engedélyezte, hogy mindig ütemezett buildet futtasson, még akkor is, ha nincsenek kódmódosítások. HA YAML-fájlt használ, ellenőrizze az ütemezés szintaxisát a YAML-fájlban. Ha klasszikus folyamatokat használ, ellenőrizze, hogy bejelölte-e ezt a beállítást az ütemezett eseményindítókban.
Előfordulhat, hogy frissítette a buildelési folyamatot vagy a folyamat valamely tulajdonságát. Ez akkor is új futtatást fog ütemezni, ha még nem frissítette a forráskódot. Ellenőrizze a folyamat módosításainak előzményeit a klasszikus szerkesztővel.
Előfordulhat, hogy frissítette az adattárhoz való csatlakozáshoz használt szolgáltatáskapcsolatot. Ez akkor is új futtatást fog ütemezni, ha még nem frissítette a forráskódot.
Az Azure Pipelines először ellenőrzi, hogy vannak-e frissítések a kódban. Ha az Azure Pipelines nem éri el az adattárat, vagy nem tudja lekérni ezeket az információkat, az információs futtatás jön létre. Ez egy hamis build, amely tudatja Önrel, hogy az Azure Pipelines nem tudja elérni az adattárat.
Előfordulhat, hogy a folyamat nem rendelkezik teljesen sikeres buildel. Annak megállapításához, hogy új buildet szeretne-e ütemezni, az Azure DevOps megkeresi az utolsó teljesen sikeres ütemezett buildet. Ha nem talál egyet, elindít egy új ütemezett buildet. A részben sikeres ütemezett buildek nem tekinthetők sikeresnek, ezért ha a folyamat csak részben sikeres buildekkel rendelkezik, az Azure DevOps ütemezett buildeket aktivál, még akkor is, ha a kód nem változott.
A tervezett futtatás az Ütemezett futtatások panelen jelenik meg. Ez azonban jelenleg nem fut. Miért?
- Az Ütemezett futtatások panel az összes lehetséges ütemezést megjeleníti. Előfordulhat azonban, hogy csak akkor fut, ha valóban frissítette a kódot. Ha azt szeretné, hogy az ütemezés mindig fusson, győződjön meg arról, hogy beállította az Always tulajdonságot a YAML-folyamatban, vagy bejelölte a beállítást, hogy mindig klasszikus folyamatban fusson.
A YAML-folyamatban definiált ütemezések az egyik ágon működnek, a másiknál azonban nem. Hogyan oldhatom meg ezt a problémát?
Az ütemezések YAML-fájlokban vannak definiálva, és ezek a fájlok ágakhoz vannak társítva. Ha azt szeretné, hogy egy folyamat egy adott ágra legyen ütemezve, példáulfeatures/X
, akkor győződjön meg arról, hogy az ág YAML-fájljában a cron ütemezés van megadva, és hogy a megfelelő ágbefoglalásokkal rendelkezik az ütemezéshez. Az ág YAML-fájljának a features/X
következőnek schedule
kell lennie ebben a példában:
schedules:
- cron: '0 12 * * 0' # replace with your schedule
branches:
include:
- features/X
További információkért tekintse meg az ütemezett eseményindítók elágazási szempontjait.