Middle
Kuidas luua korduvaid ülesandeid GitLab CI-s?
sobes.tech AI
Vastus AI-lt
On mitmeid lähenemisviiseid korduvate ülesannete loomiseks GitLab CI-s:
- Pipeline ajastused: See on levinuim ja selleks mõeldud viis. Sa määrad ajastuse GitLab kasutajaliideses, märkides haru/tähe, muutujad (kui vaja) ja täitmise sageduse (cron-süntaks).
- API käivitajad: Sa saad kasutada GitLab API-d, et käivitada konveiereid välise süsteemi või skripti kaudu. See on kasulik, kui ajastus on keerulisem või sõltub väljastpoolt toimuvatest sündmustest.
- CI/CD muutujad tingimuslikuks täitmiseks: Failis
.gitlab-ci.ymlsaad kasutada eelmääratletud või kasutaja muutujaid, et määrata ülesande täitmise tingimused. Kuigi see ei loo ajastust iseenesest, saad käivitada konveieri ajastuse järgi (Pipeline Schedules kaudu) ja otsustada sees, milliseid ülesandeid täita, tuginedes muutujatele.
Näide Pipeline Schedules kasutamisest:
GitLab kasutajaliideses mine repositooriumisse -> Build -> Pipeline schedules. Loo uus ajastus, märkides:
- Kirjeldus
- Haru/tähe
- Intervall (cron-süntaks, näiteks
0 0 * * *igapäevase käivitamise jaoks keskööl) - Muutujad (valikuline)
API käivitaja näide (curl kasutades):
# Asenda Private-Token oma API õigustega isikliku tokeniga
# Asenda <your_project_id> oma projekti ID-ga
# Asenda <your_ref_name> oma haru või tähe nimega
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'
Muudatavate kasutamine .gitlab-ci.yml failis tingimuslikuks täitmiseks:
stages:
- build
- deploy
scheduled_job:
stage: build
script:
- echo "See töö käivitub ainult, kui see on ajastatud"
only:
variables:
- $CI_PIPELINE_SOURCE == "schedule"
other_job:
stage: deploy
script:
- echo "See töö käivitub kõigi pipeline'i allikate puhul"
# Ei ole `only: variables:` tingimust
Valik sõltub konkreetsetest nõuetest. Lihtsate korduvate ülesannete jaoks on Pipeline Schedules parim valik. Keerulisemate stsenaariumide või väliste süsteemidega integreerimiseks sobivad API käivitajad. Tingimuslik täitmine muutujatega on kasulik voolu kontrollimiseks juba käivitatud konveieris.