Middle
Hogyan hozzunk létre ismétlődő feladatokat a GitLab CI-ben?
sobes.tech MI
Válasz az MI-től
Számos megközelítés létezik a rendszeres feladatok létrehozására a GitLab CI-ben:
- Pipeline ütemezések: Ez a leggyakoribb és erre a célra tervezett módszer. Beállít egy ütemezést a GitLab felületén, megadva az ágat/címkét, változókat (ha szükséges), és a végrehajtás gyakoriságát (cron szintaxis).
- API trigger: Használhatod a GitLab API-t külső rendszer vagy szkript segítségével pipeline-ok indítására. Ez akkor hasznos, ha az ütemezés összetettebb vagy külső eseményektől függ.
- Feltételes végrehajtás CI/CD változókkal: A
.gitlab-ci.ymlfájlban előre definiált vagy egyedi változókat használhatsz a feladat végrehajtási feltételeinek meghatározására. Bár ez nem hoz létre ütemezést magától, elindíthatsz egy pipeline-t ütemezés szerint (Pipeline Schedules segítségével), és a változók alapján dönthetsz arról, mely feladatokat futtatod.
Példa Pipeline Schedules használatára:
A GitLab felületén navigálj a repository -> Build -> Pipeline schedules menübe. Hozz létre egy új ütemezést, megadva:
- Leírás
- Ág/címke
- Intervallum (cron szintaxis, pl.
0 0 * * *napi futtatáshoz éjfélkor) - Változók (opcionális)
API trigger példája (curl használatával):
# Cseréld le a Private-Token-t a saját API jogosultságokkal rendelkező személyes hozzáférési tokenedre
# Cseréld le `<your_project_id>`-t a projekt azonosítójára
# Cseréld le `<your_ref_name>`-t az ág vagy címke nevére
curl --request POST \
--header 'Content-Type: application/json' \
--header 'Private-Token: <your_private_token>' \
--data '{
"ref": "<your_ref_name>",
"variables": {
"MY_VARIABLE": "some_value"
}
}' \
'https://gitlab.com/api/v4/projects/<your_project_id>/trigger/pipeline'
A .gitlab-ci.yml-ben egy változó használata feltételes végrehajtáshoz:
stages:
- build
- deploy
scheduled_job:
stage: build
script:
- echo "Ez a feladat csak akkor fut, ha ütemezés által indították"
only:
variables:
- $CI_PIPELINE_SOURCE == "schedule"
other_job:
stage: deploy
script:
- echo "Ez a feladat minden pipeline forráshoz fut"
# Nincs `only: variables:` feltétel
A módszer kiválasztása a konkrét követelményektől függ. Egyszerű ismétlődő feladatokhoz a Pipeline Schedules a legjobb választás. Komplexebb szcenáriók vagy külső rendszerekkel való integráció esetén az API trigger-ek megfelelőek. A változókkal történő feltételes végrehajtás hasznos az áramlás irányítására már elindított pipeline-on belül.