我有一个Jenkinsfile,其中构建和测试在同一个Slaver上运行。我的要求是,构建必须在一个从站(比如A)上,测试必须在另一个从站(比如B)上运行。
我刚刚设置了奴隶B,我可以看到我的奴隶A和B都在Jenkins-
以下是看到的问题:
1.)在构建阶段成功后,我得到以下错误:
" java.lang.NoSuchMethodError:在步骤[archive,bat,build,catchError,checkout,deleteDir,Dir,dockerFingerprintFrom,dockerFingerprintRun,dockerNode,echo,emailext,emailextrecipients,envVarsForTool,Error,fileExists,findBuildScans,getContext,git,input,isUnix,junit,library,libraryResource,load,lock,mail,milestone,Node,parallel,powershell,properties,publishHTML antTarget、any、anyOf、apiToken、archiveArtifacts、artifactManager、attach、authorizationMatrix、batchFile、booleanParam、branch、brokenBuildSuspects、brokenTestsSuspects、buildButton、buildDiscarder、buildTimestamp、build timestamp Java . util . concurrent . threadpool executor$worker . run(threadpool executor . Java at Java . lang . thread . run(thread . Java:748)Finished:FAILURE "
2.)没有看到我的分支的“准备测试”和“测试”阶段,但我可以看到与构建相关的阶段。
附上我的Jenkins文件代码:
pipeline {
agent none
options {
skipDefaultCheckout true
}
stages {
stage('build') {
agent {
docker {
image 'XYZ'
args '-v /etc/localtime:/etc/localtime:ro'
}
}
options { skipDefaultCheckout(true) }
steps {
echo '########################################## Building #########################################'
// trigger the build
sh 'scm-src/build.sh all-projects'
}
}
}
}
pipeline {
agent {
label 'laptop-hp'
}
stages {
stage('prepare_test') {
agent {
docker {
image 'ABC'
args '-v /home/jenkins/.ssh/:/home/jenkins/.ssh:ro -v /etc/localtime:/etc/localtime:ro'
}
}
options { skipDefaultCheckout(true) }
steps {
echo '####################################### Prepare Test Environment ############################'
sh 'scm-src/test.sh prepare'
}
}
stage('test') {
agent {
docker {
image 'ABC'
args '-v /home/jenkins/.ssh/:/home/jenkins/.ssh:ro -v /etc/localtime:/etc/localtime:ro'
}
}
options { skipDefaultCheckout(true) }
steps {
echo '########################################## Testing ##########################################'
sh 'scm-src/test.sh run'
}
}
}
}
在Jenkinsfile中,我的从属服务器B的名称是“laptop-hp”
Jenkinsfile有问题吗?还是我错过了从机B上的一些设置?
关于kdy
在一个声明性管道中,您不能有多个管道{}
块。正确的语法是在构建阶段之后立即附加您的测试阶段。然后为docker{}
中的每个阶段定义参数标签
以在相应的从站上运行。此外,在管道的顶层添加一次选项skipDefaultCheckout true
就足够了。
您的管道现在应如下所示:
pipeline {
agent none
options {
skipDefaultCheckout true
}
stages {
stage('build') {
agent {
docker {
image 'XYZ'
label 'slave-A'
args '-v /etc/localtime:/etc/localtime:ro'
}
}
steps {
echo '########################################## Building #########################################'
// trigger the build
sh 'scm-src/build.sh all-projects'
}
}
stage('prepare_test') {
agent {
docker {
image 'ABC'
label 'laptop-hp'
args '-v /home/jenkins/.ssh/:/home/jenkins/.ssh:ro -v /etc/localtime:/etc/localtime:ro'
}
}
steps {
echo '####################################### Prepare Test Environment ############################'
sh 'scm-src/test.sh prepare'
}
}
stage('test') {
agent {
docker {
image 'ABC'
label 'laptop-hp'
args '-v /home/jenkins/.ssh/:/home/jenkins/.ssh:ro -v /etc/localtime:/etc/localtime:ro'
}
}
steps {
echo '########################################## Testing ##########################################'
sh 'scm-src/test.sh run'
}
}
}
}
问题内容: 我能够运行以下shell脚本,但无法从Jenkins管道代码运行。 尝试1。 输出: 尝试2: 尝试过sh“”“ 输出 : 美元符号后的非法字符串体字符;解决方案:要么转义文字美元符号,要么将值表达式括起来 有人能帮我吗? 问题答案: 这应该工作。 您还需要在调用下面的新subshell时转义$
问题内容: 我目前正在尝试从管道中将groovy脚本作为节点之一运行,但是遇到了以下错误: 另外,我尝试以Groovy的方式安装插件,但由于某种原因,它将无法安装。每当我刷新工具页面时,安装程序就会消失。我安装groovy错误吗?请帮忙! 编辑:相关数据 而且ideainspect.groovy文件是shebang的可执行文件,这可能是问题所在。 问题答案: 您的jenkins用户在使用它时会
问题内容: 我已经尝试过将docker和jenkins一起使用,两者都安装在我的机器上(w10),并且我使用jankins运行docker镜像。但是,当我按照jenkins文档中的示例(来自doc的示例)时,它不起作用。不涉及时,不同的管道脚本可以工作,我还尝试从jenkins config接口添加。 管道脚本 错误堆栈 我在SO上发现了类似的问题\(相同但没有明确的解决方案) 问题答案: 您的工
我使用Jenkins在docker容器中使用以下命令 码头工人拉詹金斯/詹金斯 docker run-p8080:8080--name=jenkins master jenkins/jenkins 获取此错误 calc.py/var/jenkins_home/workspace/pythoncalculator@tmp/耐用-b7e99e01/脚本。sh:1:/var/jenkins\u home
我查看了以下文档:https://docs.sonarqube.org/display/scan/analysy+with+sonarqube+scanner+for+jenkins 然而,我不能让它工作。首先,文档似乎需要更新,因为示例中的语法是错误的。在最新版本的声明性管道中,在-tag中是必需的。此外,-关键字只有在-标记中才会解析。 null
问题内容: 我正在尝试为iOS应用程序设置CI环境。到目前为止,我已经从命令行获得了xcodebuild来正确构建测试版本,但是当Jenkins尝试执行它时,我在控制台中读取了以下内容: 有什么想法吗?我对詹金斯(Jenkins)相当陌生,但我已尽我所能用Google Fu回答了这个问题,但没有成功。我最初确实是通过手动安装Jenkins(从技术上来说是自制的)遇到了这个问题,但是最近使用了OSX