2 votes

Le pipeline Jenkins appelle git.exe sur un nœud non-Windows

J'ai un master installé sur une machine Windows.

J'ai quelques nœuds sur Jenkins, dont l'un a 2 étiquettes : "projet système".

Ce nœud est en fait une machine Solaris 11.3 ordinaire.

Les autres nœuds sont des machines Windows ordinaires (y compris le maître).

J'ai un fichier Jenkins dans mon projet dans lequel j'ai défini le pipeline comme suit :

pipeline {
  agent { label 'system && project' }

  environment {
    PATH='$PATH:/home/user/path'
  }
  stage('Build') {
    echo "Test PATH=$PATH"
  }
...

Lorsque je construis, je vois apparaître l'erreur dans le journal :

ERROR: Error cloning remote repo 'origin'
...
Caused by: java.io.IOException: Cannot run program "git.exe" (in directory "/remote/rootdir/workspace/ProjectName"): error=2, No such file or directory

Le build est ajouté en tant que Jenkins Pipeline, et non pas en tant que projet freestyle ou autre. Et pour l'instant, la seule chose configurée est le repo GitLab avec les identifiants SSH (clé rsa).

Mais pourquoi essaie-t-il d'appeler "git.exe" sous Solaris ? Il m'apparaît clairement dans la section "Nodes" ( https://servername/computer/ ) qu'il s'agit en fait d'un SunOS (amd64).

Peut-il être appelé sur le mauvais nœud ? Mais je vois que le répertoire "/remote/rootdir/workspace/ProjectName" a été créé (il n'était pas là avant, je l'ai même supprimé et relancé la compilation pour m'assurer que Jenkins le crée réellement). Il est clair que ce n'est pas le cas, comme je le soupçonnais à l'origine.

La machine elle-même a git installé - j'ai vérifié en clonant manuellement le même repo en utilisant la même clé rsa.

Qu'est-ce que je fais mal ? Qu'est-ce qui me manque ? Comment dire à Jenkins d'utiliser le bon git ?

S'il vous plaît, aidez-nous.

1voto

a_girl Points 217

Dans ce cas, le problème était que le maître Jenkins était installé et fonctionnait sous Windows et qu'il n'y avait pas d'interface utilisateur. git configuré pour unix(solaris)/linux.

J'ai dû aller à Manage Jenkins >> Global Tools Configuration >> Git >> Add Git et ajoutez une autre instance avec "Path to Git executable" égal à "git", comme indiqué dans la réponse à cette question : Jenkins n'a pas pu exécuter git

Il n'y avait qu'un seul git configuré : "Git-win"->"git.exe". Il y en a maintenant deux : "Git.win"->"git.exe" et "Git"->"git". Et jenkins a une option dans la configuration du travail pour savoir lequel utiliser. Ainsi, vous pouvez sélectionner "Git-win" pour les travaux Windows et "Git" pour les travaux unix (solaris)/linux.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X