doc-locale/fr-fr/ci/pipelines/schedules.md
{{< details >}}
{{< /details >}}
Créez des planifications de pipeline pour exécuter des pipelines à intervalles réguliers en fonction de modèles cron. Utilisez des planifications de pipeline pour les tâches devant s'exécuter selon un programme basé sur le temps plutôt que déclenchées par des modifications du code.
Contrairement aux pipelines déclenchés par des commits ou des merge requests, les pipelines programmés s'exécutent indépendamment des modifications du code. Cela les rend adaptés aux tâches devant s'effectuer indépendamment de l'activité de développement, telles que la mise à jour des déploiements ou l'exécution d'une maintenance périodique.
Les pipelines programmés cessent de s'exécuter lorsqu'un projet ou un groupe est marqué pour suppression.
{{< history >}}
{{< /history >}}
Lorsque vous créez une planification de pipeline, vous devenez le propriétaire de la planification. Le pipeline s'exécute avec vos autorisations et peut accéder aux environnements protégés et utiliser le jeton de job CI/CD en fonction de votre niveau d'accès.
Prérequis :
.gitlab-ci.yml doit avoir une syntaxe valide. Vous pouvez valider votre configuration avant la planification.Pour créer une planification de pipeline :
spec:inputs de votre pipeline. Ces valeurs d'entrée sont utilisées chaque fois que le pipeline programmé s'exécute. Une planification peut avoir un maximum de 20 entrées.Si le projet a atteint le nombre maximal de planifications de pipeline, supprimez les planifications inutilisées avant d'en ajouter une autre.
Prérequis :
Pour modifier une planification de pipeline :
Vous pouvez exécuter manuellement des pipelines programmés une fois par minute. Lorsque vous exécutez un pipeline programmé manuellement, il utilise vos autorisations plutôt que celles du propriétaire de la planification.
Pour déclencher immédiatement une planification de pipeline au lieu d'attendre l'heure programmée suivante :
Si une planification de pipeline devient inactive parce que le propriétaire d'origine n'est pas disponible, vous pouvez en prendre possession.
Les pipelines programmés s'exécutent avec les autorisations de l'utilisateur qui possède la planification.
Prérequis :
Pour prendre possession d'une planification :
{{< history >}}
{{< /history >}}
Pour afficher les planifications de pipeline actives dont vous êtes propriétaire dans tous vos projets :
Lorsque vous utilisez des planifications de pipeline, vous pouvez rencontrer les problèmes suivants.
Si le statut d'un pipeline programmé devient Inactive de façon inattendue, le propriétaire de la planification a peut-être été bloqué ou supprimé du projet.
Prenez possession de la planification pour la réactiver.
Pour éviter une charge excessive résultant du démarrage simultané de trop nombreux pipelines, examinez et distribuez vos planifications de pipeline :
Exécutez cette commande pour extraire et mettre en forme les données de planification :
outfile=/tmp/gitlab_ci_schedules.tsv
sudo gitlab-psql --command "
COPY (SELECT
ci_pipeline_schedules.cron,
ci_pipeline_schedules.cron_timezone,
namespaces.path AS group,
projects.path AS project,
users.email
FROM ci_pipeline_schedules
JOIN projects ON projects.id = ci_pipeline_schedules.project_id
JOIN namespaces ON namespaces.id = projects.namespace_id
JOIN users ON users.id = ci_pipeline_schedules.owner_id
WHERE ci_pipeline_schedules.active = 't'
) TO '$outfile' CSV HEADER DELIMITER E'\t' ;"
sort "$outfile" | uniq -c | sort -n
Examinez la sortie pour identifier les modèles cron les plus courants. Par exemple, de nombreuses planifications peuvent s'exécuter au début de chaque heure (0 * * * *).
Ajustez les planifications pour créer un modèle cron décalé, en particulier pour les dépôts volumineux. Par exemple, au lieu de plusieurs planifications s'exécutant au début de chaque heure, distribuez-les tout au long de l'heure (5 * * * *, 15 * * * *, 25 * * * *).