创建一个流水线job,这只是个简单的流水线发布教程,写的不好~
 
创建好后进入改job设置
你可以在参数化构建中加入这些需要提前设定的参数,以自己的Jenkinsfile需要做添加
 
 
然后我们看下Jenkins-a的内容
node {
    def JAVA_HOME = tool 'jdk'                                 #定义个局部变量,设置jdk环境
    env.PATH = "${JAVA_HOME}/bin:${env.PATH}"
    
   stage('拉取代码') {
      #检出代码的命令可以用上面的生成器自己生成
      checkout([$class: 'SubversionSCM', additionalCredentials: [], excludedCommitMessages: '', excludedRegions: '', excludedRevprop: '', excludedUsers: '', filterChangelog: false, ignoreDirPropChanges: false, includedRegions: '', locations: [[cancelProcessOnExternalsFail: true, credentialsId: '', depthOption: 'infinity', ignoreExternalsOption: true, local: '.', remote: 'svn.jsc.com']], quietOperation: true, workspaceUpdater: [$class: 'UpdateUpdater']])
    }
   
   stage('构建') {
        if ("${Status}"== 'Deploy') {
            sh "/usr/local/maven/bin/mvn clean install -pl $module -am -U -Dmaven.test.skip=true"
            echo '需要构建'
        } else {
            echo '不需要构建'
        }
    }
    
    def web_name = "${JOB_NAME}"
   
    stage('Status判断') {
        if ("${Status}"== 'Deploy') {
            jar_file = sh (
                script: 'find $WORKSPACE/$module/target -name *.war',
                returnStdout: true
            ).trim()
            sh 'mkdir -p $WORKSPACE/bak/$BUILD_ID'
            sh "(cp -a '${jar_file}' $WORKSPACE/bak/$BUILD_ID)"
            echo '部署'
        } else {
            jar_file = sh (
                script: 'find $WORKSPACE/bak/$Rollback_tag -name *.war',
                returnStdout: true
            ).trim()
            echo '回滚'
        }
    }
 
    war_file_name = sh (
        script: "(basename '${jar_file}')",
        returnStdout: true
    ).trim()
    
    config_file_name = sh (
        script: 'basename ${config_file}',
        returnStdout: true
    ).trim()
    
    old_BUILD_NUMBER = sh (
        script: "(awk 'BEGIN{print '${BUILD_NUMBER}' - 1 }')",
        returnStdout: true
    ).trim()
   
   stage('打印部署参数') {
        #这些参数都后面ansible发布需要用的,不一定适合你
        echo "jar_file: ${jar_file}"
        echo "war_file_name: ${war_file_name}"
        echo "config_file: ${config_file}"
        echo "config_file_name: ${config_file_name}"
        echo "job_name: ${web_name}"
        echo "old_BUILD_NUMBER: ${old_BUILD_NUMBER}"
    }
   
   stage('部署') {
        #这里你可以用ansible部署到机器上,或者用其他什么的,下面只做个示范照抄无效
        sh "/usr/bin/ansible-playbook /etc/ansible/playbook/deploy_test.yaml -f 5 -e jar_file=${jar_file} -e config_file_name=${config_file_name} -e host=${host}  "
    }
}
最后的效果
 
 
 
 

