首页 > 编程知识 正文

流水线管理流程怎么写,广州省第二人民医院试管是流水线吗

时间:2023-05-04 14:31:43 阅读:109509 作者:2337

目录

1、触发任务-指定管线代码触发事件

2、用户输入

3、构建后处理

这次,我将介绍用于控制jenkins管道的DSL语言提供的管道的各种机制。 从如何通过指定属性值来触发任务并接收来自用户的输入开始。 下面介绍如何利用超时、重试、并发任务等结构。

1、触发任务—指定管线代码触发事件,在web界面项的基本配置中指定吃法条件。

对于脚本管线,可以在代码中指定properties代码块来定义触发条件。 这通常发生在管线开始之前。 与web界面中定义的触发条件合并,web定义优先。

对于声明性管线,有定义管线触发器类型的triggers指令。

1.1其他任务构建后触发

web界面示例:

脚本流水线。 如果成功构建了job1,并且匹配了阈值,则重建当前管线。

properties ([ pipeline triggers ] ) upstream ([ threshold : Hudson.model.result.success,upstreamprojects3360'job

web界面配置:

脚本流水线语法,任务是星期一到星期五上午9点

properties ([ pipeline triggers ] [ cron (' 09 * *1-5' ) ] ) 1.3轮询SCM

web界面设置

脚本流水线

属性([ pipeline triggers ] [ polls cm ) (09**1-5) ] ) 1.4远程触发构建

2、用户输入2.1、用户可以输入密码(password )、可选(choice )、证书、文件)、多行字符串(text )、字符串(string )

请选择defselectfile=input message : '文件',parameters : [请选择文件(description : )上传',name

实例获取参数,pipeline { agentanyparameters } string (name : ' person ',defaultValue: 'Mr Jenkins ',descriptiotion )

o should I say hello to?') text(name: 'BIOGRAPHY', defaultValue: '', description: 'Enter some information about the person') booleanParam(name: 'TOGGLE', defaultValue: true, description: 'Toggle this value') choice(name: 'CHOICE', choices: ['One', 'Two', 'Three'], description: 'Pick something') password(name: 'PASSWORD', defaultValue: 'SECRET', description: 'Enter a password') } stages { stage('Example') { steps { echo "Hello ${params.PERSON}" echo "Biography: ${params.BIOGRAPHY}" echo "Toggle: ${params.TOGGLE}" echo "Choice: ${params.CHOICE}" echo "Password: ${params.PASSWORD}" } } }}

2.2 使用jenkins应用来参数化构建 ,可以在脚本式流水线里面引用。 ${params.<参数名称>}

还可以在流水线开头把参数定义为属性,这种方法是用于流水线和声明式,例如:

properties([ parameters([ upstream([ string(name: 'PERSON', defaultValue: 'Mr Jenkins', description: 'Who should I say hello to?') ]) ])])pipeline { agent any stages { stage('Example') { steps { echo "Password: ${params.PERSON}" } } }}

2.2.5 流程控制选项【略,本来写了的没有保存】

      timeout、retry、sleep、waitUntill(等待直到)。

timeout(time:60, unit:'SECONDS'){ // 代码}   默认单位秒

retry(<n>){  // 代码}

sleep time:5, until: 'MINUTES'  默认单位秒

waitUntil {  // 返回true 或者 false的过程}  第一次等待时间0.25 , 后面失败 重试*1.2的因子

2.3 并行与并发

并发实例,分支1简单的睡眠10s后输出消息,分支2睡眠5秒后,抛出异常。failFast=true表示有一个分支出现异常就结束其他所有分支。可以使用于,你需要做部署和测试时,只要部署失败了测试需要停止,测试失败了,部署需要停止。

pipeline{ agent any stages{ stage('Parallel'){ steps{ parallel( 'group1': { timestamps{ catchError{ sleep 10 echo '完成进程1!' } } }, 'group2': { sleep 5 error '进程2失败!' }, failFast:true ) } } }}

2.4 有条件的执行功能

          Conditional BuildStep plugin条件性构建步骤插件可以让用户在自由风格类型的任务上添加一些有条件执行功能。允许选择一种方法来测试某些条件,然后基于结果执行一个或者多个步骤。

         在脚本式流水线代码中,如同使用Groovy/Java 语言的条件语言一样。实例:

node('worker_node1'){ def responce = null stage('selection'){ responce = input message:'请选择分支和构建类型', parameters:[string(defaultValue:'master', description:'选择分支', name:'BRANCH_NAME'),choice(choice:'DEBUGnRELEASEnTEST',description:'构建类型',name:'BUILD_TYPE')] } stage('Process'){ if((responce.BRANCH_NAME == 'master') && (responce.BUILD_TYPE == 'RELEASE')){ echo '启动生产' } }}

             脚本式流水线语法如下:when 和 allOf 的意思是里面的条件都满足才执行后面的步骤。

pipeline{ agent any parameters { string(defaultValue:'master', description:'选择分支', name:'BRANCH_NAME') choice(choice:'DEBUGnRELEASEnTEST',description:'构建类型',name:'BUILD_TYPE') } stages{ stage('process'){ when{ allOf{ expression {responce.BRANCH_NAME == 'master'} exoression {responce.BUILD_TYPE == 'RELEASE'} } } steps{ echo '开始启动进程' } } }} 3、构建后处理

3.1 脚本式流水线构建后处理--

A、使用try-catch-finally机制: 无论最终构建的状态如何,最终总是可以执行某些行为。      

def err = nulltry{ // 流水线代码 node('node-name'){ stage('stage-name'){ ... }// 最后一个阶段 }}catch(err){ currentBuild.result = "FAILURE"}finally{ (currentBuild.result != 'Aborted'){ // 发送邮件等操作 }}

B、catchError:jenkisn流水线语法支持。catchError提供了一个方法,可以探测异常改变构建状态,还能继续执行流水线进程。 

3.2 声明式流水线构建后处理

构建后操作(post),可以放在一个阶段的后面,或者流水线的结尾。下表是构建后声明式构建条件

条件描述always总是执行changed当前构建状态与之前构建状态不同则执行1sucess当前构建状态成功执行failure当前构建状态失败执行unstable当前构建状态不稳定执行// 阶段的末尾post{ always{ echo "构建完成" } success{ echo "构建成功" mail body:'构建成功', subject:'构建成功', to:'xxx@xxx.com' }}

 

 

 

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。