pipeline流水线:when的使用

pipeline流⽔线:when的使⽤
pipeline 流⽔线:when 例⼦说明
本次例⼦实现以下功能:
1,能够参数选择发布的环境
2, pipeline脚本中利⽤参数进⾏阶段选择
3,可以选择分⽀
4,可以选择部署到开发环境或者提交到测试
5,提交测试需要填写提测版本号(提测必须填写)泥浆泵压力传感器
6,提交测试时,备注配置变化(⽆变化可以不填写)
添加需要的构建参数
1. 分⽀参数
2.部署动作参数, Deploy_to_development_environment:部署到开发环境;
Summit_the_test:提交镜像给测试。这两个值会在pipeline脚本⾥提供给when进⾏判断。
3.提测版本
历史版本:
4.提测配置备注
5.pipeline脚本
脚本说明
pipeline {
agent any
environment {
BUILD_USER = ""
}
tools {
maven 'maven'
jdk  'Oracle_jdk8'
}
// 分⽀选择,注意BRANCH,与构建参数⼀致
parameters {
gitParameter branchFilter: 'origin/(.*)', defaultValue: 'master', name: 'BRANCH', type: 'PT_BRANCH'
}
stages {
stage('准备'){
steps{
script{
//pipeline中的when不能直接调⽤参数化构建⾥⾯的参数。需要进⾏变量赋值。
ACTION = "${dev_or_test}"
}
}
}
stage('拉代码') {
//when进⾏判断,若变量ACTION的值是Deploy_to_development_environment,则执⾏这个步骤。
//Deploy_to_development_environment是参数化构建⾥⾯配置好的。
when {硅链
equals expected: 'Deploy_to_development_environment',
actual: ACTION
}
steps {
echo '开始拉取代码.....'
git branch: "${params.BRANCH}", credentialsId: '7XXXXXXXXf0-1de413f5ea29', url: 'gitlab.vonedao/XXXXXX.git'  }
}
stage('编译打包镜像') {
when {
equals expected: 'Deploy_to_development_environment',
actual: ACTION
}
steps {
echo '开始执⾏编译打包操作.......'会计凭证装订机
sh 'mvn clean install -st.skip=true -U'
echo 'Build Docker Image'
sh 'mvn -f ./$JOB_l  docker:stop docker:remove docker:build docker:push'
}
}
stage('部署到开发环境') {
when {
equals expected: 'Deploy_to_development_environment',
actual: ACTION非隔离电源模块
}
steps {
echo '开始发布开发环境 .......'
//执⾏⾃⼰编写的shell脚本,进⾏部署动作
sh '/var/jenkins_home/piplineshell/deploy_dev.sh'
}
}
stage('提交到测试') {
//when进⾏判断,若变量ACTION的值是Summit_the_test,则执⾏这个步骤。
/
/Summit_the_test是参数化构建⾥⾯配置好的。
when {
equals expected: 'Summit_the_test',
actual: ACTION
}
steps {
script {
//提测版本号不能为空
if (env.NewVersion) {
//提测版本号不能与历史提测版本号重复
sh '/var/jenkins_home/piplineshell/check_version_.sh'
/
/利⽤Jenkins的workspace下⾯已经拉下git的项⽬(开发已经部署验证通过了),进⾏版本号修改,然后编译打包提交给测试。                        sh 'mvn versions:set -DnewVersion=${NewVersion} -DupdateMatchingVersions=false'
sh 'mvn -f ./${JOB_NAME}/l versions:update-child-modules'
sh 'mvn -f ./${JOB_NAME}/l clean install -st.skip=true -U '
sh 'mvn -f ./$JOB_l docker:stop docker:remove docker:build docker:push'
sh 'mvn -f ./$JOB_l versions:revert'
//该脚本作⽤是将本次的新版本号写⼊对应⽂件/var/jenkins_home/piplineshell/version_tag/cs-auth
//并且修改yaml⽂件中的镜像版本号,将最新yaml⽂件同步到测试环境。
sh '/var/jenkins_home/piplineshell/version_tag.sh'
干涉光刻>灯头盒
}
else {
echo 'ERROR : 没有填写提测版本号'
sh 'exit 1'
}
}
// Get build user profile via User Build Vrs plugin
// wiki.jenkins.io/display/JENKINS/Build+User+Vars+Plugin
//企业消息通知
wrap([$class: 'BuildUser']) {
script {
BUILD_USER = "${env.BUILD_USER}"
sh '/var/jenkins_home/piplineshell/sendmessage.sh'
}
}
}
}
}
}
6.执⾏效果
选择部署动作是部署到开发环境:选择分⽀,选择Deploy_to_development_environment
点击构建:
选择部署动作是提交到测试环境:选择Summit_the_test,填写版本号,填写变动的配置

本文发布于:2024-09-24 07:22:07,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/4/225321.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:版本号   提测   部署   参数   选择   提交   填写
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议