持续交付-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 的效用就是迅捷,好封装,易于大规模使用,但只能有一定的编程娴熟。
。青岛看癫痫哪家比较好杭州白癜风专科医院哪家好
天津看牛皮癣哪间医院好
重庆看白癜风去什么医院最好
重庆看牛皮癣去哪家医院
- 05-18净资产已跌去七成 泡泡玛特离摘掉“盲盒”标签还有多远?
- 05-18中国文化报:宁夏西安江村大墓确认为汉文帝霸陵
- 05-18家,才是有生之年的根!(深度好文)
- 05-18中泰全球性:给予海底捞增持评级 目标价15.16港元
- 05-18襄阳是四战之地,刘表为何能治理得井井有条?这三个办法值得学习
- 05-18自来,才是人生最幸福的活法!(深度好文)
- 05-18确定汉文帝陵墓“霸陵”准确位置
- 05-18摩根大通(JPM.US)在德国欣然接受 今年欲增25%员工至约700人
- 05-181月下旬起,收入翻倍涨,财星降临,祝福乘风来的3大生肖
- 05-18职场沟通技巧:呐喊也是一种语言