Jenkins集成pipline流水线实现自动化上线(十五)

简介: 1.老项目改造实现pipline项目自动上线1.1.通过jenkins获取流水线语法1.1.1.获取从gitlab上拉取项目的语法拉取gitlab上的代码可以通过jenkins获取流水线语法最后粘贴到脚本中点击配置—高级项目选项—流水线—流水线语法

1.老项目改造实现pipline项目自动上线

1.1.通过jenkins获取流水线语法

1.1.1.获取从gitlab上拉取项目的语法

拉取gitlab上的代码可以通过jenkins获取流水线语法最后粘贴到脚本中

点击配置—高级项目选项—流水线—流水线语法

配置拉取代码的信息

点击生成流水线脚本

1.1.2.获取钉钉报警语法

1.2.使用git parameters参数构建

参数化构建使用blue ocean会报错,会提示不支持,但是不影响构建

2.编写pipeline脚本

pipeline{
  agent any
  stages {  
    stage('获取代码') {
      steps {
        checkout([$class: 'GitSCM', branches: [[name: '${git_version}']], doGenerateSubmoduleConfigurations: false, extensions: [], submoduleCfg: [], userRemoteConfigs: [[credentialsId: '9847113e-e313-4dc6-9302-dc4dec14804b', url: 'git@gitlab.jiangxl.com:root/monitor.git']]])
      }
    }
    stage('质量扫描'){
      steps {
          sh '/usr/local/sonar-scanner-4.0.0.1744-linux/bin/sonar-scanner -Dsonar.projectKey=${JOB_NAME} -Dsonar.sources=.'
      }
    }
    stage('编译代码'){
      steps {
        echo "build code ok"
        //sh 'mvn package'
      }
    }
    stage('部署代码'){
      steps {
        sh 'sh -x /script/monitor_deploy_tag.sh'
      }
    }
  }
}

添加一个Git parameters参数化构建

3.将代码填写到项目中

4.构建选择标签即可

每一步都可以看到日志

5.使用pipeline语法中的parameters语法构建

利用pipeline语法中的parameters语法构建的话,需要将之前添加的git parameters参数删除,并且使用blue ocean去构建

5.1.脚本编写

pipeline{
  agent any
  parameters {
        string(name: 'git_version', defaultValue: 'v1.0', description: '输入tag版本')
    }
  stages {  //一个大的任务合集  (部署代码)
    stage('获取代码') {
      steps {
        checkout([$class: 'GitSCM', branches: [[name: '${git_version}']], doGenerateSubmoduleConfigurations: false, extensions: [], submoduleCfg: [], userRemoteConfigs: [[credentialsId: '9847113e-e313-4dc6-9302-dc4dec14804b', url: 'git@gitlab.jiangxl.com:root/monitor.git']]])
      }
    }
    stage('质量扫描'){
      steps {
          sh '/usr/local/sonar-scanner-4.0.0.1744-linux/bin/sonar-scanner -Dsonar.projectKey=${JOB_NAME} -Dsonar.sources=.'
      }
    }
    stage('编译代码'){
      steps {
        echo "build code ok"
        //sh 'mvn package'
      }
    }
    stage('部署代码'){
      steps {
        sh 'sh -x /script/monitor_deploy_tag.sh'
      }
    }
  }
}

5.2.将代码粘贴到项目中

5.3.利用blue ocean去构建

普通构建也可以的,建议使用blue ocean去构建

打开blue ocean—点击运行—填写版本即可

运行中,每一个阶段都看得清清楚楚,还会有日志输出

部署成功

5.4.项目构建后显示sonarqube图标

我们在构建过程中使用到了sonarqube,但是我们也希望能看到sonarqube的图标并且点击图标即可跳转至sonarqube

在sonarqube质量检测目录前加上withsonarqubeenv一行即可,括号中的值要与系统设置sonarqube服务端的名称
withSonarQubeEnv('SonarQube') {
    sh '/usr/local/sonar-scanner-4.0.0.1744-linux/bin/sonar-scanner -Dsonar.projectKey=${JOB_NAME} -Dsonar.sources=.'
}
括号中的值也就是下图中的值,sonarqube服务端的名称

完整脚本

pipeline{
  agent any
  parameters {
        string(name: 'git_version', defaultValue: 'v1.0', description: '输入tag版本')
    }
  stages {  //一个大的任务合集  (部署代码)
    stage('获取代码') {
      steps {
        checkout([$class: 'GitSCM', branches: [[name: '${git_version}']], doGenerateSubmoduleConfigurations: false, extensions: [], submoduleCfg: [], userRemoteConfigs: [[credentialsId: '9847113e-e313-4dc6-9302-dc4dec14804b', url: 'git@gitlab.jiangxl.com:root/monitor.git']]])
      }
    }
    stage('质量扫描'){
      steps {
        withSonarQubeEnv('sonarqube') {       #主要加了这里
          sh '/usr/local/sonar-scanner-4.0.0.1744-linux/bin/sonar-scanner -Dsonar.projectKey=${JOB_NAME} -Dsonar.sources=.'
        }
      }
    }
    stage('编译代码'){
      steps {
        echo "build code ok"
        //sh 'mvn package'
      }
    }
    stage('部署代码'){
      steps {
        sh 'sh -x /script/monitor_deploy_tag.sh'
      }
    }
  }
}

构建成功后查看是有sonarqube图标

5.5.支持钉钉短信报警

首先获取到钉钉token值
https://oapi.dingtalk.com/robot/send?access_token=01a9beb62a838673d7c461a4ecc5e70c11b45c2ed46d67f6cfc08dcceef891e3

