热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

Jenkins流水线整合钉钉

前文Jenkins安装部署使用_南宫乘风的博客-CSDN博客Jenkins入门配置_南宫乘风的博客-CSDN博客Jenkins集成SonarQube_南宫乘风的博客-CSDN博客J

前文

Jenkins安装部署使用_南宫乘风的博客-CSDN博客

Jenkins入门配置_南宫乘风的博客-CSDN博客

Jenkins集成Sonar Qube_南宫乘风的博客-CSDN博客

Jenkins的流水线(Pipeline)


在程序部署成功后,可以通过钉钉的机器人及时向群众发送部署的最终结果通知



  • 安装插件



 

 钉钉内部创建群组并构建机器人


 

 

 最终或获取到Webhook信息

https://oapi.dingtalk.com/robot/send?access_token=kej4ehkj34gjhg34jh5bh5jb34hj53b4

系统配置添加钉钉通知

 任务中追加流水线配置

pipeline {
agent any
environment{
harborRepo = 'heianapp'
harborUser = 'heian99'
harborPasswd = 'NG+.mK4M-(s4CYX'
}
// 存放所有任务的合集
stages {
stage('拉取Git代码') {
steps {
echo '拉取Git代码'
checkout([$class: 'GitSCM', branches: [[name: '${tag}']], extensions: [], userRemoteConfigs: [[url: 'https://gitee.com/chengfeng99/java-demo.git']]])
}
}
stage('检测代码质量') {
steps {
echo '检测代码质量'
sh '/var/jenkins_home/sonar-scanner/bin/sonar-scanner -Dsonar.sources=./ -Dsonar.projectname=${JOB_NAME} -Dsonar.projectKey=${JOB_NAME} -Dsonar.java.binaries=target/ -Dsonar.login=19d0d6b885e18455d257d61da08776bd4e180c04'
}
}
stage('构建代码') {
steps {
echo '构建代码'
sh '/var/jenkins_home/maven/bin/mvn clean package -DskipTests'
}
}
stage('制作自定义镜像并发布Harbor') {
steps {
echo '制作自定义镜像并发布Harbor'
sh '''
cp ./target/*.jar ./docker/demo.jar
cd ./docker
docker build -t ${JOB_NAME}:${BUILD_NUMBER} . '''

sh '''docker login -u ${harborUser} -p ${harborPasswd}
docker tag ${JOB_NAME}:${BUILD_NUMBER} ${harborUser}/${harborRepo}:${JOB_NAME}_${BUILD_NUMBER}
docker push ${harborUser}/${harborRepo}:${JOB_NAME}_${BUILD_NUMBER}'''
}
}
stage('基于Harbor部署工程') {
steps {
echo '基于Harbor部署工程'
sshPublisher(publishers: [sshPublisherDesc(configName: 'node-Linux32', transfers: [sshTransfer(cleanRemote: false, excludes: '', execCommand: '''cd /opt/java/
echo "测试成功" >> log.txt
date >> log.txt''', execTimeout: 120000, flatten: false, makeEmptyDirs: false, noDefaultExcludes: false, patternSeparator: '[, ]+', remoteDirectory: '', remoteDirectorySDF: false, removePrefix: '', sourceFiles: 'target/*.jar,docker/*')], usePromotionTimestamp: false, useWorkspaceInPromotion: false, verbose: false)])
}
}
}
post {
success {
dingtalk (
robot: 'Jenkins-DingDing',
type:'MARKDOWN',
title: "success: ${JOB_NAME}",
text: ["- 成功构建:${JOB_NAME}项目!\n- 版本:${tag}\n- 持续时间:${currentBuild.durationString}\n- 任务:#${JOB_NAME}"]
)
}
failure {
dingtalk (
robot: 'Jenkins-DingDing',
type:'MARKDOWN',
title: "fail: ${JOB_NAME}",
text: ["- 失败构建:${JOB_NAME}项目!\n- 版本:${tag}\n- 持续时间:${currentBuild.durationString}\n- 任务:#${JOB_NAME}"]
)
}
}
}

