流水线发布
- pipline语法介绍
- 阶段
- 指令
- 创建流水线项目
- 流水线脚本
- 基础框架
pipline语法介绍
声明式的pipeline语法格式
1. 所有的声明都必须包含在pipeline{}中
2. 块只能有节段,指令,步骤或者赋值语句组成
3. 阶段:agent,stages,post,steps
4. 指令:environment,options,parameters,triggers,stage,input,tool,when
阶段
agent: 该指令用于指定构建代理的配置。agent any 表示在任何可用的构建代理上执行流水线。可以使用其他选项如 agent none(不在任何代理上执行)、agent {label 'label-name'}(在具有特定标签的代理上执行)等。
# jenkins 添加节点 stages: stages 指令用于定义流水线中的阶段。阶段是流水线的主要分组单元,用于将构建过程分解为不同的步骤。每个阶段可以包含一个或多个步骤。steps: steps 指令用于定义流水线中某个阶段的步骤。步骤是构建过程中的具体操作,可以是 shell 脚本、构建命令、插件调用等。post: post 指令用于定义在所有阶段完成后执行的操作。可以使用不同的条件来指定执行操作的时机,如 always(无论构建结果如何始终执行)、success(仅在构建成功时执行)等。在 post 指令内部,可以定义多个操作,如发送电子邮件通知、触发其他构建等。
指令
environment: environment 指令用于定义流水线中的环境变量。可以在流水线的任何阶段或步骤中使用这些环境变量。它们可以用于存储和传递配置信息、凭据、版本号等。options: options 指令用于定义全局选项和配置。可以使用不同的选项来控制流水线的行为,如超时设置、并行执行、跳过失败的阶段等。parameters: parameters 指令用于定义流水线的参数。参数可以用于接收用户输入,从而自定义构建过程。可以定义不同类型的参数,如字符串、布尔值、选择列表等。triggers: triggers 指令用于定义触发流水线执行的条件或事件。可以使用不同的触发器来实现自动触发流水线,如定时触发、代码推送触发、其他流水线完成触发等。stage: stage 指令用于定义流水线中的阶段。阶段是流水线的主要分组单元,用于将构建过程分解为不同的步骤。每个阶段可以包含一个或多个步骤。input: input 指令用于在流水线的执行过程中暂停并等待用户输入。可以定义一个或多个输入步骤,以便用户提供必要的确认或参数输入,然后流水线继续执行。tool: tool 指令用于在流水线中配置和使用工具。可以指定使用特定版本的构建工具、测试工具等。when: when 指令用于根据条件来控制流水线中某个步骤或阶段的执行。可以使用不同的条件表达式来判断是否执行特定的步骤或阶段,如构建参数的值、环境变量的状态等。
创建流水线项目
流水线脚本
基础框架
pipeline {agent anystages{stage("阶段一"){steps{echo "拉取代码"echo "代码拉取完成"}}stage("阶段二"){steps{echo "代码打包"echo "打包完成"}}}
}
使用 agent any 指定在任何可用的代理上运行流水线。
使用 options 指令设置了超时时间和禁用并发构建。
使用 parameters 指令定义了两个参数,用于接收目标环境和是否运行测试的用户输入。
使用 triggers 指令设置了每天午夜触发和上游流水线成功触发的条件。
使用 stages 指令定义了几个阶段,包括代码检出、构建、测试和部署。
使用 when 指令在测试和部署阶段根据条件进行了控制。
使用 post 指令定义了 always 块,在流水线执行结束后发送电子邮件通知构建状态,并附带构建日志。
pipeline:代表整条流水线,包含整条流水线的逻辑
agent:指定流水线的执行器 (在节点上)和工作区
stages:封装了用于定义流水线主体和逻辑的所有单个阶段定义- 至少包含一个stagestage:代表流水线的阶段,每个阶段都必须有名称