“Pipeline”的版本间的差异
跳到导航
跳到搜索
第106行: | 第106行: | ||
[https://www.cnblogs.com/mingerlcm/p/12806076.html Pipeline 语法生成器] | [https://www.cnblogs.com/mingerlcm/p/12806076.html Pipeline 语法生成器] | ||
+ | |||
+ | [https://www.jenkins.io/zh/doc/book/pipeline/syntax/ 流水线语法] | ||
=是Blue Ocean= | =是Blue Ocean= |
2021年6月28日 (一) 14:02的版本
目录
Jenkins Pipeline 简介
Jenkins pipeline 是 Jenkins 2.0 的精髓,,是帮助 Jenkins 实现 CI 到 CD 转变的重要角色。
简单来说,就是一套运行于 Jenkins 上的工作流框架,将原本独立运行于单个或者多个节点的任务连接起来,实现单个任务难以完成的复杂发布流程。
Pipeline 的实现方式是一套 Groovy DSL,任何发布流程都可以表述为一段 Groovy 脚本,并且 Jenkins 支持从代码库直接读取脚本,从而实现了 Pipeline as Code 的理念。
官方文档 流水线可以通过以下任一方式来创建:
通过 Blue Ocean - 在 Blue Ocean 中设置一个流水线项目后,Blue Ocean UI 会帮你编写流水线的 Jenkinsfile 文件并提交到源代码管理系统。
通过经典 UI - 你可以通过经典 UI 在 Jenkins 中直接输入基本的流水线。
在源码管理系统中定义 - 你可以手动编写一个 Jenkinsfile 文件,然后提交到项目的源代码管理仓库中。[3]
使用两种方式定义流水线的语法是相同的。尽管 Jenkins 支持在经典 UI 中直接进入流水线,但通常认为最好的实践是在 Jenkinsfile 文件中定义流水线,Jenkins 之后会直接从源代码管理系统加载。
Jenkins Pipeline 支持两种语法
My-pipeline-job01 ->流水线语法 我好像没怎么用 Jenkins Pipeline 支持两种语法,一种 Declarative Pipeline(声明式),一种 ScriptedPipeline(脚本式)。 安装pipeline相关插件 全部要显示为Success pending是不行的 声明式的 Pipeline 限制用户使用严格的预选定义的结构,是一种声明 式的编程模型,对比脚本式的 Pipeline 学习起来更加简单; 脚本式的 Pipeline 限制比较少,结构和语法的限制由 Groovy 本身决定,是一种命令式的编程模型。 所以我们学习使用声明式的方式编写 jenkinsfile。 一般来说 jenkinsfile 会被放在代码库的根目录下。 当然也可以在 Web 页面定义。 下面是两种不同方式的 jenkinsfile 示例
Jenkinsfile (声明式)
pipeline { agent any stages { stage('Build') { steps { echo 'Building..' } } stage('Test') { steps { echo 'Testing..' } } stage('Deploy') { steps { echo 'Deploying....' } } } } 前面我们说过,声明式的Pipeline有严格的预定义格式结构,有固定的格式,外层必须是pipeline{}, 紧接着是 agent 就是节点node ,agent也是固定的,pipeline紧跟着进来 一定是agent 参考上面的格式 后面的any是任何节点还是其中一个节点,指定某一个节点是自己指定,通过标签自己来指定节点 指示 Jenkins 分配一个执行器和工作空间来执行下面的 Pipeline, stages和steps是申明式Jenkinsfile必须的,stages是一个个阶段,所有的stage必须要定义在stages里, stages(‘’) 括号里面是名称,这个阶段是什么名称,stages这个名称不能重复,同一个stage名称只能有一个 每一个stage下的 step 要定义在一个 steps 里,stages里面包含了step,具体的执行步骤都写在step里面 ,一行一个,可以写多行
Jenkinsfile(脚本式)
node { stage('Build') { // } stage('Test') { // } stage('Deploy') { // } } 在脚本式 jenkinsfile 里,你可以定义一个 node 或者多个 node 块,然后在 node 块里 定义你的 stage,在 stage 里定义你的 step 即可
进阶advance
是Blue Ocean
https://www.jenkins.io/zh/doc/book/blueocean/
Blue Ocean 重新思考Jenkins的用户体验,从头开始设计Jenkins Pipeline, 但仍然与自由式作业兼容,Blue Ocean减少了混乱而且进一步明确了团队中每个成员 Blue Ocean 的主要特性包括:
持续交付(CD)Pipeline的 复杂可视化 ,可以让您快速直观地理解管道状态。 Pipeline 编辑器 - 引导用户通过直观的、可视化的过程来创建Pipeline,从而使Pipeline的创建变得平易近人。 个性化 以适应团队中每个成员不同角色的需求。 在需要干预和/或出现问题时 精确定位 。 Blue Ocean 展示 Pipeline中需要关注的地方, 简化异常处理,提高生产力 本地集成分支和合并请求, 在与GitHub 和 Bitbucket中的其他人协作编码时实现最大程度的开发人员生产力。
简言之:简化复杂可视化,提供更个性直观的界面,可以精准定位构建失败的位置
Jenkins教程(四)安装BlueOcean与Maven构建
see also
使用 pipeline 实现 monitor 仓库代码的发布
Jenkins pipeline jenkinsfile的两种写作方式声明式和脚本式