pipeline {
agent any parameters {
choice(
choices: 'feature\nmaster\npercent10',
description: '选择要发布的分支,默认是feature',
name: 'deploy_branch'
) choice(
choices: 'service\ncontroller\nadmin-web',
description: '选择要发布的服务,默认是controller',
name: 'deploy_service'
) } stages {
stage ("Git") {
steps {
// Get some code from a GitHub repository
//sh "echo test-auto-release"
script {
manager.addShortText("分支:"+manager.envVars['deploy_branch'])
manager.addShortText("服务:"+manager.envVars['deploy_service'])
}
sh 'ssh -i /opt/.scripts/jmu-hc-pro-jump.pem -o StrictHostKeyChecking=no root@IP "sh /opt/jenkins/opt/.scripts/test-auto-release.sh git-jmucai ${deploy_branch}"'
}
} stage ("Build") {
steps {
// Run the maven build
//sh "echo test-auto-release"
sh 'ssh -i /opt/.scripts/jmu-hc-pro-jump.pem -o StrictHostKeyChecking=no root@IP "sh /opt/jenkins/opt/.scripts/test-auto-release.sh mvn-jmucai"' }
} stage ("Copy") {
steps {
// Copy file to server
script {
if ( deploy_service == 'service') {
sh 'ssh -i /opt/.scripts/jmu-hc-pro-jump.pem -o StrictHostKeyChecking=no root@IP "sh /opt/jenkins/opt/.scripts/test-auto-release.sh copy-jmucai service IP3 jmucai-hc-pro-core.pem"'
} else if ( deploy_service == 'controller') {
sh 'ssh -i /opt/.scripts/jmu-hc-pro-jump.pem -o StrictHostKeyChecking=no root@IP "sh /opt/jenkins/opt/.scripts/test-auto-release.sh copy-jmucai controller IP2 jmucai-hc-pro-core.pem"'
} else if ( deploy_service == 'admin-web') {
sh 'ssh -i /opt/.scripts/jmu-hc-pro-jump.pem -o StrictHostKeyChecking=no root@IP "sh /opt/jenkins/opt/.scripts/test-auto-release.sh copy-jmucai admin-web IP2 jmucai-hc-pro-core.pem"'
} } }
} stage ("Issu") {
steps {
// Update
script {
if ( deploy_service == 'service') {
sh 'ssh -i /opt/.scripts/jmu-hc-pro-jump.pem -o StrictHostKeyChecking=no root@IP "sh /opt/jenkins/opt/.scripts/test-auto-release.sh issu-jmucai service IP3 jmucai-hc-pro-core.pem"' } else if ( deploy_service == 'controller') {
sh 'ssh -i /opt/.scripts/jmu-hc-pro-jump.pem -o StrictHostKeyChecking=no root@IP "sh /opt/jenkins/opt/.scripts/test-auto-release.sh issu-jmucai controller IP2 jmucai-hc-pro-core.pem"'
} else if ( deploy_service == 'admin-web') {
sh 'ssh -i /opt/.scripts/jmu-hc-pro-jump.pem -o StrictHostKeyChecking=no root@IP "sh /opt/jenkins/opt/.scripts/test-auto-release.sh issu-jmucai admin-web IP2 jmucai-hc-pro-core.pem"'
}
}
}
}
} }

