jenkis 使用pipeline编排
jenkis 使用pipeline编排
- pipeline 使用编码的格式来定制整个jenkins构建过程,可以将单个及多个任务链接起来,实现复杂流程编排及可视化工作。
目录
1,安装pipeline
- 在插件中安装pipeline
- 添加任务
2,使用声明式构建任务语法
pipeline {
agent any
stages {
stage('pull code') {
steps {
echo 'pull code'
}
}
stage('build project') {
steps {
echo 'build project'
}
}
stage('publish project') {
steps {
echo 'publish project'
}
}
}
}
3, 使用流水线语法进行拉取代码
- 使用流水语法工具可以进行一些步骤构建等
将脚本复制粘贴到流水线steps中
pipeline {
agent any
stages {
stage('pull code') {
steps {
checkout([$class: 'GitSCM', branches: [[name: '*/master']], extensions: [], userRemoteConfigs: [[credentialsId: 'fa4e71ee-c4f6-44e4-8294-f9d3fbe9b03b', url: 'http://192.170.11.174:82/vic_group/webapp_demo.git']]])
}
}
}
}
4, 使用流水线打包代码
- shell script --> mvn clean all
- copy 相关代码到流水线构建代码中
pipeline {
agent any
stages {
stage('pull code') {
steps {
checkout([$class: 'GitSCM', branches: [[name: '*/master']], extensions: [], userRemoteConfigs: [[credentialsId: 'fa4e71ee-c4f6-44e4-8294-f9d3fbe9b03b', url: 'http://192.170.11.174:82/vic_group/webapp_demo.git']]])
}
}
stage('build project') {
steps {
sh 'mvn clean package'
}
}
}
}
5, 使用流水线语法部署项目
deploy :Deploy war/ear to a container -->WAR/EAR files[targs/*.war]-->Containers[
Tomcat 8.x RemoteCredentials
Tomcat URL [http://192.170.11.169:8080]
将生成的代码复制到流水线steps中
pipeline {
agent any
stages {
stage('pull code') {
steps {
checkout([$class: 'GitSCM', branches: [[name: '*/master']], extensions: [], userRemoteConfigs: [[credentialsId: 'fa4e71ee-c4f6-44e4-8294-f9d3fbe9b03b', url: 'http://192.170.11.174:82/vic_group/webapp_demo.git']]])
}
}
stage('build project') {
steps {
sh 'mvn clean package'
}
}
stage('publish project') {
steps {
deploy adapters: [tomcat8(credentialsId: '35b26f6a-4416-404d-9d28-025babbcdc39', path: '', url: 'http://192.170.11.169:8080')], contextPath: null, war: 'target/*.war'
}
}
}
}
应用保存后构建完成
6,使用jenkinsfile+gitlab 存储构建步骤
将构建的流水步骤一起添加到相对于的代码仓库一级目录,便于相对管理以及版本控制
在代码一级目录创建jenkinsfile
pipeline {
agent any
stages {
stage('pull code') {
steps {
checkout([$class: 'GitSCM', branches: [[name: '*/master']], extensions: [], userRemoteConfigs: [[credentialsId: 'fa4e71ee-c4f6-44e4-8294-f9d3fbe9b03b', url: 'http://192.170.11.174:82/vic_group/webapp_demo.git']]])
}
}
stage('build project') {
steps {
sh 'mvn clean package'
}
}
stage('publish project') {
steps {
deploy adapters: [tomcat8(credentialsId: '35b26f6a-4416-404d-9d28-025babbcdc39', path: '', url: 'http://192.170.11.169:8080')], contextPath: null, war: 'target/*.war'
}
}
}
}
- 将代码上传到github ,新增构建job,流水线定义选择为【pipeline script form SCM】--> 【git】-->【添加git认证】-->脚本路径填写为 jenkinsfilename-->应用保存-->构建