查看效果

 

 

人生得意须尽欢,莫使金樽空对月。 天生我材必有用,千金散尽还复来。



推荐阅读
  • 搭建Jenkins、Ant与TestNG集成环境
    本文详细介绍了如何在Ubuntu 16.04系统上配置Jenkins、Ant和TestNG的集成开发环境,涵盖从安装到配置的具体步骤,并提供了创建Windows Slave节点及项目构建的指南。 ... [详细]
  • 优化Jenkins首次启动速度
    本文详细描述了在启动Jenkins后遇到的长时间加载问题,并提供了一种通过修改更新中心配置文件来显著提升启动速度的有效解决方案。 ... [详细]
  • 持续集成概述与实践指南
    本文探讨了持续集成(CI)的基本概念、目的及其在现代软件开发中的应用。通过实例分析,帮助读者理解如何有效实施持续集成,提高软件开发效率。 ... [详细]
  • SonarQube自动化代码扫描的安装与集成实践
    SonarQube是一款强大的开源代码质量管理平台,支持多种编程语言。通过集成不同的开发工具和CI/CD流程,SonarQube能够提供全面的静态代码分析服务,帮助开发者早期发现并修复代码缺陷,从而提高软件质量和安全性。 ... [详细]
  • Page Object 是一种设计模式,用于实现 Selenium 的最佳实践,它通过将 Web 应用的页面展示逻辑与测试代码分离来简化测试过程。采用 Page Object 模式的主要目的是为了提高测试代码的可维护性,减少重复代码,使测试更加结构化。 ... [详细]
  • 软件项目管理实践——Jenkins持续集成与Maven、GitHub的应用
    本文详细介绍了如何利用Jenkins实现持续集成,以及Maven和GitHub在项目开发中的具体应用。包括环境搭建、工具安装、项目创建及代码管理等关键步骤。 ... [详细]
  • 本文档详细规划了从基础到高级的软件测试学习路径,包括但不限于测试基础、Linux和数据库、功能测试、Python编程、接口测试、性能测试、金融项目实战、UI自动化测试等内容,旨在为初学者和进阶者提供全面的学习指导。 ... [详细]
  • 实践指南:利用Jenkins与JMeter实现自动化测试报告通知
    本文详细介绍了如何结合Jenkins和JMeter工具,通过自定义脚本向用户发送测试报告的通知。这不仅提高了开发团队的工作效率,也确保了信息的及时传递。 ... [详细]
  • 提升接口测试效率的关键:用例与工具的综合应用
    本文将探讨如何通过有效的接口测试用例设计和工具选择,显著提高接口测试的效率和质量。 ... [详细]
  • 软件测试行业深度解析:迈向高薪的必经之路
    本文深入探讨了软件测试行业的发展现状及未来趋势,旨在帮助有志于在该领域取得高薪的技术人员明确职业方向和发展路径。 ... [详细]
  • Learn the steps to transfer Jenkins jobs into subfolders for better organization and management. ... [详细]
  • Jenkins API当前未直接提供获取任务构建队列长度的功能,因此需要通过解析HTML页面来间接实现这一需求。 ... [详细]
  • 本文介绍了多种常用的开发工具,包括PyCharm、Appium、Jenkins、Postman、Fiddler、Charles、Airtest、Android Studio、Navicat和Typora,并提供了它们的基本使用方法。 ... [详细]
  • 本文介绍了在 CentOS 7 系统中如何查看所有活动进程及其运行时间。通过使用 `netstat` 和 `ps` 命令,您可以轻松获取进程的详细信息,包括启动时间、用户、终端和命令等。 ... [详细]
  • 解决Jenkins编译过程中ERROR: Failed to Parse POMs的问题
    在使用Jenkins进行自动化构建时,有时会遇到“ERROR: Failed to parse POMs”的错误。本文将详细分析该问题的原因,并提供有效的解决方案。 ... [详细]
author-avatar
-cy-小衣橱
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有