本次钉钉报警只增加这些即可,将token值换掉
post {  //stages所有任务执行后触发post
        failure {   //构建失败通知
            dingTalk accessToken: '01a9beb62a838673d7c461a4ecc5e70c11b45c2ed46d67f6cfc08dcceef891e3', imageUrl: '', jenkinsUrl: 'http://192.168.81.220:8080', message: '部署失败', notifyPeople: ''
        } 
        success {   //构建成功通知
            dingTalk accessToken: '01a9beb62a838673d7c461a4ecc5e70c11b45c2ed46d67f6cfc08dcceef891e3', imageUrl: '', jenkinsUrl: 'http://192.168.81.220:8080', message: '部署成功', notifyPeople: ''
        }
}

完整脚本

pipeline{
  agent any
  parameters {
        string(name: 'git_version', defaultValue: 'v1.0', description: '输入tag版本')
    }
  stages {  //一个大的任务合集  (部署代码)
    stage('获取代码') {
      steps {
        checkout([$class: 'GitSCM', branches: [[name: '${git_version}']], doGenerateSubmoduleConfigurations: false, extensions: [], submoduleCfg: [], userRemoteConfigs: [[credentialsId: '9847113e-e313-4dc6-9302-dc4dec14804b', url: 'git@gitlab.jiangxl.com:root/monitor.git']]])
      }
    }
    stage('质量扫描'){
      steps {
        withSonarQubeEnv('sonarqube') {
          sh '/usr/local/sonar-scanner-4.0.0.1744-linux/bin/sonar-scanner -Dsonar.projectKey=${JOB_NAME} -Dsonar.sources=.'
        }
      }
    }
    stage('编译代码'){
      steps {
        echo "build code ok"
        //sh 'mvn package'
      }
    }
    stage('部署代码'){
      steps {
        sh 'sh -x /script/monitor_deploy_tag.sh'
      }
    }
  }
  post {  //stages所有任务执行后触发post
        failure {   //构建失败通知
            dingTalk accessToken: '01a9beb62a838673d7c461a4ecc5e70c11b45c2ed46d67f6cfc08dcceef891e3', imageUrl: '', jenkinsUrl: 'http://192.168.81.220:8080', message: '部署失败', notifyPeople: ''
        } 
        success {   //构建成功通知
            dingTalk accessToken: '01a9beb62a838673d7c461a4ecc5e70c11b45c2ed46d67f6cfc08dcceef891e3', imageUrl: '', jenkinsUrl: 'http://192.168.81.220:8080', message: '部署成功', notifyPeople: ''
        }
    } 
}

将pipeline代码写入到项目中

钉钉报警

目录
相关文章
|
3月前
|
jenkins 持续交付 API
enkins学习笔记之十一:优化Gitlab提交流水线
enkins学习笔记之十一:优化Gitlab提交流水线
enkins学习笔记之十一:优化Gitlab提交流水线
|
3月前
|
敏捷开发 测试技术 持续交付
阿里云云效产品使用合集之流水线构建出现问题,连接不到nuget,该如何处理
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
3月前
|
jenkins Java 持续交付
自动化魔法:用Jenkins打造Java项目的持续部署流水线
【8月更文挑战第13天】在软件开发中,自动化部署是提高效率与减少错误的关键。Jenkins作为一款强大的持续集成工具,支持Java项目的自动化构建、测试与部署。通过配置Jenkins及其丰富的插件生态(如Git和Maven插件),可实现从代码提交到上线的全自动化流程。此流程包括从GitHub自动拉取代码、使用Maven构建项目,并通过如`mvn clean install`命令执行构建,最后利用插件如“Publish Over SSH”将制品部署至远程服务器。此外,还可配置邮件通知等后处理动作确保发布的稳定可靠。借助Jenkins,开发者能显著加速软件交付周期,同时减少手动操作带来的风险。
149 0
|
5月前
|
敏捷开发 缓存 前端开发
阿里云云效产品使用问题之流水线构建前端项目比较慢。该如何优化
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
5月前
|
前端开发 测试技术 API
阿里云云效产品使用问题之在流水线的构建任务中,如何安装并运行Jest
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
阿里云云效产品使用问题之在流水线的构建任务中,如何安装并运行Jest
|
4月前
|
Kubernetes 安全 Java
阿里云云效产品使用合集之流水线的运行机制如何在构建机器上获取指定文件夹下的命令
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
5月前
|
缓存 运维 Kubernetes
阿里云云效操作报错合集之有几个老项目流水线,部署过程一直是部署中不结束,该怎么办
本合集将整理呈现用户在使用过程中遇到的报错及其对应的解决办法,包括但不限于账户权限设置错误、项目配置不正确、代码提交冲突、构建任务执行失败、测试环境异常、需求流转阻塞等问题。阿里云云效是一站式企业级研发协同和DevOps平台,为企业提供从需求规划、开发、测试、发布到运维、运营的全流程端到端服务和工具支撑,致力于提升企业的研发效能和创新能力。
|
Cloud Native jenkins 测试技术
Jenkins自动化:简化部署流程
Jenkins自动化:简化部署流程
118 0
|
Kubernetes jenkins 持续交付
jenkins结合k8s构建流水线如何提升运行性能和构建效率
jenkins结合k8s构建流水线如何提升运行性能和构建效率
|
6月前
|
jenkins 持续交付
Jenkins构建简单流水线
Jenkins构建简单流水线
55 0