Middle
Kā izveidot atkārtotas uzdevumus GitLab CI?
sobes.tech AI
Atbilde no AI
Ir vairākas pieejas atkārtojo uzdevumu izveidei GitLab CI:
- Pipeline grafiki (Pipeline Schedules): Tas ir visbiežāk izmantotais un tam paredzētais veids. Jūs konfigurējat grafiku GitLab interfeisā, norādot zaru/tagu, mainīgos (ja nepieciešams) un izpildes biežumu (cron sintakse).
- API trigeri: Jūs varat izmantot GitLab API, lai palaistu konveijerus no ārējās sistēmas vai skripta. Tas ir noderīgi, ja grafiks ir sarežģītāks vai ir atkarīgs no ārējiem notikumiem.
- CI/CD mainīgie nosacītai izpildei:
.gitlab-ci.ymlfailā jūs varat izmantot iepriekš definētus vai lietotāja mainīgos, lai noteiktu uzdevuma izpildes nosacījumus. Lai gan tas neveido grafiku kā tādu, jūs varat palaist konveijeru pēc grafika (caur Pipeline Schedules) un iekšā izlemt, kurus uzdevumus izpildīt, balstoties uz mainīgajiem.
Piemērs, izmantojot Pipeline Schedules:
GitLab interfeisā dodieties uz repozitoriju -> Build -> Pipeline schedules. Izveidojiet jaunu grafiku, norādot:
- Apraksts
- Zars/tags
- Intervāls (cron sintakse, piemēram,
0 0 * * *ikdienas palaišanai pusnaktī) - Mainīgie (neobligāti)
API trigeres piemērs (curl izmantošana):
# Aizvietojiet Private-Token ar savu personīgo API piekļuves žetonu
# Aizvietojiet <your_project_id> ar sava projekta ID
# Aizvietojiet <your_ref_name> ar zara vai taga nosaukumu
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'
Mainīgo izmantošanas piemērs .gitlab-ci.yml failā nosacītai izpildei:
stages:
- build
- deploy
scheduled_job:
stage: build
script:
- echo "Šis darbs tiek izpildīts tikai, ja tas ir uzsākts pēc grafika"
only:
variables:
- $CI_PIPELINE_SOURCE == "schedule"
other_job:
stage: deploy
script:
- echo "Šis darbs tiek izpildīts no visiem pipeline avotiem"
# Nav `only: variables:` nosacījuma
Izvēle ir atkarīga no konkrētajām prasībām. Vienkāršiem atkārtojošiem uzdevumiem Pipeline Schedules ir optimāla izvēle. Sarežģītākiem scenārijiem vai integrācijai ar ārējām sistēmām piemēro API trigerus. Nosacīta izpilde ar mainīgajiem ir noderīga, lai kontrolētu plūsmu jau uzsāktā konveijerī.