pipeline介绍
Jenkins 2.0的精髓是Pipeline as Code,是帮助Jenkins实现CI到CD转变的重要角色。什么是Pipeline:,简单来说,就是一套运行于Jenkins上的工作流框架,将原本独立运行于单个或者多个节点的任务连接起来,实现单个任务难以完成的复杂发布流程。Pipeline的实现方式是一套Groovy DSL,任何发布流程都可以表述为一段Groovy脚本,并且Jenkins支持从代码库直接读取脚本,从而实现了Pipeline as Code的理念。
**pipeline概念 ** Pipeline 是一个用户定义的 CD 流水线模式。Pipeline 代码定义了通常包含构建、测试和发布步骤的完整的构建过程 。
-#Node: (相当于- hosts:)
node 是一个机器,它是 Jenkins 环境的一部分,并且能够执行 Pipeline。同时,node 代码块也是脚本式 Pipeline 语法的关键特性。
-#Stage: (相当于任务tasks)
Stage 块定义了在整个 Pipeline 中执行的概念上不同的任务子集(例如“构建”,“测试”和“部署”阶段),许多插件使用它来可视化或呈现 Jenkins 管道状态/进度。
-#Step: (相当于- name)
一项任务。从根本上讲,一个步骤告诉 Jenkins 在特定时间点(或过程中的“步骤”)要做什么。例如,使用 sh step:sh 'make' 可以执行 make 这个 shell 命令。
jenkins file
声明式 脚本式
脚本式语法格式:
pipeline{
agent any
stages{
stage("get code"){
steps{
echo "get code from scm"
}
}
stage("package"){
steps{
echo "packge code"
}
}
stage("deploy"){
steps{
echo "deploy packge to node1"
}
}
}
}
创建pipeline风格项目
非参数化
创建项目
丢弃旧的构建
流水线
pipeline{
agent any
stages{
stage("下拉代码"){
steps{
git 'git@10.0.0.91:root/hell-word.git'
}
}
stage("下发代码"){
input{
message "是否要继续构建?"
ok "构建"
}
steps{
echo "packge code"
}
}
stage("deploy"){
steps{
echo "deploy packge to node1"
}
}
}
}
生成流水线语法
构建
视图查看Logs
打开Blue Ocean(可视化界面查看)
添加按钮
执行完代码质量检测后,可以添加一个按钮(input),去sonar上检查一下代码是否有问题,有则修复,无则点击继续按钮
流水线脚本的‘代码质量检测’步骤下再添加一步
input {
message "是否要继续构建?"
ok "构建"
}
参数化构建
其他步骤同上
参数化构建
可以做git参数,以前老版本不行,但是可以做文本参数(生成流水线语法时有checkout语法,不用git),然后手动去写版本号
webhook
创建项目
丢弃旧的构建
构建触发器
1.GitLab webhook URL: http://10.0.0.92:8080/project/hello-wold-pipeline-webhook
2.令牌:b3a2293650720c1db09fd7626d82625a
将URL和令牌放到gitlab
3.gitlab开启功能
你的工作-管理中心-设置-网络设置-外发请求-允许钩子和服务访问本地网络
网络--出站请求
放URL和令牌
代码修改好上传gitlab后jenkins会自动构建,只适合用于测试