jenkins构建组合流程
工作空间临时目录作用
jenkins在进行项目编译的时候会在工作空间下创建一些临时目录 这些临时目录在编译和部署期间不能删除 只能在流水线最后阶段删除
在流水线执行中间阶段删除的话 会导致访问不了编译后的文件
groovy脚本中引入jenkins内置变量 "${workspace}/register-center/target“
删除AppServiceProject@tmp目录后 然后再执行远程拷贝jar包的时候就会提示访问不到相关jar包
把清空临时目录的操作移动到流水线的最后步骤后就可以远程拷贝包
environment{…}, 大括号里面写一些键值对,也就是定义一些变量并赋值,这些变量就是环境变量。环境变量的作用范围,取决你environment{…}所写的位置,你可以写在顶层环境变量,让所有的stage下的step共享这些变量,也可以单独定义在某一个stage下,只能供这个stage去调用变量,其他的stage不能共享这些变量
dir()方法:就是改变当前的工作目录,在dir语句块里执行的其他路径或者相对路径
deleteDir()方法:默认递归删除WORKSPACE下的文件和文件夹,没有参数
Pipeline异常处理
stage("Build"){
steps {
script {
javahome = tool "Java1"
//sh "echo '***************************************************'"
//sh "${javahome}/bin/java -version"
//sh "export JAVA_HOME=${javahome}"
mvnhome = tool "M2"
//sh "${mvnhome}/bin/mvn clean install -Dmaven.test.skip=true"
sh "${mvnhome}/bin/mvn -Pdev clean -DskipTests=true install"
try {
sh "${srcPath}/mvn-sonar.sh"
}
catch (Exception err){
print("代码覆盖率检查失败")
}
}
}
post {
success {
print("Build success......")
}
}
}
stage("Build Image"){
steps {
script {
mytools.create_dockerimage("${workspace}/register-center/target/register-center-dev.jar","${clusterPath}","register-center-dev.jar","taishiganzhi","register-center")
mytools.create_dockerimage("${workspace}/config-center/target/config-center-dev.jar","${clusterPath}","config-center-dev.jar","taishiganzhi","config-center")
mytools.create_dockerimage("${workspace}/gateway-zuul/target/gateway-zuul-dev.jar","${clusterPath}","gateway-zuul-dev.jar","taishiganzhi","gateway-zuul")
mytools.create_dockerimage("${workspace}/admin/target/admin-dev.jar","${clusterPath}","admin-dev.jar","taishiganzhi","admin")
mytools.create_dockerimage("${workspace}/bizapp/sdc-collect-config/target/sdc-collect-config-dev.jar","${clusterPath}","sdc-collect-config-dev.jar","taishiganzhi","sdc-collect-config")
mytools.create_dockerimage("${workspace}/bizapp/sdc-rule-config/target/sdc-rule-config-dev.jar","${clusterPath}","sdc-rule-config-dev.jar","taishiganzhi","sdc-rule-config")
mytools.create_dockerimage("${workspace}/bizapp/sdc-es-service/target/sdc-es-service-dev.jar","${clusterPath}","sdc-es-service-dev.jar","taishiganzhi","sdc-es-service")
}
}
post {
success {
print("Build image success......")
}
}
}
流水线异常捕获
单个stage出现异常不会影响后面stage的执行
Jenkins组合Job
1.安装插件Multijob plugin
2.创建任务 任务的类型为Multijob
3.编排组合job 按照顺序从上往下依次执行job
在任务的构建阶段设置job组合 直接填写已经存在的job name即可
4.查看任务执行结果
5.查看各个子job的详细日志
一个Job处理多个git仓库
1. 安装Multiple SCMs plugin插件
2.查看项目的工作空间目录
前台项目和后台项目分别被拉取到不同的子目录中 在编译的时候相互不会影响.
3.pipeline脚本实现多仓库拉取git
pipeline {
agent any
stages {
stage('Get Code') {
steps {
checkout([$class: 'GitSCM', branches: [[name: '*/master']], doGenerateSubmoduleConfigurations: false, extensions: [[$class: 'RelativeTargetDirectory', relativeTargetDir: 'backend']], submoduleCfg: [], userRemoteConfigs: [[credentialsId: 'yxhgitlab', url: 'https://192.168.30.111:8090/tf-as/appservice.git']]])
checkout([$class: 'GitSCM', branches: [[name: '*/master']], doGenerateSubmoduleConfigurations: false, extensions: [[$class: 'RelativeTargetDirectory', relativeTargetDir: 'front']], submoduleCfg: [], userRemoteConfigs: [[credentialsId: 'yxhgitlab', url: 'https://192.168.30.111:8090/tf-as/h5-new.git']]])
}
}
}
}
流水线
node {
stage('Checkout') {
checkout([$class: 'GitSCM', branches: [[name: '*/develop']], doGenerateSubmoduleConfigurations: false, extensions: [], submoduleCfg: [], userRemoteConfigs: [[url: 'git@192.168.1.248:mall/www-xxx-cms.git']]])
checkout([$class: 'GitSCM', branches: [[name: '*/master']], doGenerateSubmoduleConfigurations: false, extensions: [[$class: 'RelativeTargetDirectory', relativeTargetDir: 'www_cms_resources']], submoduleCfg: [], userRemoteConfigs: [[url: 'git@192.168.1.248:2019_lx_group/www_cms_resouces.git']]])
sh(script: "mv www_cms_resources/* www-cms-web/src/main/resources/")
}
}
这样就实现了在同一个Job拉取不同的项目或者不同的项目分支到指定的子目录中
jenkins在ubuntu系统部署
ssh test@192.168.30.83 'rm -fr /home/test/release/nta-install-test.bin'
ssh test@192.168.30.83 'rm -fr /home/test/release/ntaback'
ssh test@192.168.30.83 'rm -fr /home/test/release/nta-manager'
scp -r ntaback test@192.168.30.83:/home/test/release
scp -r nta-manager test@192.168.30.83:/home/test/release
ssh test@192.168.30.83 'sudo chmod 777 -R /home/test/release'
ssh test@192.168.30.83 'cd /home/test/release && sudo sh release.sh'
View Code
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhibegkj
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
微信运动停用后别人还能看到步数吗
PHP中文网 07-22 -
excel打印预览压线压字怎么办
PHP中文网 06-22