Middle
Jak vytvořit opakující se úkoly v GitLab CI?
sobes.tech AI
Odpověď od AI
Existuje několik přístupů k vytváření opakujících se úkolů v GitLab CI:
- Plánování pipeline (Pipeline Schedules): Jedná se o nejčastější a pro tento účel určenou metodu. Nastavíte plán v rozhraní GitLab, zadáte větev/štítek, proměnné (pokud je potřeba) a frekvenci spuštění (cron syntaxe).
- API spouštěče: Můžete použít API GitLab k spuštění pipeline z externího systému nebo skriptu. To je užitečné, pokud je plán složitější nebo závisí na vnějších událostech.
- Podmíněné spuštění pomocí CI/CD proměnných: V souboru
.gitlab-ci.ymlmůžete použít předdefinované nebo vlastní proměnné k určení podmínek spuštění úkolu. Ačkoliv to nevytváří plán sám o sobě, můžete spustit pipeline podle plánu (přes Pipeline Schedules) a uvnitř rozhodnout, které úkoly spustit na základě proměnných plánu.
Příklad použití Pipeline Schedules:
V rozhraní GitLab přejděte do repozitáře -> Build -> Pipeline schedules. Vytvořte nový plán s uvedením:
- Popis
- Větev/štítek
- Interval (cron syntaxe, například
0 0 * * *pro denní spuštění o půlnoci) - Proměnné (volitelné)
Příklad API spouštěče (pomocí curl):
# Nahraďte Private-Token svým osobním přístupovým tokenem s právy API
# Nahraďte `<your_project_id>` ID vašeho projektu
# Nahraďte `<your_ref_name>` názvem větve nebo štítku
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'
Příklad použití proměnné v .gitlab-ci.yml pro podmíněné spuštění:
stages:
- build
- deploy
scheduled_job:
stage: build
script:
- echo "Tato práce se spustí pouze při spuštění plánem"
only:
variables:
- $CI_PIPELINE_SOURCE == "schedule"
other_job:
stage: deploy
script:
- echo "Tato práce se spustí pro všechny zdroje pipeline"
# Bez podmínky `only: variables:`
Volba metody závisí na konkrétních požadavcích. Pro jednoduché opakující se úkoly jsou nejlepší plány pipeline. Pro složitější scénáře nebo integraci s externími systémy jsou vhodné API spouštěče. Podmíněné spuštění s proměnnými je užitečné pro řízení toku uvnitř již spuštěného pipeline.