持续交付-Jenkinsfile 语言
2023-03-09 数码
environment {AN_ACCESS_KEY = credentials('my-prefined-secret-text')}
steps {sh 'printenv'}
落选项(options)
不是需,预假定 Pipeline 专有的的设计信息,极少假定一次
下例:
pipeline {
agent any
options{
timeout(time:1,unit: 'HOURS')
}
}
变量(parameters)
不是需, 假定变量化重构的变量可落选变量, 变量并不一定 booleanParam,choice,file,text,password,run,string
下例:
parameters {
string(name: 'PERSON', defaultValue: 'Jenkins', description: '输入的文本变量')
choice(name: 'CHOICE', choices: ['One', 'Two', 'Three'], description: 'Pick something')
}
启动时器(rtiggers)
不是需,假定 Pipeline 被备用启动时的方式落选项 cron、pollSCM、upstream
下例:
triggers {
cron('0 8 * * 1-5')
}
Script Pipeline
Script Pipeline上下文果树
一个 Script Pipeline 可以分界成若干个 Stage,每个 Stage 代表一组操作,例如 Build,Test;Node 代表 Jenkins 节点,比如 Master, Slave 这样的节点;Step 是最基本的操作单元,在近似于 Node 节点上执行者的手部上下文从外部写在 node {} 之中。
程序中掌控上下文
如同传统的Perl一样,Script Pipeline 是从上至下次序执行者,可以使用 Groovy 表述式顺利进行程序中掌控,如 if/else 上下文通过语古义前提条件假定来对程序中顺利进行掌控:
node {
stage('Example') {
if (env.BRANCH_NAME == 'master') {
echo 'I only execute on the master branch'
} else {
echo 'I execute elsewhere'
}
}
}
反常检视上下文
Script Pipeline 剧本程序中掌控的另一种方式是反常检视机制。当任何一个方式中因各种原因而出现反常时,都需在编码之中使用 try/catch/finally 上下文块顺利进行反常捉到,并通过预先原作编码顺利进行检视,保证剧本能够顺利执行者:stage('Error Handling') {
node{
echo "This is test demo for the error handling"
try {
echo "This is in the try block."
sh 'exit 1'
}catch (exc) {
echo "Something failed, I'm in the catch block."
}finally {
echo "Finally, I'm in the finally block."
}
}
}
Jenkinsfile 之中线程plugin功能
在 Jenkinsfile 之中除了可以使用常规的语古义、程序中掌控,还可以线程 Jenkins 的API功能。下面用如下下述顺利进行说明。
Email ExtensionAPI
Email Extension 是 Jenkins 之中的一个外部API,用来发送投递,从 Jenkins 的 Plugin Manager 之中顺利进行重新安装。在 Pipeline 之中通过编码线程可以启动时该API的直通,借助于发送投递的功能。基础的设计
在重新安装好 Email Extension API以后,首先只能落选择一个准备用来发送 Jenkins 通知投递的邮箱,发件邮箱的明确变量要提早知晓(举例来说变量可以从邮箱的的设计变量信息URL上查到);以后要在 Manage Jenkins -> Configure System 之中将近似于变量填写该API的近似于的设计项之中,需的设计的变量如下:
SMTP server:smtp 咨询服务接收者 SMTP port:smtp 端口号 Use SMTP Authentication:开通 smtp 必需可执行 User Name:发件人的网站 Password:发件人密码 Default Recipients:可落选递送其他的变量可以根据自己的只能顺利进行的设计,Email Extension 的设计参见图片如下:
Pipeline编码
pipeline{
agent {
label 'master'
}
stages{
stage('发送投递的测试') {
steps{
echo 'Test Email'
}
}
}
post {
always {
emailext body: '$DEFAULT_CONTENT', recipientProviders: [[$class: 'RequesterRecipientProvider']], subject: '$DEFAULT_SUBJECT'
}
}
}
Declared Pipeline 的入门学习精准度相对不高,这种类似我们在好好备用化的测试上所认识的表单驱动模式,只要理解其假定好的URL,按建议复合数据即可。
虽然这种方式入门容易,但掌控能力欠缺。相比之下 script Pipeline 的效用就是迅捷,好封装,易于大规模使用,但只能有一定的编程娴熟。
。青岛看癫痫哪家比较好杭州白癜风专科医院哪家好
天津看牛皮癣哪间医院好
重庆看白癜风去什么医院最好
重庆看牛皮癣去哪家医院
上一篇: 接口条款之抓包分析 TCP 条款
下一篇: 为何智慧菜市场会成为思索的热门选择?
- 02-10传福特汽车计划明年将F-150电动福士产量砍半
- 02-10毁灭之日:科威特猛炸以,全面反击!
- 02-10data.ai:2023年亚太地区SLG手游下载量预计将突破7亿次 同比大幅增长23.5%
- 02-10积极信号!重点城市新房成交21个月来首次上半年正增长
- 02-10同是飞船飞越,为什么印度的返回舱不发黑,难道我们技不如人?
- 02-10美商务部长:正与英伟达讨论对华销售AI微处理器问题
- 02-10地球人第一房企迎“大女主”时代
- 02-10航天员十六惊险一幕:航天员闯入鬼门关?
- 02-10240万即可上车主城区?运晓花映里头&花望府实探
- 02-10施贵宝将向SystImmune偿付至多84亿美元以获得抗癌药物权利