【发布时间】:2019-10-15 12:41:10
【问题描述】:
我有一个 Jenkinsfile,其中构建和测试在同一个 Slave 上运行。 我的要求是构建必须在一个从属设备(比如 A)上,并且测试必须在另一个从属设备(比如 B)上运行。
我刚刚设置了从机 B,我可以在 Jenkins->管理节点中看到我的从机 A 和 B。 问题是构建阶段工作成功,但我的准备测试和测试阶段没有在从 B 上执行。
以下是发现的问题:
1.) 构建阶段成功后出现以下错误:
"java.lang.NoSuchMethodError: 在步骤 [archive、bat、build、catchError、checkout、deleteDir、dir、dockerFingerprintFrom、dockerFingerprintRun、dockerNode、echo、emailext、emailextrecipients、envVarsForTool、错误中找不到这样的 DSL 方法“代理” , fileExists, findBuildScans, getContext, git, input, isUnix, junit, library, libraryResource, load, lock, mail,里程碑, node, parallel, powershell, properties, publishHTML, pwd, readFile, readTrusted, resolveScm, retry, script, sh , sleep, stage, stash, step, svn, timeout, timestamps, tm, tool, unarchive,unstash, unstash, validateDeclarativePipeline, waitUntil, warnError, withContext, withCredentials, withDockerContainer, withDockerRegistry, withDockerServer, withEnv, wrap, writeFile, ws] 或符号 [all,allOf,always,ant,antFromApache,antOutcome,antTarget,any,anyOf,apiToken,架构,archiveArtifacts,artifactManager,attach,authorizationMatrix,batchFile,booleanParam,branch,brokenBuildSuspects,brokenTestsSuspects, buildButton, buildDiscarder, buildTimestamp, buildTimestamp java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java 在 java.lang.Thread.run(Thread.java:748) 完成:失败 "
2.) 看不到我的分支的阶段“prepare_test”和“测试”,而我可以看到与构建相关的阶段。
附上我的jenkinsfile代码:
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'
}
}
}
}
我的奴隶 B 的名字是 'laptop-hp',如 Jenkinsfile 中所示
Jenkinsfile 有问题还是我错过了我的奴隶 B 上的一些设置?
问候 kdy
【问题讨论】:
标签: jenkins