jenkins pipeline部署python (jenkins pipeline构建日志原理)

Jenkins安装使用手册

【docker版本】

一、 概述

Jenkins 2.0的精髓是Pipeline as Code,是帮助Jenkins实现CI到CD转变的重要角色。什么是Pipeline,简单来说,就是一套运行于Jenkins上的工作流框架,将原本独立运行于单个或者多个节点的任务连接起来,实现单个任务难以完成的复杂发布流程。Pipeline的实现方式是一套Groovy DSL,任何发布流程都可以表述为一段Groovy脚本,并且Jenkins支持从代码库直接读取脚本,从而实现了Pipeline as Code的理念。

Pipeline的几个基本概念:

Stage: 阶段,一个Pipeline可以划分为若干个Stage,每个Stage代表一组操作。注意,Stage是一个逻辑分组的概念,可以跨多个Node。

Node: 节点,一个Node就是一个Jenkins节点,或者是Master,或者是Agent,是执行Step的具体运行期环境。

Step: 步骤,Step是最基本的操作单元,小到创建一个目录,大到构建一个Docker镜像,由各类Jenkins Plugin提供。

二、 Docker环境

Jenkins V2.46.2

原始镜像地址: hub.c.163.com/library/jenkins:latest

*服私**地址:localhost:5000/jenkins

访问地址:http://localhost:8777/ Admin用户:root/root123 (登陆设置)

docker run -d --name jenkins -p 8777:8080 -p 50000:50000 -v D:\docker\servers\jenkins\data:/var/jenkins_home localhost:5000/jenkins

Docker logs -f jenkins

注意:数据持久化到本地挂载目录进行存储。

三、 调试

1.解锁Jenkins —》 Unlock Jenkins

jenkinsdocker插件,pipelinejenkinsdocker

说明:按照弹框提示,找到该initialAdminPassword文件,我这里使用Docker启动Jenkins,并且把jenkins_home目录挂载到我磁盘指定目录。

2.定制 Jenkins Customize Jenkins

jenkinsdocker插件,pipelinejenkinsdocker

jenkinsdocker插件,pipelinejenkinsdocker

说明:这里若选择Install suggested plugins安装,那么jenkins就会给你推荐安装一些很有用的插件,若选择Select plugins to install安装,那么就需要自己根据业务需要选择性安装某些插件。

3.创建管理用户

jenkinsdocker插件,pipelinejenkinsdocker

说明:这里创建第一个管理员用户,也可以不设置,直接点击“Continue as admin”,进入jenkins以后再设置。

4.新建Pipeline Job Demo

1) 创建一个pipeline job

jenkinsdocker插件,pipelinejenkinsdocker

创建完成后,点击该job —》设置 —》 Pipeline,在输入框中输入script语句。示例scripit:

node{

stage('get clone'){

//check CODE

git credentialsId: 'f3eb1fea-42b0-46b2-8342-a2be6a65fe73', url: 'http://xx.xx.xx/xx/qd_api.git'

}

//定义mvn环境

def mvnHome = tool 'M3'

env.PATH = "${mvnHome}/bin:${env.PATH}"

stage('mvn test'){

//mvn 测试

sh "mvn test"

}

stage('mvn build'){

//mvn构建

sh "mvn clean install -Dmaven.test.skip=true"

}

stage('deploy'){

//执行部署脚本

echo "deploy ......"

}

}

注意:这里job执行pipeline定义,可以有两种方式,一种直接在job填写pipeline script来执行,一种是使用pipeline script from SCM。

pipeline script:直接在Script输入框里面输入pipeline script语句即可,参考说明可以点击输入框下边的Pipeline Syntax,里面有很多示例操作说明,非常好用。

pipeline script from SCM:需要配置SCM代码存储Git地址或SVN地址,指定script文件所在路径,每次构建job会自动去指定的目录执行script文件

2) 配置全局maven

因为我们的项目是Maven工程,这次执行build需要使用mvn命令,所以需要配置一个全局的Maven。 进入到 系统管理 -》Global Tool —》Maven -》Maven安装,指定Name、MAVEN_HOME、选择要安装的Mavne版本,自动安装即可。

jenkinsdocker插件,pipelinejenkinsdocker

3) 执行构建

点击“立即构建”,即可开始构建,右侧Stage View查看构件流程,点击每个stage,可以查看每个阶段的详细日志输出。

jenkinsdocker插件,pipelinejenkinsdocker

四、 FAQ

1.Maven配置

使用插件 mvn 命令,在script语句里面,我们使用的tool工具来获取全局Maven配置M3,这里我们也可以使用Pipeline Maven Integration Plugin插件来完成。点击插件管理 —》可选插件 —》Pipeline Maven Integration Plugin —》立即安装,安装完成之后,就可以使用该插件使用mvn命令了。

jenkinsdocker插件,pipelinejenkinsdocker

00001.

node{

stage('get clone'){

//check CODE

git credentialsId: 'f3eb1fea-42b0-46b2-8342-a2be6a65fe73', url: 'http://xx.xx.xx/xx/qd_api.git'

}

stage('mvn test'){

withMaven(

maven: 'M3') {

sh "mvn test"

}

}

stage('mvn build'){

//mvn构建

withMaven(

maven: 'M3',

mavenLocalRepo: '.repository') {

sh "mvn clean install -Dmaven.test.skip=true"

}

}

stage('deploy'){

//执行部署脚本

echo "deploy ......"

}

}

2.gitlab

这里check code检出代码操作,jenkins默认集成github,这里我们使用自己的gitlab,clone项目需要用户名密码登录,这里我们可以使用jenkins的credentials创建证书,生成证书以后,在clone代码时,指定git credentialsId,即可完成认证工作。 若不知道生成的证书id是多少,这里有个好办法,去每个项目的pipeline-syntax,默认进入到Snippet Generator(代码段生成器),我们选择git: Git,然后输入Repository URL、Branch、选择Credentials,点击Generate Pipeline Script,在下方输入框里面,就可以生成对应的流程的脚本语句,是不是很方便。

jenkinsdocker插件,pipelinejenkinsdocker

五、 参考地址

Jenkins 集成和使用JIRA Bug跟踪管理工具 :

http://blog.csdn.net/boonya/article/details/77885170

Jenkins实现持续集成中的那些坑

http://blog.csdn.net/chndata/article/details/44852405

Jenkins实现SVN+Maven+Java项目的持续集成

http://www.cnblogs.com/toSeek/p/6714340.html?utm_source=itdadao&utm_medium=referral

持续集成自动化测试框架(robotium jenkins)

http://www.51testing.com/html/93/n-3712593.html

jenkins pipeline的10个最佳实践。

http://www.cnblogs.com/itech/p/5678643.html

Jenkins pipeline 入门到精通系列文章

http://www.cnblogs.com/itech/p/5875428.html