Forum Programmation.autre séparation script ci principal en plusieurs petits scripts

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes :
0
28
mai
2025

Bonjour,
j'essaye de séparer mon script ci principal (gitlab) en plusieurs petit scripts, plus facile à maintenir. Pour ça, j'utilise include:local pour aller chercher mes scripts que j'ai placé dans un répertoire ci à la racine de mon projet.Ça nous donne :

    .
    ci
      |- build.yml
      |- deploy.yml

et pour le script principal:

    image: alpine

    stages:
      - build   # Étape pour compiler le code et générer la documentation
      - deploy  # Étape pour déployer le RPM sur le dépôt personnel et la documentation

    include:
      - local: '/ci/build.yml'
      - local: '/ci/deploy.yml'

Gitlab ne semble pas en vouloir. J'ai un message d'erreur du type

Unable to create pipeline
jobs:build_fedora config contains unknown keys: paths

et quand je vais dans le pipeline editor et que je lui demande de valider mon script alors j'ai l'erreur:

    Pipeline simulation completed with errors
    Simulated a git push event for a default branch. Rules, only, except, and needs job dependencies logic have been evaluated. Learn more

    Local file `ci/build.yml` does not exist!

Évidemment, quand tout est dans le même script, ca fonctionne parfaitement.

Est-ce que vous pouvez m'aider, s'il vous plait :) ?

Merci d'avance pour votre aide.

Olivier

  • # Yaml est sensible aux espaces

    Posté par  (site web personnel, Mastodon) . Évalué à 2 (+0/-0).

    Hello,

    Pour t'aider, le plus simple serait que tu nous partage le contenu de tes fichiers:

    1. le script original qui contient tout
    2. le script ci/build.yml
    3. le script ci/deploy.yml

    Si tu ne le peux pas, vu ce message d'erreur:

    Unable to create pipeline jobs:build_fedora config contains unknown keys: paths

    Je dirais que tu dois avoir un problème d'indentation dans la définition du job build_fedora: la propriété paths n'existe pas à la racine d'un job.

    D'après la référence des mots clés de Gitlab CI, il existe bien la clé paths, mais elle doit être soit soit la clé cache, soit sous la clé artifacts.

    En plus de cette page, j'utilise aussi l'outil yamllint pour vérifier la syntaxe de mes fichiers yaml, ça peux te faire gagner du temps.

    Pipeline simulation completed with errors
    Simulated a git push event for a default branch. Rules, only, except, and needs job dependencies logic have been evaluated. Learn more

    Local file ci/build.yml does not exist!

    J'utilise d'habitude l'éditeur avec un seul fichier, je ne pourrais pas t'aider pour essayer de le faire fonctionner.

    Par contre, j'ai entendu parlé d'un outil qui te permet d'exécuter un pipeline en local directement sans avoir besoin de passer par les serveurs. Ça pourrait te faire gagner du temps pour valider tes configurations.

    Je viens de voir dans cette réponse StackOverflow qu'apparemment tu peux utiliser gitlab-runner exec localement et que sinon, l'outil que je cherchais est: https://github.com/firecow/gitlab-ci-local

Envoyer un commentaire

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.