jenkins根据操作类型重启服务还是更新代码重新部署流水线写法示例

jenkins根据操作类型重启服务还是更新代码重新部署流水线写法示例

1. 首先看效果

能够根据operate操作来选择是重启服务(不更新代码)还是重新获取代码重新部署服务,且能够选择分支进行部署。
图一 是参数选择构建界面
图二 根据选择不同operate操作的显示结构
在这里插入图片描述
在这里插入图片描述

2. 附上流水线代码

2.1 代码

pipeline {
    agent any

    tools{
        maven  "maven3"
    }
    // 配置参数,后续可以用params来获取name值。
    parameters {
        choice(
            choices: ['restart' , 'deploy'],
            description: 'restart 表示重启,不更新代码 deply 部署最新代码',
            name: 'OPERATE')
            
        gitParameter branchFilter: 'origin/(.*)', defaultValue: 'test', name: 'BRANCH', type: 'PT_BRANCH'

    }

  
    stages {
        stage('PULL') {
         // when表示有条件执行
         when {
                // Only say hello if a "greeting" is requested
                expression { params.OPERATE == 'deploy' }
            }
            steps {
			  echo "获取最新代码"
			  //注意 引用必须使用双引号“”,字符串是单引号
			  git branch:  "${params.BRANCH}", 
			  // 需要提前配置git登录的用户
			  credentialsId: 'a057784c$$%%^^&&&***(((((((-db5eff90a75e', url: 'http://url/zqm/zeus.git'

            }
        }
		
		 stage('COMPILE') {
         when {
                // Only say hello if a "greeting" is requested
                expression { params.OPERATE == 'deploy' }
            }
            steps {
			  echo "开始compile"
			   sshPublisher(publishers: [sshPublisherDesc(configName: 'dev', 
			   transfers: [sshTransfer(cleanRemote: false, excludes: '',
			   // 此处需要填写全路径
			   execCommand: 'sh /***/***/compile.sh', 
			   execTimeout: 120000, flatten: false, 
			   makeEmptyDirs: false, noDefaultExcludes: 
			   false, patternSeparator: '[, ]+', 
			   //此处将影响git pull 代码的位置
			   remoteDirectory: '/***/***/jenkins',
			   remoteDirectorySDF: false, removePrefix: '',
			   sourceFiles: '**/**')],
			   usePromotionTimestamp: false, useWorkspaceInPromotion:
			   false, verbose: false)])

            }
        }

        stage('DEPLOY') {
            steps {
               echo "开始构建"
         	   sshPublisher(publishers: [sshPublisherDesc(configName: 'dev',
         	   transfers: [sshTransfer(cleanRemote: false, excludes: '', 
         	   // 此处需要填写全路径
         	   execCommand: 'sh /**/deplou.sh', execTimeout: 120000, 
         	   flatten: false, makeEmptyDirs: false, 
         	   noDefaultExcludes: false, patternSeparator: '[, ]+', 
         	   //此处将影响git pull 代码的位置
         	   remoteDirectory: '/jenkins_project/zeus/jenkins', 
         	   remoteDirectorySDF: false, removePrefix: '', 
         	   sourceFiles: '**/**')], 
         	   usePromotionTimestamp: false, 
         	   useWorkspaceInPromotion: false, verbose: false)])
            }
         
        }
        
    }
}

2.配置流水线过程如下

  1. 新建任务如图一
    新建流水线任务
  2. 配置流线型如图二
    编写流水线代码
  3. 构建界面如图三
    流水线展示的操作界面
  4. 构建展示如图四
    不同操作的效果图
    第十六次构建是deploy,会更新代码
    第十五次构建是重启,不会更新代码,不会编译工程,只是重启jar服务

在这里插入图片描述
在这里插入图片描述

3. 友情链接

1.jenkins配置ssh服务器
2.jenkins集成单元测试
3.jinkins执行完命令会一直转圈解决方案

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值