Jenkins中管道案例脚本(生命式语法)的更多相关文章

  1. 解决Jenkins中执行jmeter脚本后不能发报告(原报告被覆盖、新报告无法保存)的问题

    我没有找到根本原因,但是我用了个取巧的办法: 先将原来的报告移到别的文件夹,执行完jmeter脚本后,再把那些旧报告移回来(也可以不移回来,我这里是为了能从jenkins页面上看).

  2. jenkins中使用shell脚本必须切换jenkins用户

    https://blog.csdn.net/cdnight/article/details/81078191 安装这篇解决的 正确使用脚本的方式: 1.脚本必须使用jenknins用户,且所有命令必须 ...

  3. 如何在Objective-C中实现链式语法

    在接触到开源项目 Masonry 后,里面的布局约束的链式写法让我颇感兴趣,就像下面这样: 1 2 3 4 5 6 7 8 UIEdgeInsets padding = UIEdgeInsetsMak ...

  4. 如何在Objective-C中实现链式语法?

    在接触到开源项目 Masonry 后,里面的布局约束的链式写法让我颇感兴趣,就像下面这样: 1 2 3 4 5 6 7 8 UIEdgeInsets padding = UIEdgeInsetsMak ...

  5. 使用jenkins中遇到的问题汇总/持续更新

    jenkins产生大量日志文件 question: [DNSQuestion@1446063419 type: TYPE_IGNORE index 0, class: CLASS_UNKNOWN in ...

  6. unity3d中脚本生命周期(MonoBehaviour lifecycle)

    最近在做一个小示例,发现类继承于MonoBehaviour的类,有很多个方法,于是乎必然要问出一个问题:这么多个方法,执行先后顺序是如何的呢?内部是如何进行管理的呢?于是在网上找了许多资料,发现了Ri ...

  7. (转)unity3d中脚本生命周期(MonoBehaviour lifecycle)

    自:http://blog.csdn.net/qitian67/article/details/18516503 最近在做一个小示例,发现类继承于MonoBehaviour的类,有很多个方法,于是乎必 ...

  8. Python项目在Jenkins中的自动化测试实践(语法检查、单元测试,coverage(代码覆盖率)、自动打包)

    原始链接:http://blog.csdn.net/a464057216/article/details/52934077 requirments OS: Ubuntu 14.04+ Gitlab 8 ...

  9. Unity3D热更新之LuaFramework篇[06]--Lua中是怎么实现脚本生命周期的

    前言 用c#开发的时候,新建的脚本都默认继承自Monobehaviour, 因此脚本才有了自己的生命周期函数,如Awake,Start, Update, OnDestroy等. 在相应的方法中实现游戏 ...

随机推荐

  1. 【vue】---- 图片懒加载

    1.作用 在图片较多的页面中,页面加载性能较差.使用图片懒加载可以让图片出现在可视区域时再进行加载,从而提高用户体验. 2.原理 设置img标签的src属性为空或统一的图片路径(如加载中样式),监听页 ...

  2. LeetCode专题——详解搜索算法中的搜索策略和剪枝

    本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是LeetCode专题第20篇文章,今天讨论的是数字组合问题. 描述 给定一个int类型的候选集,和一个int类型的target,要求返 ...

  3. Docker 使用杂记 - 最佳实践尝试 - 实战

    目录 Docker 使用杂记 - 最佳实践尝试 - 实战 Docker简介 项目背景 内在原因 外在原因 基础镜像 需求 镜像维护者 工作文件夹 文件 ADD COPY 宗卷 命令 入口点 Docke ...

  4. 如何快速高效率地学习Go语言

    要想快速高效率地掌握Go语言,关键是要通过不断写代码去训练,熟能生巧.方法是没问题的,但具体的路径呢?就像开车,能不能给个导航?我希望这篇文章能起到一个导航的作用,这里提供的路径,应该对很多人都适合. ...

  5. 记Android R(SDK=30)系统执行UiAutomator1.0异常

    最近Android发布了AndroidStudio 3.6稳定版,升级后明显能体验到好多细节的提升,最大的提升莫过于可以创建Android R预览版的模拟器了,并且模拟器可以设置多个尺寸的屏幕.And ...

  6. vue-element-admin中是如何配置浏览器中的页面标题

    因为在vue-element-admin中杈哥是写个一个动态路由标题,就是说你点进那个页面,它会显示对应页面的标题,所以我们仅仅在index页面进行修改是没有用的,那么我们改如何修改呢? 找到perm ...

  7. vs 如何将dll打包到exe中

    方法如下:首先需要安装NuGet 然后安装Fody.Costura 重新启动vs 编译项目即可 虽然根目录下还生成了dll但是你的程序已经可以脱离dll运行了,其实是将你的dll打入了exe中你可以看 ...

  8. MySQL笔记(3)-- SQL分析

    Linux服务器安装MySQL后,直接命令mysql进入服务,需进行修改: /usr/bin/mysqladmin -u root password 123456 设置开机自启动: chkconfig ...

  9. 1. chromedriver的下载和配置

    使用selenium时,需要用到不同浏览器的driver. 我常用chromedriver,所以先记录chromedriver的使用和配置.其他浏览器的driver配置大同小异. 一. 确定浏览器的版 ...

  10. JavaScript----DOM和事件的简单学习

    ##DOM简单学习 *  功能:控制html文档的内容 *  代码:获取页面标签(元素)对象:Element *  document.getElementById("id值"):通 ...