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


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 brancheszáradékot exclude ad meg, az egyenértékű a include 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 mainaz ú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, mainmajd 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.

Ütemezett futtatások menü

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.

Ütemezett futtatások

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

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ételeinek

    Ütemezett eseményindító UTC + 5:30 időzóna

  • Minden 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

    Ütemezett eseményindító UTC -5:00 időzóna

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épzve 21: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ént 0-4 vagy 0,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 a 8: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ént 1-5 vagy 1,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ételeinek

    Ütemezett eseményindító gyakorisága 1.

  • Minden 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

    Ütemezett eseményindító gyakorisága 2.

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 a 3: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ét 1,2,3,4,5napjait 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 a 3: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ét 0napjait 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

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.