2016-12-06 64 views
2

我的項目包含一個gradlew shell腳本和一個Jenkinsfile在根中。 Jenkinsfile包含:從Jenkinsfile調用gradlew

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

當我將它推送到我的存儲庫時,Jenkins找到Jenkinsfile並嘗試運行gradlew。然而,失敗,通知我:

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 

如何修改我的Jenkinsfile使得gradlew腳本位於正確運行?

跟帖#1

以下:

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

結果:

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 

因此還獲得了 '未找到' 的錯誤。

跟帖#2

運行:

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' 
} 

輸出total 0,這表明也許我錯了,目錄或有權限問題?建議將受到歡迎!

回答

3

事實證明,這是我的一個誤區:我已經推測,詹金斯將拉低迴購才跑我Jenkinsfile,但是這是不完全的情況下,我需要通過自己做增加:

checkout scm 

我現在收到一個無關的錯誤。

這在documentation中有所涵蓋,但我的錯誤印象是它在我的設置中不需要。