我有一个Jenkins服务器和3个代理。生成器、程序员和测试员。这三个代理人是相当自我解释。构建器构建Yocto映像并保存输出文件。程控仪获取保存的图像文件,并将其放置在受试器械上。然后,测试人员针对新的映像文件运行一套自动化测试。
如果我的Builder的Yocto阶段完成了,我希望它能启动程序员代理的管道。我很难找到这样的例子。我想应该是类似这样的:
pipeline {
agent {
label 'YoctoBuildNode'
}
stage('Yocto') {
steps {
script {
if (isStagingOrMaster()) {
echo "Performing a full Yocto build for Staging!"
sh "chown -R $USER:$USER ${env.WORKSPACE}"
sh "chmod -R a+rwx ${env.WORKSPACE}"
sh "${env.WORKSPACE}/jenkins_quick_start.sh"
} else {
echo "Building the main Application for branch ${env.BRANCH_NAME}"
buildProject()
}
}
}
}
stage('Doxygen') {
}
state('Trigger Programmer') {
agent {
label 'ProgramNode'
}
Not sure what to do here
}
字符串
2条答案
按热度按时间lh80um4z1#
这里有一个例子,特别是本节的第二个例子。
简而言之,您声明顶级
agent none
,然后在构建的每一步都声明适当的agent
。大概是这样的:
字符串
w6lpcovy2#
您可以在每个阶段使用不同的代理。每个阶段将在自己的代理上执行,并且将工件从一个代理传递到另一个代理需要使用stashunstash
因为代理不共享文件系统
字符串