jenkins2 pipeline实例
比较完整的实例,使用了maven打包,git tag,发通知邮件,等待用户deploy,deploy到nexus。
文章来自:http://www.ciandcd.com
文中的代码来自可以从github下载: https://github.com/ciandcd
源代码和文章来自: https://grensesnittet.computas.com/pipeline-as-code-continuous-delivery-with-jenkins-2-0/
代码如下:
// Run this on the master node:
node {
// The JDK is configured as a tool with the name 'jdk-8u77' in the Jenkins 'Global Tool Configuration'
env.JAVA_HOME="${tool 'jdk-8u77'}"
env.PATH="${env.JAVA_HOME}/bin:${env.PATH}" // Maven is configured as a tool with the name 'M3' in the Jenkins 'Global Tool Configuration'.
def mvnHome = tool 'M3' stage 'Checkout'
// Configure the credential in Jenkins, and use the credential's ID in the following step:
git url: 'ssh://git@gitrepo.computas.com/fs/fs-knowledge-editor.git', credentialsId: '8dbfb6d2-2549-4c6e-9a6e-994ae8797efc' stage 'Build and tag'
// Define the version of this build.
// BASE_VERSION is defined as a build parameter in the UI definition of the job.
// Note how Groovy code is used to format the number of the current build.
def version = "${BASE_VERSION}-J2TEST-" + currentBuild.number.toString().padLeft(4,'0')
// Execute the maven command as a shell command step. On Windows, a 'bat'-step would be used instead.
sh "${mvnHome}/bin/mvn clean verify -f KnowledgeEditor/pom.xml -Dfs.version=${version}"
// Archive the zip file for access in through the Jenkins UI, or for other uses.
archive 'KnowledgeEditor/com.computas.fs.ke.products/target/products/*.zip' // Each build is tagged with an annotated tag.
// There is no pipeline plugin for this (the Git Publisher plugin is not compatible),
// so everything has to be implemented using shell commands.
// First, we have to configure git with the mandatory user information:
sh "git config user.name \"Jenkins Pipeline\""
sh "git config user.email bob@computas.com"
// Next, tag this commit.
def msg = "\"Automatically created tag ${version}\""
sh "git tag -a -m ${msg} ${version}"
// Finally, push to the repo.
// For this to work, the ssh keys must be available in Jenkins' ~/.ssh folder
sh "git push origin ${version}" // Send a mail to the person responsible for manual testing and release.
mail subject: 'A new version of KEIII is available for testing.',
body: 'A new version of KEIII is available for testing and approval of release.',
charset: 'utf-8',
from: 'bob@computas.com',
mimeType: 'text/plain',
to: 'fs-tester@computas.com' stage 'Release'
// User input showing up in the Jenkins UI.
// If the timeout is reached, an exception is thrown and the build aborted.
timeout(time: 120, unit: 'SECONDS') {
input message: 'Do you want to release this version, ' + version + ', of KEIII?', ok: 'Release'
}
// A catch block could deal with the exception. // In order to release to Nexus, deploy and access information needs to be made available in
// a maven settings file. This configuration is copied into the file defined as
// mavenSettingsFile from the corresponding managed file in Jenkins...
def mavenSettingsFile = "${pwd()}/.m2/settings.xml" // ... using the configuration file build wrapper:
wrap([$class: 'ConfigFileBuildWrapper',
managedFiles: [
[fileId: '85adba0c-908b-4dbf-b3aa-65fe823e8984',
targetLocation: "${mavenSettingsFile}"]]]) {
// deploy to Nexus
sh "${mvnHome}/bin/mvn deploy -s ${mavenSettingsFile} -f KnowledgeEditor/pom-deploy.xml -Dfs.version=${version}"
}
}
jenkins2 pipeline实例的更多相关文章
- jenkins2 pipeline 语法快速参考
jenkins2 pipeline中常用的语法快速参考. 文章来自:http://www.ciandcd.com文中的代码来自可以从github下载: https://github.com/ciand ...
- jenkins2 pipeline高级
jenkins2 pipeline里groovy的高级用法.翻译自:https://github.com/jenkinsci/pipeline-plugin/blob/master/TUTORIAL. ...
- jenkins2 pipeline入门
本文通过简单的pipeline的实例和详细的讲解,能够学习基本pipeline的groovy用法,然后开始实现自己的pipeline job. 翻译和修改自:https://github.com/je ...
- jenkins2 pipeline介绍
文章来自:http://www.ciandcd.com 文中的代码来自可以从github下载: https://github.com/ciandcd 什么是jenkins2的pipeline? ...
- jenkins2 -pipeline 常用groovy脚本
jenkins2的核心是pipeline,pipeline的核心是groovy. 那有一些基础的groovy是必须经常使用的,如变量赋值,变量引用,打印变量,输出字符,任务调用,循环判断等. Groo ...
- jenkins2 pipeline插件的10个最佳实践
jenkins pipeline的10个最佳实践. 文章来自:http://www.ciandcd.com文中的代码来自可以从github下载: https://github.com/ciandcd ...
- item pipeline 实例:爬取360摄像图片
生成项目 scrapy startproject image360 cd Image360 && scrapy genspider images images.so.com 一. 构 ...
- Jenkins pipeline 入门到精通系列文章
Jenkins2 入门到精通系列文章. Jenkins2 下载与启动jenkins2 插件安装jenkins2 hellopipelinejenkins2 pipeline介绍jenkins2 jav ...
- Jenkins2 插件 Pipeline+BlueOcean 实现持续交付的初次演练
需要完成的目标 使用Pipeline完成项目的checkout,package.deploy.restart 提取出公有部分封装为公有JOB 实现pipeline对其他JOB的调用和逻辑的判断 实现任 ...
随机推荐
- linux 驱动学习笔记01--Linux 内核的编译
由于用的学习材料是<linux设备驱动开发详解(第二版)>,所以linux驱动学习笔记大部分文字描述来自于这本书,学习笔记系列用于自己学习理解的一种查阅和复习方式. #make confi ...
- 2016.02.02 JS事件
今天看完JS事件部分,所剩时间不多,务必分秒珍惜.
- JQuery中$(document)是什么意思有什么作用
$(document).ready(fn):当DOM载入就绪可以查询及操纵时绑定一个要执行的函数,因为它可以极大地提高web应用程序的响应速度 首先我解释一下jQuery jQuery有一个用来作为D ...
- POJ 1873 - The Fortified Forest 凸包 + 搜索 模板
通过这道题发现了原来写凸包的一些不注意之处和一些错误..有些错误很要命.. 这题 N = 15 1 << 15 = 32768 直接枚举完全可行 卡在异常情况判断上很久,只有 顶点数 &g ...
- umf(转)
深入浅出Eclipse Modeling Framework (EMF) Eclipse Modeling Framework (EMF),简单的说,就是Eclipse提供的一套建模框架,可以用EMF ...
- linux 下部署 redis
Redis是一种高级key-value数据库.它跟memcached类似,不过数据 可以持久化,而且支持的数据类型很丰富.有字符串,链表,集 合和有序集合.支持在服务器端计算集合的并,交和补集(dif ...
- IOS网络请求原理
1,为什么要用到网络, 只有通过网络跟外界进行数据交互,数据更新,应用才能保持哦新鲜.活力 如果没有网络,也就缺少数据变化.变成一滩死水. 2, 良好的移动网络应用 = 良好的UI + 良好的用户体 ...
- 数据字典和动态性能视图<五>
数据字典和动态性能视图 介绍:数据字典是什么 数据字典是 oracle 数据库中最重要的组成部分,它提供了数据库的一些系统信息. 动态性能视图记载了例程启动后的相关信息. 数据字典 数据字典记录了 ...
- 状态机学习(三)解析JSON
来自 从零开始的 JSON 库教程 从零开始教授如何写一个符合标准的 C 语言 JSON 库 作者 Milo Yip https://zhuanlan.zhihu.com/json-tutorial ...
- 【erlang】erlang几种生成随机数的方法
erlang有三个生产随机数的办法 random:uniform(). 这个函数是erlang库random模块提供的.一般都采用这个. 1> random:uniform(). 0.44358 ...