Jenkins pipeline demo
前置条件
1、虚拟机内安装 JDK、Maven 、Docker,然后在全局工具配置里面进行路径设置。如果使用容器的话,进行相应目录挂载就行。
2、Jenkins插件方面:使用推荐的安装,如果有失败,重试或者手动下载,不需要额外插件就可以。
注:插件依赖都是POM维护的,可以官网查询,还有就是artifactId和插件名称不是一码事。
Pipeline使用方面
1、通过页面有两种,一种是直接写入,一种是从SCM中签出最新代码。
2、Pipeline脚本方面,推荐使用声明式,如果有复杂场景,可以嵌入脚本式代码。
simple code
pipeline {
agent any
tools { //全局配置---工具引用
maven 'maven3.5.4'
jdk 'jdk8'
}
stages {
stage('tool messages') { //工具版本信息
steps {
sh 'java -version'
sh 'mvn -v'
sh 'docker version'
}
}
stage('git clone') {
steps {
git branch: 'master',
credentialsId: '28ed55cd-e8a4-4888-ad54-ebf9cfe0e5f5',
url: 'git@github.com:Hhdxf-xjp/springboot-CRUD.git'
}
}
stage('mvn cmd ') {
steps {
sh 'mvn clean install'
}
}
stage('build images') {
steps {
echo 'begin build images!'
script {
def customImage = docker.build("xjp-image:v1")
customImage.inside {
sh 'ls'
}
}
}
}
}
}
补充:
最后构建镜像的话,根目录需要有DockerFile,当前工作区的目录,会自动挂载到容器中。
以上是简单的拉取代码打包成jar包,并进行构建成镜像的简单pipeline demo
补充功能
远程Job调用
第一步、安装Parameterized Remote Trigger插件。
第二步、创建用户—用于远程连接。
第三步、配置远程连接的地址和认证,地址配置本机就是本地调用。
Jenkins>Manage Jenkins>Configure System
第四步、pipeline脚本区进行调用。
demo
//...
script{
triggerRemoteJob job: 'git-clone', maxConn: 1, remoteJenkinsName: 'remoteHost',useCrumbCache: true, useJobInfoCache: true
}
//...
//详细语法参考https://jenkins.io/doc/pipeline/steps/Parameterized-Remote-Trigger/
如果所有任务均是独立可复用的(前提是该任务是可以通过参数配置的),这样的话,就可以使用pipeline进行任务执行顺序的任意组装,也可以实现单个阶段,单个任务的独立运行。