devops Jenkins2 插件 Pipeline 实现持续交付的部分想法

莫离 · 2016年12月16日 · 最后由 莫离 回复于 2016年12月19日 · 2704 次阅读

需要完成的目标

  • 使用 Pipeline 完成基本的 Deploy
  • 提取出公有部分封装为公有 JOB
  • 实现 pipeline 对其他 JOB 的调用和逻辑的判断
  • 实现多节点同时并发 build
  • 结合插件 Open Blue Ocean 使用 Pipeline

Pipeline 作为 Jenkins2.0 系列最大的改变,其自身具有着构建步骤代码化、构建过程视图化等优势,更可以结合被预言有可能改变 jenkins 万年不变页面的插件"Open Blue Ocean"使用。

使用 Pipeline 完成基本的 Deploy

DEMO 代码见下

node{
  stage('get clone')
  {
  git url: 'https://github.com/jglick/simple-maven-project-with-tests.git'
  //check CODE
  }
  stage('mvn build')
  {
  //mvn构建
  timeout(time: 30, unit: 'SECONDS')
   {
     //设置30秒超时时间  
  bat 'mvn install -Dmaven.test.skip=true'
   }
  }
  stage('deploy')
   {
  bat 'deploy.bat'
     //执行部署脚本
   }
}

提取出公有部分封装为公有 JOB,在另一个 JOB 中引用

场景描述:同一项目组有若干个模块,其有较高的耦合性,而且步骤均一致。只有路径、部分参数等,所以采用提取这部分作为一个参数化 job,每个模块构建步骤采用 pipeline 传递自身特有参数的方式触发构建。

build job: 'test-Pipline', parameters: [string(name: 'Stringinput', value: '1'), booleanParam(name: 'buildsucess', value: true)]

实现 pipeline 对结果逻辑的判断

在主节点中执行检查系统是否是 UNIX,打印对应信息。

node('master')
{
stage('check system')
{    
if(isUnix()){
echo "this is Unix"
}
else
{
echo "this is Linux"
}
}
}

实现多节点同时并发 build

在主节点中执行检查系统是否是 UNIX,打印对应信息。节点 1 进行 pybot 的自动化脚本执行,如果节点够多而且先后执行顺序并不依赖严重,完全可以分多个节点执行来提高执行效率。

node('master')
{
stage('111')
{    
if(isUnix()){
echo "this is Unix"
}
else
{
echo "this is Linux"
}
}
}
node('node1') {
    bat 'pybot hello_world'
}

### 结合插件 Open Blue Ocean 使用 Pipeline
首先安装插件这里写图片描述
安装成功后在 jenkins 登陆后的正中间可以看到一个按钮,见下图
这里写图片描述
点击进入后,可以对具体的 JOB 进行构建,查看状态,等
这里写图片描述

PS:欢迎个位提出自己的观点和看法

共收到 9 条回复 时间 点赞

哇哇哇,一楼,我先收藏着之后再看😁

插件总是下载失败😭

—— 来自 TesterHome 官方 安卓客户端

插件总是下载失败

—— 来自 TesterHome 官方 安卓客户端

#3 楼 @jiffy 我一般是 *** 下,或者直接访问下载地址,下载 hpi 到本地后导入。

#2 楼 @jiffy 可以试试本地上传安装,系统管理 --- 插件管理—高级 --- 找到” 上传插件”

我用 brew 安装的 jenkins 版本是 2.3.6 的,怎么解?

#7 楼 @diao2007 没懂呢~ 2.3.6 也有这个吧~~~ 你如果想下载指定版本的 jenkins 可以去官网下啊

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册