看到了一个pipeline例子,
pipeline {
agent any
options {
timestamps()
}
parameters {
string(name: 'GIT_BRANCH', defaultValue: 'master', description: 'default build branch')
booleanParam(name: 'RUN_SONAR_SCANNER', defaultValue: true, description: 'run the sonar scanner check.')
}
environment {
MAVEN_IMAGE = 'maven:3-alpine'
SONAR_SCANNER_IMAGE = 'cnlinux/sonar-scanner:3.0.3'
SONAR_SERVER = 'http://10.0.7.1:9000'
DOCKER_REGISTRY = "10.0.7.1:5000"
APP_NAME = 'jenkins-jipeline-demo'
DEPLOY_HOST = '10.0.7.1:2376'
}
stages {
stage('Checkout') {
steps {
git branch: "${params.GIT_BRANCH}", url: 'https://github.com/opspy/Jenkins-Pipeline-demo.git'
}
}
stage('Test') {
parallel {
stage ('Unit Test') {
agent {
docker {
reuseNode true
image '${MAVEN_IMAGE}'
args '-v $HOME/.m2:/root/.m2'
}
}
steps {
sh 'mvn test'
junit '**/target/**/*.xml'
}
}
stage ('Sonar Scanner') {
when {
environment name: 'RUN_SONAR_SCANNER', value: 'true'
}
agent {
docker {
reuseNode true
image '${SONAR_SCANNER_IMAGE}'
}
}
steps {
sh 'sonar-scanner -Dsonar.host.url=${SONAR_SERVER}'
}
}
}
}
stage('Build War') {
agent {
docker {
reuseNode true
image '${MAVEN_IMAGE}'
args '-v $HOME/.m2:/root/.m2'
}
}
steps {
sh 'mvn -Dmaven.test.skip=true clean install'
}
}
stage('Docker image') {
steps {
sh """
mv -f target/*.war deployment/
docker build -t ${DOCKER_REGISTRY}/${APP_NAME}:${BUILD_NUMBER} deployment
docker push ${DOCKER_REGISTRY}/${APP_NAME}:${BUILD_NUMBER}
docker rmi ${DOCKER_REGISTRY}/${APP_NAME}:${BUILD_NUMBER}
rm -f deployment/*.war
"""
}
}
stage('Deploy') {
steps {
input message: 'Are you sure Deployment?', ok: 'Yes'
sh"""
docker -H ${DEPLOY_HOST} rm -f ${APP_NAME} | true
docker -H ${DEPLOY_HOST} run -d --name ${APP_NAME} -p 9090:8080 ${DOCKER_REGISTRY}/${APP_NAME}:${BUILD_NUMBER}
"""
}
}
}
post {
always {
emailext body: """<p>STARTED: Job '${env.JOB_NAME} [${env.BUILD_NUMBER}]':</p>
<p>Check console output at "<a href="${env.BUILD_URL}">${env.JOB_NAME} [${env.BUILD_NUMBER}]</a>"</p>""",
subject: "STARTED: Job '${env.JOB_NAME} [${env.BUILD_NUMBER}]'",
to: 'admin@example.com'
}
}
}
看到了一个pipeline例子,的更多相关文章
- SQL Server Reporting Service(SSRS) 第一篇 我的第一个SSRS例子
很早就知道SQL SERVER自带的报表工具SSRS,但一直没有用过,最近终于需要在工作中一展身手了,于是我特地按照自己的理解做了以下总结: 1. 安装软件结构 SSRS全称SQL Server Re ...
- 一个简单例子:贫血模型or领域模型
转:一个简单例子:贫血模型or领域模型 贫血模型 我们首先用贫血模型来实现.所谓贫血模型就是模型对象之间存在完整的关联(可能存在多余的关联),但是对象除了get和set方外外几乎就没有其它的方法,整个 ...
- java连接mysql的一个小例子
想要用java 连接数据库,需要在classpath中加上jdbc的jar包路径 在eclipse中,Project的properties里面的java build path里面添加引用 连接成功的一 ...
- java操作xml的一个小例子
最近两天公司事比较多,这两天自己主要跟xml打交道,今天更一下用java操作xml的一个小例子. 原来自己操作xml一直用这个包:xstream-1.4.2.jar.然后用注解的方式,很方便,自己只要 ...
- MVVM模式的一个小例子
使用SilverLight.WPF也有很长时间了,但是知道Binding.Command的基本用法,对于原理性的东西,一直没有深究.如果让我自己建一个MVVM模式的项目,感觉还是无从下手,最近写了一个 ...
- Lea指令计算地址(用于四则混合运算),附上一个函数调用例子及其反汇编代码,很清楚
比如你用local在栈上定义了一个局部变量LocalVar,你知道实际的指令是什么么?一般都差不多像下面的样子: push ebp mov esp, ebp sub ...
- (转)Java中使用正则表达式的一个简单例子及常用正则分享
转自:http://www.jb51.net/article/67724.htm 这篇文章主要介绍了Java中使用正则表达式的一个简单例子及常用正则分享,本文用一个验证Email的例子讲解JAVA中如 ...
- C语言多线程的一个简单例子
多线程的一个简单例子: #include <stdio.h> #include <stdlib.h> #include <string.h> #include &l ...
- 【Qt官方MQTT库的使用,附一个MqttClient例子】
Qt官方MQTT库的使用,附一个MqttClient例子 开发环境:win7 64 + Qt5.9 记录时间:2018年3月11日 00:48:42 联系邮箱: yexiaopeng1992@126. ...
随机推荐
- HDU 2588 GCD------欧拉函数变形
GCD Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submiss ...
- JVM之---Java源码编译机制
Sun JDK中采用javac将Java源码编译为class文件,这个过程包含三个步骤: 1.分析和输入到符号表(Parse and Enter) Parse过程所做的工作有词法和语法分 ...
- Android开发之旅5:应用程序基础及组件
引言 上篇Android开发之旅:应用程序基础及组件介绍了应用程序的基础知识及Android的四个组件,本篇将介绍如何激活组关闭组件等.本文的主题如下: 1.激活组件:意图(Intents) 1.1. ...
- Bash:常用命令工具-uniq
NAME uniq - report or omit repeated lines SYNOPSIS uniq [OPTION]... [INPUT [OUTPUT]] DESCRIPTION Fil ...
- Spring Boot fastJSON的使用
springBoot,默认使用的json解析框架是Jackson. 虽然jackson能够满足json的解析,如果想使用熟悉的alibaba的fastjon,我们只需要在pom文件中配置maven依赖 ...
- apply的“非改变this“的用法
说到apply,大家都是知道是改变this指向的,也都会立马和call联系在一起,MDN官网上也是如是说: 其实我们在平常使用call和apply的时候,都是想到他们的改变函数的this的功能, 正如 ...
- JS判断客户端是否是iOS或者Android端
通过判断浏览器的userAgent,用正则来判断手机是否是 IOS 和 Android 客户端. 代码如下: (function(){ var u = navigator.userAgent; var ...
- 3org.springframework.beans.factory.BeanDefinitionStoreException异常
1.下面是我遇到的异常信息: 2017-03-25 18:01:11,322 [localhost-startStop-1][org.springframework.web.context.Conte ...
- 【Oracle】PL/SQL Developer使用技巧(持续更新中)
1.关键字自动大写 在sql命令窗口中输入SQL语句时,想要关键字自动大写,引人注目该怎么办呢? 一步设置就可以达成了.点击Tools->Preference->Editor,看到截图中这 ...
- 【Oracle】存储过程写法小例子
1.存储过程的基本语法: CREATE OR REPLACE PROCEDURE 存储过程名(param1 in type,param2 out type) IS 变量1 类型(值范围); 变量2 类 ...