gpt4 book ai didi

jenkins - 从 Jenkinsfile 调用 gradlew

转载 作者:行者123 更新时间:2023-12-02 17:33:05 26 4
gpt4 key购买 nike

我的项目在根目录中包含一个 gradlew shell 脚本和一个 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,提示也许我走错了,目录或者有权限问题?欢迎提出建议!

最佳答案

这对我来说是一个误解:我以为 Jenkins 会在运行我的 Jenkinsfile 之前拉下存储库,但事实并非如此,我需要自己做,添加:

checkout scm

我现在收到一个不相关的错误。

这在 documentation 中有介绍。 ,但我有一种错误的印象,认为在我的设置中没有必要。

关于jenkins - 从 Jenkinsfile 调用 gradlew,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41005458/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com