Jenkins Pipeline 流水线 - 声明式 Demo

Jenkins Pipeline 流水线
流水线既能作为任务的本身,也能作为 Jenkinsfile
使用流水线可以让我们的任务从UI手动操作,转换为代码化,像dockerfile 一样。从shell 命令到配置文件,更适合大型项目,可以让团队其他开发者同时参与进来,

完整语法

tools:添加工具,如maven、JDK
triggers:基于hook模式触发流水线任务;
environment:声明全局通用的环境变量;
stages:定义任务步骤,即流程分段处理;
post.always:最终执行的动作;

pipeline {
    agent any
    tools {}  
    triggers {}
    environment {}
    stages {
        stage('步骤说明') {
            steps {
                echo ''
            }
        }
    }
    post { always {}}  //执行完任务后,处理
}

5个必备的组成部分

pipeline: 整条流水线
agent: 指定执行器
stages: 所有阶段
stage:某一阶段,可有多个
steps: 阶段内的每一步,可执行命令

image

  • agent:该部分指定整个Pipeline或特定阶段将在Jenkins环境中执行的位置,具体取决于该agent 部分的放置位置。该部分必须在pipeline块内的顶层定义 ,也可以使用在stage级。

  • stage:表示这个Pipeline的某一个执行阶段(使用stage使得逻辑变得更加简单明了)

  • steps: 包含一个或者多个在stage块中执行的step序列(在这里执行操作:运行maven或者部署等等)

  • environment:指定键值对,可用于step中,主要是为常量或者变量赋值,根据所在的位置来决定其作用范围(类似于java中全局和局部的概念)

  • options:允许执行pipeline内置的专用选项,也可以使用由插件提供的

  • parameters:提供触发pipeline时的参数列表

  • trigger:定义了触发pipeline的方式(jenkins1.x中的pollscm定时构建)

  • tools:自动安装工具,注意这里使用的一定是在jenkins全局配置中已经定义好了的

  • when:可以用来执行一些代码逻辑

  • post:可以根据pipeline的状态来执行一些操作

安装插件

  • Pipeline
  • Pipeline: Stage ViewVersion #不安装的话不会出来阶段视图

添加项目

添加项目,选择 Pipeline (流水线)
image
流水线

  1. 从SCM 获取(SVN或GIT)

image
2. 内嵌代码(学习用,这边先用内嵌方式)
image

pipeline {#整体定义
    agent any #任务交给某个节点执行(any 任意)

    stages {
        stage('拉取代码') { #每一步的操作
            steps { #具体执行内容
                echo '拉取成功'
            }
        }

        stage('执行构建') {
            steps {
                echo '构建完成'
            }
        }
    }
}

image
image
支持单独执行某个阶段
image
Jenkins 阶段视图不见了?安装:Pipeline: Stage ViewVersion,就可以出来了
image

posted @ 2022-10-31 17:22  VipSoft  阅读(319)  评论(0编辑  收藏  举报