全部文章
DevOps神器Jenkins使用精髓第O弹之开头
DevOps神器Jenkins使用精髓第一弹之初始化配置
DevOps神器Jenkins使用精髓第三弹之常用插件
DevOps神器Jenkins使用精髓第四弹jenkins Pipeline起步
DevOps神器Jenkins使用精髓第五弹之API的使用
一、什么是Pipeline
Jenkins Pipeline是一套插件,提供了一组可扩展的工具,将我们原来意义上的手动配置每一个Jenkins Job的具体配置项变成将所有配置代码化, 并再次配合Gitlab等版本控制系统去保存我们的代码配置, 这样子无论Job在未来需要更新, 或者需要回滚到之前的某一个配置, 又或者一个新的Job需要参考之前的老Job的配置并直接套用, 又或者我们需要去批量生成若干个Job配置, 我们都可以像管理软件代码的方式去管理我们的Jenkins Job配置. 这样就极大的简化我们自动化部署的结构, 将以前需要手动配置Job的这个步骤, 直接代码化. 最终体现出我们DevOps的最终目标.
二、入门示例
让我们创建一个Pipeline项目
创建后直接进入Pipeline脚本编写位置
为了方便大家复制,我把代码贴到下面
pipeline {
agent any
stages {
stage('Build') {
steps {
sh 'ls /'
}
}
stage('Test'){
steps {
sh 'ls /etc'
}
}
stage('Deploy') {
steps {
sh 'ls -la /'
}
}
}
}
查看执行结果:
我执行了6次构建,其中前5次我估计写错,图中黄色圆圈正是代码中stage部分,Pipeline有一个特点,就是当任何一段代码执行报错,接下来代码都不会被执行,相当于编程中函数的return功能。当然代码中可以加入post模块用来返回Pipeline结果,先不要急,我将在后续详细讲解语法时说到。
三、Pipeline脚本管理的另一种模式
官方解释:
复杂的Pipeline难以在Pipeline配置页面的文本区域内进行写入和维护。为了使这更容易,Pipeline也可以写在文件中,作为Jenkinsfile,并检查源控件(比如git),Jenkins可以通过Pipeline脚本从SCM选项加载的控件。选择SCM选项中的Pipeline脚本后,不要在Jenkins UI中输入任何Groovy代码; 您只需指定要从其中检索Pipeline的源代码中的路径。更新指定的存储库时(比如git),只要Pipeline配置了SCM轮询触发器,就会触发一个新构建。
我来翻译:
说白了就是把页面中的脚本放入一个jenkinsfile文件中编写,并放入git仓库进行管理,同时jenkins项目配置git地址,使用git仓库的webhook也好jenkins的CSM轮询也罢,又或者手动触发,都可以让这个jenkins Pipeline项目基于你编写的jenkinsfile进行构建。
下面看看具体配置
jenkins项目中Pipeline的设置
gitlab中的jenkinsfile