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.