我的项目包含一个gradlew脚本和根目录中的Jenkinsfile。Jenkinsfile包含:
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-jenkins-file-7VBJJMGP4JS3QPUSNL2ROWDE3ECV5A4EJQJ6Z5VCSPDK7UABIPVQ@tmp/durable-838b5837/script.sh: 2: /home/jenkins/workspace/tems_chore_add-jenkins-file-7VBJJMGP4JS3QPUSNL2ROWDE3ECV5A4EJQJ6Z5VCSPDK7UABIPVQ@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-jenkins-file-7VBJJMGP4JS3QPUSNL2ROWDE3ECV5A4EJQJ6Z5VCSPDK7UABIPVQ@tmp/durable-3c901cf0/script.sh: 2: /home/jenkins/workspace/tems_chore_add-jenkins-file-7VBJJMGP4JS3QPUSNL2ROWDE3ECV5A4EJQJ6Z5VCSPDK7UABIPVQ@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,可能是我在错误的目录中,还是有权限问题?欢迎提出建议!
发布于 2016-12-07 06:02:35
事实证明,这是我的一个误解:我原以为Jenkins会在它运行我的Jenkinsfile之前把它拆掉,但事实并非如此,我需要自己去做,并补充道:
checkout scm我现在收到了一个无关的错误。
这是涵盖在文档,但我有一个错误的印象,它不需要在我的设置。
https://stackoverflow.com/questions/41005458
复制相似问题