Jenkins Pipeline node和agent的区别与联系
联系:node, agent以及slave都用来指被Jenkins master管理的用来执行Jenkins jobs的服务器。区别:agents用在表述性pipeline中,可以不仅仅是nodes,还可以是docker container等。nodes用在脚本化pipeline中。表述性pipeline所有操作都在pipeline块中执行,格式如下:p...
·
联系:node, agent以及slave都用来指被Jenkins master管理的用来执行Jenkins jobs的服务器。
区别:agents用在表述性pipeline中,可以不仅仅是nodes,还可以是docker container等。
nodes用在脚本化pipeline中。
表述性pipeline
所有操作都在pipeline块中执行,格式如下:
pipeline
{
//pipeline can be defined here
}
脚本化pipeline
绝大多数操作都在node中执行,格式如下:
node{
stage("A"){
}
// ... stages
}
Agent在表述性pipeline中的应用
agent必须在pipeline的顶端定义,也可在stage的顶端定义。例如
pipeline {
agent none
stages {
stage("Stage A") {
agent any
} // stage
stage("Stage B") {
agent { label 'my-defined-label' }
} //stage
} // stages
}
Node在脚本化pipeline中的应用
在脚本pipeline中,一个或者多个node块来完成整个pipeline的核心工作。在脚本pipeline中,node并不是必须的。但是,node中的pipeline可以完成两样工作:
1. 一个块就是一个queue,只要node中又可用的executor,则块中的模块就会执行。
2. 创建工作区间。
node {
stage('Build') {
//
}
stage('Test') {
//
}
stage('Deploy') {
//
}
}
node {
stage('ReBuild') {
//
}
stage('ReTest') {
//
}
stage('ReDeploy') {
//
}
}
更多推荐
已为社区贡献2条内容
所有评论(0)