jenkisn Pipeline的流水线发布,自动化部署的更多相关文章

  1. Jenkins + Pipeline 构建流水线发布

      Jenkins + Pipeline 构建流水线发布 利用Jenkins的Pipeline配置发布流水线 参考: https://jenkins.io/doc/pipeline/tour/depl ...

  2. 大厂是如何用DevCloud流水线实现自动化部署Web应用的?

    DevUI是一支兼具设计视角和工程视角的团队,服务于华为云DevCloud平台和华为内部数个中后台系统,服务于设计师和前端工程师. 官方网站:devui.design Ng组件库:ng-devui(欢 ...

  3. Kubernetes笔记(三):Gitlab+Jenkins Pipeline+Docker+k8s+Helm自动化部署实践(干货分享!)

    通过前面两篇文章,我们已经有了一个"嗷嗷待哺"的K8s集群环境,也对相关的概念与组件有了一个基本了解(前期对概念有个印象即可,因为只有实践了才能对其有深入理解,所谓"纸上 ...

  4. [转]利用Jenkins的Pipeline实现集群自动化部署SpringBoot项目

    环境准备 Git: 安装部署使用略. Jenkins: 2.46.2版本安装部署略(修改jenkins执行用户为root,省得配置权限) JDK: 安装部署略. Maven: 安装部署略. 服务器免密 ...

  5. .Net Core自动化部署系列(二):使用Jenkins打造镜像发布流水线

    一.简介 之前写过一篇关于Jenkins搭配GitLab实现.net core项目自动发布到IIS的博文,比较简单哈,只是个Demo.本篇我们将会使用Jenkins搭配GitLab实现镜像的自动打包和 ...

  6. 项目案例之Pipeline流水线发布JAVA项目(三)

    项目案例之Pipeline流水线发布JAVA项目(三) 链接:https://pan.baidu.com/s/1NZZbocZuNwtQS0eGkkglXQ 提取码:z7gj 复制这段内容后打开百度网 ...

  7. 持续集成+自动化部署[代码流水线管理及Jenkins和gitlab集成]

    转载:https://www.abcdocker.com/abcdocker/2065 一.代码流水线管理 Pipeline名词顾名思义就是流水线的意思,因为公司可能会有很多项目.如果使用jenkin ...

  8. 项目案例之Pipeline流水线及流水线发布PHP项目(二)

    项目案例之Pipeline流水线及流水线发布PHP项目(二) 链接:https://pan.baidu.com/s/1NZZbocZuNwtQS0eGkkglXQ 提取码:z7gj 复制这段内容后打开 ...

  9. 持续集成与自动化部署---代码流水线管理及Jenkins和gitlab集成

    1.代码流水线管理 Pipeline名词顾名思义就是流水线的意思,因为公司可能会有很多项目.如果使用jenkins构建完成后,开发构建项目需要一项一项点击,比较麻烦.所以出现pipeline名词. 代 ...

随机推荐

  1. poj 1458 Common Subsequence(dp)

    Common Subsequence Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 46630   Accepted: 19 ...

  2. 二,kubernetes集群的安装初始化

    目录 部署 集群架构示意图 部署环境 kubernetes集群部署步骤 基础环境 基础配置 安装基础组件 配置yum源 安装组件 初始化 master 设置docker和kubelet为自启动(nod ...

  3. 在 Android 中实现 Redux 的一点经验

    简评: Redux 是一个用于应用程序状态管理的开源JavaScript库,其核心是通过可管理和控制的状态来描述一个系统.这意味着其思想其实是可以应用于任何类型应用的开发的,包括移动应用. Redux ...

  4. Linux双网口配置时重复配置DEFROUTE和GATEWAY

    配置一台机器时,沿袭了原有网口配置,修改网口名,把em1全部修改改为eth0 mv ifcfg-em1 ifcfg-eth0 mv ifcfg-em2 ifcfg-eth1 改完以后,机器变得不稳定, ...

  5. HDU - 6583 Typewriter (后缀自动机+dp)

    题目链接 题意:你要打印一段字符串,往尾部添加一个字符需要花费p元,复制一段字符到尾部需要花费q元,求打印完全部字符的最小花费. 一开始想的贪心,后来发现忘了考虑p<q的情况了,还纳闷怎么不对. ...

  6. sublime text 前端插件安装

    Package Control安装 打开sublime编辑器,ctrl + ` 打开安装PackageControl界面: sublime text3: import urllib.request,o ...

  7. jdk1.8环境变量配置

    JAVA_HOME=/usr/java/jdk1.8.0_45PATH=$JAVA_HOME/bin:$PATHCLASSPATH=.:$JAVA_HOME/jre/lib/ext:$JAVA_HOM ...

  8. 微信里关闭窗口 js

    需要在微信中关闭页面窗口,不过window.close()不管用,问过群里才知道微信有自带的方法能关闭窗口,记录一下(这个只针对微信有效哦): WeixinJSBridge.call('closeWi ...

  9. grunt-contrib-imagemin 图像压缩

    grunt-contrib-imagemin:图像压缩 安装插件:npm install grunt-contrib-imagemin --save-dev 参数 optimizationLevel( ...

  10. BZOJ 3940 Censoring ( Trie 图 )

    题目链接 题意 : 中文题.点链接 分析 : 直接建 Trie 图.在每一个串的末尾节点记录其整串长度.方便删串操作 然后对于问询串.由于可能有删串操作 所以在跑 Trie 图的过程当中需要拿个栈记录 ...