Comment créer des tâches récurrentes dans GitLab CI ?
sobes.tech IA
Réponse de l'IA
Il existe plusieurs approches pour créer des tâches récurrentes dans GitLab CI :
- Planifications de pipelines (Pipeline Schedules) : C'est la méthode la plus courante et conçue à cet effet. Vous configurez un horaire dans l'interface GitLab, en indiquant la branche/étiquette, les variables (si nécessaire) et la fréquence d'exécution (syntaxe cron).
- Déclencheurs API : Vous pouvez utiliser l'API GitLab pour lancer des pipelines depuis un système externe ou un script. Cela est utile si la planification est plus complexe ou dépend d'événements externes.
- Variables CI/CD pour exécution conditionnelle : Dans le fichier
.gitlab-ci.yml, vous pouvez utiliser des variables prédéfinies ou personnalisées pour déterminer les conditions d'exécution des tâches. Bien que cela ne crée pas un horaire en soi, vous pouvez lancer un pipeline selon un horaire (via les Programmes de pipeline) et décider quelles tâches exécuter en fonction des variables d'horaire.
Exemple d'utilisation des Programmes de pipeline :
Dans l'interface GitLab, allez dans le dépôt -> Build -> Programmes de pipeline. Créez un nouvel horaire en indiquant :
- Description
- Branche/étiquette
- Intervalle (syntaxe cron, par exemple,
0 0 * * *pour une exécution quotidienne à minuit) - Variables (optionnel)
Exemple de déclencheur API (en utilisant curl) :
# Remplacez Private-Token par votre jeton d'accès personnel avec les droits API
# Remplacez <your_project_id> par l'ID de votre projet
# Remplacez <your_ref_name> par le nom de la branche ou de l'étiquette
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'
Exemple d'utilisation d'une variable dans .gitlab-ci.yml pour exécution conditionnelle :
stages:
- build
- deploy
scheduled_job:
stage: build
script:
- echo "Ce travail ne s'exécute que lorsqu'il est déclenché par un horaire"
only:
variables:
- $CI_PIPELINE_SOURCE == "schedule"
other_job:
stage: deploy
script:
- echo "Ce travail s'exécute pour toutes les sources du pipeline"
# Pas de condition `only: variables:`
Le choix de la méthode dépend des exigences spécifiques. Pour des tâches simples et récurrentes, les Programmes de pipeline sont le meilleur choix. Pour des scénarios plus complexes ou une intégration avec des systèmes externes, les déclencheurs API conviennent. L'exécution conditionnelle avec des variables est utile pour contrôler le flux à l'intérieur d'un pipeline déjà lancé.