“Pipeline”的版本间的差异

来自linux中国网wiki
跳到导航 跳到搜索
(创建页面,内容为“=Jenkins Pipeline 支持两种语法= <pre> Jenkins Pipeline 支持两种语法,一种 Declarative Pipeline(声明式),一种 ScriptedPipeline(脚本式)。…”)
 
第14行: 第14行:
  
 
下面是两种不同方式的 jenkinsfile 示例
 
下面是两种不同方式的 jenkinsfile 示例
 +
</pre>
 +
==Jenkinsfile (声明式)==
  
Jenkinsfile (声明式)
+
<pre>
 
 
 
复制代码
 
  
 
pipeline {  
 
pipeline {  
第40行: 第39行:
 
         }
 
         }
 
     }
 
     }
 
 
 
 
 
 
  
 
前面我们说过,声明式的Pipeline有严格的预定义格式结构,有固定的格式,外层必须是pipeline{},
 
前面我们说过,声明式的Pipeline有严格的预定义格式结构,有固定的格式,外层必须是pipeline{},
 
紧接着是 agent  就是节点node ,agent也是固定的,pipeline紧跟着进来 一定是agent 参考上面的格式  后面的any是任何节点还是其中一个节点,指定某一个节点是自己指定,通过标签自己来指定节点
 
紧接着是 agent  就是节点node ,agent也是固定的,pipeline紧跟着进来 一定是agent 参考上面的格式  后面的any是任何节点还是其中一个节点,指定某一个节点是自己指定,通过标签自己来指定节点
 
 
  
 
指示 Jenkins 分配一个执行器和工作空间来执行下面的 Pipeline,
 
指示 Jenkins 分配一个执行器和工作空间来执行下面的 Pipeline,
  
   
+
  stages和steps是申明式Jenkinsfile必须的,stages是一个个阶段,所有的stage必须要定义在stages里,
 
 
stages和steps是申明式Jenkinsfile必须的,stages是一个个阶段,所有的stage必须要定义在stages里,
 
  
 
stages(‘’) 括号里面是名称,这个阶段是什么名称,stages这个名称不能重复,同一个stage名称只能有一个
 
stages(‘’) 括号里面是名称,这个阶段是什么名称,stages这个名称不能重复,同一个stage名称只能有一个
 
 
  
 
每一个stage下的 step 要定义在一个 steps 里,stages里面包含了step,具体的执行步骤都写在step里面 ,一行一个,可以写多行
 
每一个stage下的 step 要定义在一个 steps 里,stages里面包含了step,具体的执行步骤都写在step里面 ,一行一个,可以写多行
  
 
   
 
   
Jenkinsfile( 脚本式 )
+
==Jenkinsfile(脚本式)==
复制代码
+
<pre>
  
 
node {  
 
node {  
第79行: 第66行:
 
     }  
 
     }  
 
}
 
}
 
 
 
 
  
 
在脚本式 jenkinsfile 里,你可以定义一个 node 或者多个 node 块,然后在 node 块里
 
在脚本式 jenkinsfile 里,你可以定义一个 node 或者多个 node 块,然后在 node 块里
 
定义你的 stage,在 stage 里定义你的 step 即可
 
定义你的 stage,在 stage 里定义你的 step 即可
 
</pre>
 
</pre>

2021年6月23日 (三) 05:54的版本

Jenkins Pipeline 支持两种语法

Jenkins Pipeline 支持两种语法,一种 Declarative Pipeline(声明式),一种 ScriptedPipeline(脚本式)。


声明式的 Pipeline 限制用户使用严格的预选定义的结构,是一种声明
式的编程模型,对比脚本式的 Pipeline 学习起来更加简单;

脚本式的 Pipeline 限制比较少,结构和语法的限制由 Groovy 本身决定,是一种命令式的编程模型。
所以我们学习使用声明式的方式编写 jenkinsfile。
一般来说 jenkinsfile 会被放在代码库的根目录下。

当然也可以在 Web 页面定义。

下面是两种不同方式的 jenkinsfile 示例

Jenkinsfile (声明式)


pipeline { 
    agent any
    stages { 
        stage('Build') { 
            steps { 
                echo 'Building..' 
                } 
            } 
            stage('Test') { 
                steps { 
                    echo 'Testing..' 
                } 
            } 
            stage('Deploy') { 
                steps { 
                    echo 'Deploying....' 
                } 
            } 
        }
    }

前面我们说过,声明式的Pipeline有严格的预定义格式结构,有固定的格式,外层必须是pipeline{},
紧接着是 agent  就是节点node ,agent也是固定的,pipeline紧跟着进来 一定是agent 参考上面的格式  后面的any是任何节点还是其中一个节点,指定某一个节点是自己指定,通过标签自己来指定节点

指示 Jenkins 分配一个执行器和工作空间来执行下面的 Pipeline,

 stages和steps是申明式Jenkinsfile必须的,stages是一个个阶段,所有的stage必须要定义在stages里,

stages(‘’) 括号里面是名称,这个阶段是什么名称,stages这个名称不能重复,同一个stage名称只能有一个

每一个stage下的 step 要定义在一个 steps 里,stages里面包含了step,具体的执行步骤都写在step里面 ,一行一个,可以写多行

 
==Jenkinsfile(脚本式)==
<pre>

node { 
    stage('Build') { 
        // 
    } 
    stage('Test') { 
        // 
    } 
    stage('Deploy') { 
        // 
    } 
}

在脚本式 jenkinsfile 里,你可以定义一个 node 或者多个 node 块,然后在 node 块里
定义你的 stage,在 stage 里定义你的 step 即可