Middle
Kako kreirati ponovljive zadatke u GitLab CI?
sobes.tech АИ
Одговор од АИ
Postoji nekoliko pristupa za kreiranje ponovljenih zadataka u GitLab CI:
- Rasporedi za pipeline (Pipeline Schedules): Ovo je najčešće korišćen i namenjeno za to. Podešavate raspored u interfejsu GitLab-a, navodeći granu/taj, promenljive (ako je potrebno) i učestalost izvršavanja (cron sintaksa).
- API triggeri: Možete koristiti API GitLab-a za pokretanje pipeline-ova iz spoljnog sistema ili skripte. Ovo je korisno ako je raspored složeniji ili zavisi od spoljašnjih događaja.
- CI/CD promenljive za uslovno izvršavanje: U fajlu
.gitlab-ci.ymlmožete koristiti unapred definisane ili korisničke promenljive za određivanje uslova izvršavanja zadatka. Iako ovo ne kreira raspored kao takav, možete pokrenuti pipeline po rasporedu (kroz Pipeline Schedules) i unutar njega odlučiti koje zadatke izvršiti na osnovu promenljivih rasporeda.
Primer korišćenja Pipeline Schedules:
U interfejsu GitLab-a idite u repozitorijum -> Build -> Pipeline schedules. Kreirajte novi raspored, navodeći:
- Opis
- Granu/tag
- Interval (cron sintaksa, na primer,
0 0 * * *za dnevno pokretanje u ponoć) - Promenljive (opciono)
Primer API triggera (koristeći curl):
# Zamenite Private-Token vašim ličnim tokenom za pristup sa pravima API-ja
# Zamenite <your_project_id> sa ID-jem vašeg projekta
# Zamenite <your_ref_name> sa imenom grane ili taga
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'
Primer korišćenja promenljive u .gitlab-ci.yml za uslovno izvršavanje:
stages:
- build
- deploy
scheduled_job:
stage: build
script:
- echo "Ovaj posao se pokreće samo kada je pokrenut putem rasporeda"
only:
variables:
- $CI_PIPELINE_SOURCE == "schedule"
other_job:
stage: deploy
script:
- echo "Ovaj posao se pokreće za sve izvore pipeline-a"
# Nema uslova `only: variables:`
Izbor metode zavisi od specifičnih zahteva. Za jednostavne ponovljive zadatke, Pipeline Schedules su optimalan izbor. Za složenije scenarije ili integraciju sa spoljnim sistemima, prikladni su API triggeri. Uslovno izvršavanje sa promenljivima je korisno za kontrolu toka unutar već pokrenutog pipeline-a.