web-dev-qa-db-fra.com

Comment puis-je tester gitlab-ci.yml?

J'ai enfin réussi à le faire fonctionner de sorte que lorsque vous appuyez sur un travail de branche commence à être lancé, mais j'attends son lancement environ 3 minutes, puis j'ai des erreurs que je dois corriger, puis commettre à nouveau, puis attendre encore. Comment puis-je simplement SSH à ce coureur public et tester la partie "script" de .gitlab-ci.yml juste dans le bash? 

7
holms

Vous pouvez exécuter des générations localement (si vous contrôlez le coureur) en utilisant la commande gitlab-runner exec comme décrit dans la documentation officielle ici .

Assurez-vous également de vérifier les limitations des tests de travail de cette manière.

8

Installez gitlab-runner

Sudo curl --output /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-darwin-AMD64
Sudo chmod +x /usr/local/bin/gitlab-runner

Docs officiels de gitlab-runner ici

Créer une commande

Le fichier .gitlab-ci.yml suivant définit une tâche nommée build:

build:
  script:
    - echo "Hello World"

Exécuter la commande localement (limitations s'appliquent!)

gitlab-runner exec Shell build

Lorsque j'exécute ce qui précède localement, j'obtiens le résultat suivant:

Running with gitlab-runner 11.3.1~beta.4.g0aa5179e (0aa5179e)
Using Shell executor...
Running on cory-klein.local...
Cloning repository...
Cloning into '/Users/coryklein/code/prometheus-redis-exporter/builds/0/project-0'...
done.
Checking out 66fff899 as master...
Skipping Git submodules setup
$ echo "Hello World"
Hello World
Job succeeded
6
Cory Klein

Pour mémoire: Vous pouvez également copier coller votre gitlab-ci.yml dans le formulaire linter fourni par gitlab.

 enter image description here

Selon le IDE que vous utilisez, vous pourrez peut-être trouver des plug-ins qui en vérifieront la validité. Par exemple, dans VS Code, vous pouvez utiliser un plugin appelé gitlab-vscode-extension qui peut valider votre fichier .gitlab-ci.yml.

3
B12Toaster

La bonne réponse est que vous ne pouvez pas tester votre pipeline de construction sans valider le code source dans votre référentiel. Vous ne pouvez tester qu'un seul travail - probablement le premier emploi - de votre pipeline de construction avec gitlab-runner exec.

Étant donné que vous ne pouvez pas exécuter plusieurs tâches, vous ne pouvez chaîner aucune étape de préparation ou de construction avec quoi que ce soit d'autre. Il n’existe aucun moyen d’empêcher gitlab-runner de créer une extraction propre et de détruire vos étapes de préparation/construction.

Le meilleur/seul moyen de tester est de créer une branche et de continuer à forcer les modifications apportées à .gitlab-ci.yml.

0
chugadie