jenkins之-创建第一个pipeline
Posted lihuanhuan
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jenkins之-创建第一个pipeline相关的知识,希望对你有一定的参考价值。
目录
从今天开始,我们来整体学习下jenkins相关内容。jenkins是一款用java开发的开源持续集成和持续交付工具,他也是实现Dev OPS的基础工具。
1.什么是pipeline部署流水线(deployment pipeline)是指软件从原始code到用户这一过程的自动化表现形式,我们经常简称pipeline。jenkins2.x 开始已经支持了pipeline as code的模式,也就是说我们可以像写代码一样,去定义部署流水线的各种工作。
2.在jenkins中使用pipeline2.1 pipeline支持的语法
既然jenkins2.x已经支持了pipeline as code,那我们首先要简单了解下pipeline支持的语法。jenkins一开始考虑实现jenkins pipeline的时候,就考虑使用简单易用的groovy脚本语言去实现pipeline。在写脚本式的pipeline时,很像实在写groovy代码。
node {
stage(\'Build\'){
echo \'I am doing the build!\'
}
stage(\'Test\'){
echo \'I am doing the Test\'
}
stage(\'Deploy\'){
try{
//执行部署任务
echo \'I am try to do the code deployment\'
}
catch(error){
//捕捉错误并通知用户
}
}
}
jenkins pipelien 还支持另外一种语法,申明式语法。
pipeline{
agent any
stages{
stage(\'Build\'){
steps{
echo \'hello world!\'
}
}
}
}
2.2 创建第一个pipeline
要创建pipeline,首先需要jenkins已经安装了pipeline插件,笔者安装的jenkins默认已经安装了pipeline。
step1: 点击新建任务
step2: 选择任务类型并保存
step3:定义pipeline的基本信息
默认情况下,流水线定义的默认值为pipeline scripts,我们输入示例。
node {
echo \'Hello World\'
}
step4: 运行这个pipeline
点击确认后,就到了pipeline的主页面,点击左侧的立即构建,下方的会出现一个状态灯,并且一闪一闪,点击状态等就可以看到执行log。
step5: 查看运行log
2.3 从github拉取pipeline
2.3.1 在github生成token
由于pipeline的内容放在jenkins上既不安全,又做不好版本控制,因此我们可以把pipeline的内容放到github管理。如何生成token,请查看github官方文档,点击这里.
2.3.2 新建jenkins凭据
如果你的pipeline需要通过用户名密码、密钥等方式登陆服务器、Nexus、github、FTP等网络资源,则需要凭据。jenkins常用的凭据主要包括Username with password、SSH Username with private key、Secret file、Secret text等。凭据的使用教程,请参考官方文档:link
step1: 新建凭据
step2: 选择凭据类型
Username with password是最常用的一种方式。如果准备用github token去拉取代码,用户名填入自己的github用户名,密码填入github上生成的token,保存即可;如果使用ssh用户名和密码登陆服务器,我就不废话了。
step3: 保存后并查看凭据
保存凭据平且重新打开后,就可以看到凭据的全部内容了,当然密码是加密的。
2.3.3 pipeline调用方式修改
step1: 打开pipeline配置页面
step2: 填充pipeline调用需要的参数
注意:第4步输入我们存放jenkins的github项目地址,第5处选择我们刚才新建的凭据,第6步填入的脚本文件名,在github项目要存在。
2.3.4 测试pipeline的运行
如果pipeline配置文件中新增了变量,需要运行一次,才会加载到pipeline中,而且第一次可能会报错。
点击1运行后,等跑完后,可以点击2查看详细的日志。
以上是关于jenkins之-创建第一个pipeline的主要内容,如果未能解决你的问题,请参考以下文章
Linux开发者的CI/CD第一个jenkins pipeline --helloworld