ein*_*rne 4 jenkins jenkins-pipeline
\xef\xbc\xa9注意到 Jenkins 管道文件 -- Jenkinsfile 有两种语法
\n\n我已经使声明性脚本可以指定节点来运行我的任务。但是我不知道如何将我的脚本修改为脚本语法。
\n\n我的声明性脚本
\n\npipeline {\n agent none\n\n stages {\n stage('Build') {\n agent { label 'my-label\xe2\x80\x8b' }\n steps {\n echo 'Building..'\n sh '''\n\n '''\n }\n }\n stage('Test') {\n agent { label 'my-label\xe2\x80\x8b' }\n steps {\n echo 'Testing..'\n sh '''\n\n '''\n }\n }\n stage('Deploy') {\n agent { label 'my-label\xe2\x80\x8b' }\n steps {\n echo 'Deploying....'\n sh '''\n\n '''\n }\n }\n }\n}\nRun Code Online (Sandbox Code Playgroud)\n\n我尝试过以这种方式使用:
\n\nnode('my-label') {\n stage 'SCM'\n git xxxx\n\n stage 'Build'\n sh ''' '''\n}\nRun Code Online (Sandbox Code Playgroud)\n\n但 Jenkins 似乎找不到我要运行的节点。
\n这个简单的例子怎么样?
stage("one") {
node("linux") {
echo "One"
}
}
stage("two") {
node("linux") {
echo "two"
}
}
stage("three") {
node("linux") {
echo "three"
}
}
Run Code Online (Sandbox Code Playgroud)
或者下面的答案,这样,如果有多个节点具有相同的标签并且运行被另一个作业中断,则可以保证阶段在同一节点上运行。上面的示例将在每个阶段后释放节点,下面的示例将在所有三个阶段保留节点。
node("linux") {
stage("one") {
echo "One"
}
stage("two") {
echo "two"
}
stage("three") {
echo "three"
}
}
Run Code Online (Sandbox Code Playgroud)