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代码写入到项目中

钉钉报警

目录
相关文章
|
JavaScript 前端开发 持续交付
Prettier 高级应用:集成 CI/CD 流水线与插件开发
【10月更文挑战第18天】Prettier 是一款流行的代码格式化工具,它能够自动将代码格式化成一致的风格,从而提高代码的可读性和维护性。对于希望进一步发挥 Prettier 潜力的高级用户而言,将 Prettier 集成到持续集成(CI)和持续部署(CD)流程中,确保每次提交的代码都符合团队标准,是非常重要的。此外,通过开发自定义插件来支持更多语言或扩展 Prettier 的功能也是值得探索的方向。本文将详细介绍这两方面的内容。
298 2
|
6月前
|
XML jenkins 机器人
JMeter+Ant+Jenkins实现接口自动化测试持续集成
本文介绍了如何使用Ant生成JMeter接口测试报告,并集成到Jenkins中实现自动化测试。内容涵盖Ant与JMeter环境配置、build.xml文件设置、测试执行及报告生成,同时包括Jenkins插件安装、项目配置和钉钉消息通知的集成,帮助实现持续测试与结果可视化。
765 0
|
4月前
|
jenkins Java 持续交付
使用 Jenkins 和 Spring Cloud 自动化微服务部署
随着单体应用逐渐被微服务架构取代,企业对快速发布、可扩展性和高可用性的需求日益增长。Jenkins 作为领先的持续集成与部署工具,结合 Spring Cloud 提供的云原生解决方案,能够有效简化微服务的开发、测试与部署流程。本文介绍了如何通过 Jenkins 实现微服务的自动化构建与部署,并结合 Spring Cloud 的配置管理、服务发现等功能,打造高效、稳定的微服务交付流程。
552 0
使用 Jenkins 和 Spring Cloud 自动化微服务部署
|
运维 Devops 持续交付
自动化运维的魔法:打造高效DevOps流水线
【10月更文挑战第34天】在数字化时代的浪潮中,DevOps成为企业追求敏捷、高效和稳定的关键。本文将通过一个真实案例,展示如何构建一个高效的DevOps流水线,实现从代码提交到部署的全自动化流程。我们将探讨流水线设计的哲学、工具选择以及面临的挑战,并分享实际的代码示例和操作步骤,帮助读者理解自动化运维的精髓。
326 2
|
11月前
|
缓存 运维 监控
Anolis OS深度集成运维利器 阿里云操作系统控制台上线
阿里云在百万服务器运维领域的丰富经验打造。
Anolis OS深度集成运维利器 阿里云操作系统控制台上线
|
11月前
|
监控 jenkins Shell
jenkins结合gitlab实现CI(持续集成)
通过本文的介绍,我们详细了解了如何结合Jenkins和GitLab实现持续集成。从环境准备、插件配置到Pipeline任务创建和CI流程监控,每一步都提供了详细的操作步骤和示例代码。希望本文能帮助开发者快速搭建起高效的CI系统,提高项目开发效率和代码质量。
996 9
|
11月前
|
监控 jenkins 测试技术
Ansible与Jenkins:自动化工具的对比
Ansible和Jenkins是自动化领域的两大巨头。Ansible专注于配置管理和任务自动化,采用无代理架构,使用YAML定义配置,具有幂等性和可扩展性。Jenkins则擅长持续集成和持续交付(CI/CD),支持丰富的插件生态系统,适用于自动化构建、测试和部署。两者各有优势,Ansible适合配置管理与大规模部署,Jenkins则在CI/CD方面表现出色。结合使用可创建更强大的自动化工作流,提升团队生产力和软件质量。选择工具时应根据具体需求决定。
|
12月前
|
Java jenkins 持续交付
Jenkins集成Maven
通过以上步骤,可以在Jenkins中成功集成Maven,实现自动化构建和部署。通过定时构建、SCM轮询等方式,可以确保代码库中的最新变更能够及时构建和测试,提高开发效率和代码质量。这种集成方式在实际项目中具有广泛的应用前景,能够显著提升团队的协作效率。
329 8
|
运维 监控 Devops
自动化运维实践:打造高效的DevOps流水线
在软件开发的快节奏中,自动化运维成为提升效率、确保质量的关键。本文将引导你理解自动化运维的价值,通过实际案例分享如何构建一个高效、可靠的DevOps流水线。我们将从持续集成(CI)开始,逐步深入到持续部署(CD),并展示代码示例来具体说明。准备好让你的运维工作飞跃式进步了吗?让我们开始吧!
|
运维 jenkins Java
Jenkins 自动化局域网管控软件构建与部署流程
在企业局域网管理中,Jenkins 作为自动化工具,通过配置源码管理、构建及部署步骤,实现了高效、稳定的软件开发与部署流程,显著提升局域网管控软件的开发与运维效率。
247 5

推荐镜像

更多