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 Adrien Dorsaz (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:
ci/build.yml
ci/deploy.yml
Si tu ne le peux pas, vu ce message d'erreur:
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.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[^] # Re: Yaml est sensible aux espaces
Posté par Gil Cot ✔ (site web personnel, Mastodon) . Évalué à 2 (+0/-0).
Je pense que le souci est vraiment lié au mésusage de la clé d’inclusion. La documentation de
include:local
dit que le fichier inclus doit être dans la branche et que le chemin relatif est évalué par rapport au fichier appelant… (est-ce que le fichier est bien dans la branche et est-ce le bon chemin ?) Il y a une page dédiée auxinclude
qui montre le fonctionnement des inclusions (que je n’utilise pas.)“It is seldom that liberty of any kind is lost all at once.” ― David Hume
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.