Back to Gitlabhq

Pipelines programmés

doc-locale/fr-fr/ci/pipelines/schedules.md

19.2.08.8 KB
Original Source

{{< details >}}

  • Édition : Gratuite, GitLab Premium, GitLab Ultimate
  • Offre : GitLab.com, GitLab Self-Managed, GitLab Dedicated

{{< /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.

Créer une planification de pipeline {#create-a-pipeline-schedule}

{{< 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 :

  • Vous devez disposer du rôle Developer, Maintainer ou Owner pour le projet.
  • Votre adresse e-mail principale doit être vérifiée.
  • Pour les planifications ciblant des branches protégées, vous devez disposer des autorisations de fusion pour la branche cible.
  • Votre fichier .gitlab-ci.yml doit avoir une syntaxe valide. Vous pouvez valider votre configuration avant la planification.

Pour créer une planification de pipeline :

  1. Dans la barre supérieure, sélectionnez Rechercher ou aller à et trouvez votre projet.
  2. Dans la barre latérale gauche, sélectionnez Version > Planifications de pipeline.
  3. Sélectionnez Nouveau programme.
  4. Remplissez les champs.
    • Schéma de l'intervalle : Sélectionnez l'un des intervalles préconfigurés ou saisissez un intervalle personnalisé en notation cron. Vous pouvez utiliser n'importe quelle valeur cron, mais les pipelines programmés ne peuvent pas s'exécuter plus fréquemment que la fréquence maximale des pipelines programmés de l'instance.
    • Target branch or tag : Sélectionnez la branche ou le tag pour le pipeline.
    • Entrées : Définissez des valeurs pour toutes les entrées définies dans la section 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.
    • Variables : Ajoutez autant de variables CI/CD que vous le souhaitez à la planification. Ces variables CI/CD sont disponibles uniquement lors de l'exécution du pipeline programmé, et non lors d'une autre exécution de pipeline. Les entrées sont recommandées pour la configuration du pipeline plutôt que les variables, car elles offrent une sécurité et une flexibilité améliorées.

Si le projet a atteint le nombre maximal de planifications de pipeline, supprimez les planifications inutilisées avant d'en ajouter une autre.

Modifier une planification de pipeline {#edit-a-pipeline-schedule}

Prérequis :

  • Vous devez être le propriétaire de la planification ou en prendre possession.
  • Vous devez disposer du rôle Developer, Maintainer ou Owner pour le projet.
  • Pour les planifications ciblant des branches protégées, vous devez disposer des autorisations de fusion pour la branche cible.
  • Pour les planifications s'exécutant sur des tags protégés, vous devez être autorisé à créer des tags protégés.

Pour modifier une planification de pipeline :

  1. Dans la barre supérieure, sélectionnez Rechercher ou aller à et trouvez votre projet.
  2. Dans la barre latérale gauche, sélectionnez Version > Planifications de pipeline.
  3. En regard de la planification, sélectionnez Éditer ({{< icon name="pencil" >}}).
  4. Apportez vos modifications, puis sélectionnez Sauvegarder les modifications.

Exécuter manuellement {#run-manually}

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 :

  1. Dans la barre supérieure, sélectionnez Rechercher ou aller à et trouvez votre projet.
  2. Dans la barre latérale gauche, sélectionnez Version > Planifications de pipeline.
  3. En regard de la planification, sélectionnez Exécution ({{< icon name="play" >}}).

Devenir propriétaire {#take-ownership}

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 :

  • Vous devez avoir le rôle Maintainer ou Owner pour le projet.

Pour prendre possession d'une planification :

  1. Dans la barre supérieure, sélectionnez Rechercher ou aller à et trouvez votre projet.
  2. Dans la barre latérale gauche, sélectionnez Version > Planifications de pipeline.
  3. En regard de la planification, sélectionnez Devenir propriétaire.

Afficher vos pipelines programmés {#view-your-scheduled-pipelines}

{{< history >}}

{{< /history >}}

Pour afficher les planifications de pipeline actives dont vous êtes propriétaire dans tous vos projets :

  1. Dans le coin supérieur droit, sélectionnez votre avatar.
  2. Sélectionnez Modifier le profil.
  3. Sélectionnez Compte.
  4. Faites défiler jusqu'à Pipelines programmés dont vous êtes propriétaire.

Dépannage {#troubleshooting}

Lorsque vous utilisez des planifications de pipeline, vous pouvez rencontrer les problèmes suivants.

Le pipeline programmé devient inactif {#scheduled-pipeline-becomes-inactive}

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.

Distribuer les planifications de pipeline pour éviter la surcharge système {#distribute-pipeline-schedules-to-prevent-system-load}

Pour éviter une charge excessive résultant du démarrage simultané de trop nombreux pipelines, examinez et distribuez vos planifications de pipeline :

  1. Exécutez cette commande pour extraire et mettre en forme les données de planification :

    shell
    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
    
  2. 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 * * * *).

  3. 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 * * * *).