2016-12-06 1 views
2

Mon projet contient un script shell gradlew et un fichier Jenkins à la racine. Le Jenkinsfile contient:Call gradlew de Jenkinsfile

import jenkins.model.Jenkins 
node('jnlp-slave-with-java-build-tools') { 
    sh 'gradlew build -x check' 
} 

Quand je pousse à mon respository, Jenkins trouve le Jenkinsfile et tente d'exécuter gradlew. Il échoue, cependant, me informant que:

Running on ECS-2d51eb80546b7 in /home/jenkins/workspace/tems_chore_add-jenkins-file-7VBJJMGP4JS3QPUSNL2ROWDE3ECV5A4EJQJ6Z5VCSPDK7UABIPVQ 
[Pipeline] { 
[Pipeline] sh 
[tems_chore_add-jenkins-file-7VBJJMGP4JS3QPUSNL2ROWDE3ECV5A4EJQJ6Z5VCSPDK7UABIPVQ] Running shell script 
+ gradlew build -x check 
/home/jenkins/workspace/tems_chore_add-je[email protected]tmp/durable-838b5837/script.sh: 2: /home/jenkins/workspace/tems_chore_add-je[email protected]tmp/durable-838b5837/script.sh: gradlew: not found 
[Pipeline] } 
[Pipeline] // node 
[Pipeline] End of Pipeline 

GitHub has been notified of this commit’s build result 

ERROR: script returned exit code 127 
Finished: FAILURE 

Comment puis-je modifier mon Jenkinsfile afin que le script gradlew est situé et fonctionner correctement?

# 1 Followup

qui suit:

import jenkins.model.Jenkins 
node('jnlp-slave-with-java-build-tools') { 
    sh './gradlew build -x check' 
} 

Résultats dans:

tems_chore_add-jenkins-file-7VBJJMGP4JS3QPUSNL2ROWDE3ECV5A4EJQJ6Z5VCSPDK7UABIPVQ] Running shell script 
+ ./gradlew build -x check 
/home/jenkins/workspace/tems_chore_add-je[email protected]tmp/durable-3c901cf0/script.sh: 2: /home/jenkins/workspace/tems_chore_add-je[email protected]tmp/durable-3c901cf0/script.sh: ./gradlew: not found 

donc obtenir encore une erreur 'introuvable'.

# 2 Followup

Course à pied:

import jenkins.model.Jenkins 
node('jnlp-slave-with-java-build-tools') { 
    files = sh (script: 'ls -l', 
       returnStdout: true).trim() 
    echo "${files}" 

    sh './gradlew build -x check' 
} 

Sorties total 0, ce qui suggère que peut-être que je suis dans le mauvais, le répertoire ou avoir un problème d'autorisations? Des suggestions seraient les bienvenues!

Répondre

3

Cela est avéré être un malentendu de ma part: j'avais présumé que Jenkins allait déroulez le repo avant il a couru mon Jenkinsfile, mais ce n'est pas exactement le cas, et je devais me le faire par en ajoutant:

checkout scm 

Je reçois maintenant une erreur sans rapport.

Ceci est couvert par le documentation, mais j'avais la fausse impression que cela ne serait pas nécessaire dans ma configuration.