门禁-jenkins的构建状态同步到gitlab提交流水线

API接口文档

https://docs.gitlab.cn/jh/api/commits.html
在这里插入图片描述

配置pipline流水线

生成http请求代码:
使用HttpRequest插件生成
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

- sharelibs内容

//这是share libs里的
package devopsdef httpReq(reqType, reqUrl, reqBody, accessToken){def gitServer = "https://jihulab.com/api/v4"result = httpRequest consoleLogResponseBody: true, httpMode: 'POST',requestBody: reqBody,url: "${gitServer}/${reqUrl}",wrapAsMultipart: false,customHeaders: [[maskValue: false, name: 'contentType', value: 'APPLICATION_JSON'],[maskValue: true, name: 'Authorization', value: "Bearer ${accessToken}"]]return result}def changeCommitStatus(projectId, status, commitSha, accessToken){commitApi = "projects/${projectId}/statuses/${commitSha}?state=${status}"respones = httpReq("POST", commitApi, '', accessToken)println respones}

- jenkinsfile内容

// 这是jenkinsfile里边的
@Library('jenkinslibs') _
def tools = new devops.tools()
def sonar = new devops.sonarQube()
def gitlab = new devops.gitlab()if ("${runOpts}" == "GitlabPush"){branch = branch - "refs/heads/"currentBuild.description = "Trigger by ${url} ${branch}"def status = "running"env.accessToken = env.accessTokengitlab.changeCommitStatus(projectId, status, commitSha, env.accessToken)
}pipeline {agent {label {label 'vm-node'retries 10}}environment {CodePath = "${WORKSPACE}/code"}stages {stage('download code') { steps {checkout(scmGit(branches: [[name: '*/master']], extensions: [cleanAfterCheckout(deleteUntrackedNestedRepositories: true), [$class: 'RelativeTargetDirectory',relativeTargetDir: '$WORKSPACE/code/${GIT_REPOSITORY_NAME}']], userRemoteConfigs: [[credentialsId: 'f58233b3-bdb3-4fd4-82d6-4cea03d75971',url: 'https://codeup.aliyun.com/64257bf308203590adcc93bf/QMUI-Android.git']]))}}stage('QA') { steps {dir("${CodePath}"){script{tools.printVar("sonar scanner! ${PATH}", 'red')//sonar.Scanner("${projectName}", "${projectName}", "${WORKSPACE}/code/gradle/wrapper")}}}}stage('Deploy') { steps {script{tools.printVar("ni hao shara library!", 'red')}}}}post {always {script{println("running")}}aborted {script{println("aborted")gitlab.changeCommitStatus(projectId, "aborted", commitSha, env.accessToken)}}success {script{println("success")gitlab.changeCommitStatus(projectId, "success", commitSha, env.accessToken)}}failure {script{println("failure")gitlab.changeCommitStatus(projectId, "failure", commitSha, env.accessToken)}}}}

jenkins中的配置

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

测试和验证
在这里插入图片描述
在这里插入图片描述
结论:可以再优化以下,作为merge请求的门禁。缺点是不好根据状态找到jenkins记录
文章中提到的accessToken获取方法见:https://blog.csdn.net/weixin_44014460/article/details/139195724

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/15851.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

有一个3x4的矩阵,要求用函数编写程序求出其中值最大的那个元素,以及其所在的行号和列号

常量和变量可以用作函数实参,同样数组元素也可以作函数实参,其用法与变量相同。数组名也可以作实参和形参,传递的是数组的起始地址。 用数组元素作函数实参: 由于实参可以是表达式,而数组元素可以是表达式的组…

2000 年至 2015 年中国(即水稻、小麦和玉米1km 网格)三种主要作物年收获面积的时空变化

摘要 可靠、连续的主要作物收获面积信息对于研究地表动态和制定影响农业生产、土地利用和可持续发展的政策至关重要。然而,中国目前还没有高分辨率的空间明确和时间连续的作物收获面积信息。全国范围内主要农作物收获面积的时空格局也鲜有研究。在本研究中&#xf…

2024年【熔化焊接与热切割】考试内容及熔化焊接与热切割考试报名

题库来源:安全生产模拟考试一点通公众号小程序 熔化焊接与热切割考试内容考前必练!安全生产模拟考试一点通每个月更新熔化焊接与热切割考试报名题目及答案!多做几遍,其实通过熔化焊接与热切割复审模拟考试很简单。 1、【单选题】…

SpringBoot【1】集成 Druid

SpringBoot 集成 Druid 前言创建项目修改 pom.xml 文件添加配置文件开发 java 代码启动类 - DruidApplication配置文件-propertiesDruidConfigPropertyDruidMonitorProperty 配置文件-configDruidConfig 控制层DruidController 运行验证Druid 的监控应用程序 前言 JDK版本&…

前端开发-添加公用的ts文件,并在Vue文件中引用

一般我们把页面要用的公用函数写在一个ts文件中 通过调用这个ts文件让我们可以在vue文件中使用函数 Eg:我们现在创建一个formRules.ts文件 然后在我们需要调用该函数体的vue文件中 import { required } from "/utils/formRules";有可能语法一开始会提示…

防火墙——域网络、专用网络、公用网络

在防火墙设置中,域网络、专用网络和公用网络是指计算机连接到网络时所处的不同环境。每种环境都有不同的安全级别和配置。 1、域网络(宽松) 域网络是指计算机加入了一个Windows域(Domain)环境,这通常在企业…

程序员的那些经典段子

哈喽,大家好,我是明智~ 本周咱们已经解决了在面试中经常碰到的OOM问题: 《美团一面,发生OOM了,程序还能继续运行吗?》 《美团一面:碰到过OOM吗?你是怎么处理的&#xff1…

白嫖的在线工具类宝藏网站清单,快点击进来收藏一波

简单整理了一下自己日常经常使用的10个免费工具网站,建议点赞关注收藏,快点分享给小伙伴们! 1.奶牛快传:用户体验更好的网盘工具。 https://cowtransfer.com/ 今年开始使用的一款网盘工具,和百度网盘类似,叫奶牛快传,如…

【设计模式】——装饰模式(包装器模式)

💻博主现有专栏: C51单片机(STC89C516),c语言,c,离散数学,算法设计与分析,数据结构,Python,Java基础,MySQL,linux&#xf…

数据结构--二叉搜索树

目录 二叉搜索树的概念 二叉树的实现 结点类 函数接口总览 实现二叉树 二叉搜索树的应用 K模型 KV模型 二叉搜索树的性能分析 二叉搜索树的概念 二叉搜索树(Binary Search Tree,简称BST)是一种特殊的二叉树,其具有以下几…

6818 android 修改开机 logo, 编译脚本分析

问题: 客户需要去掉 android5.1 的开机logo. 说明: 对于Android5.1 来说,uboot 与kernel 的logo 是一个。 过程: 其实对于开机logo 的修改很简单,直接参考厂家手册就可以了。 这是 android4.4 的开机logo 的修改&…

产品经理-需求收集(二)

1. 什么是需求 指在一定的时期中,一定场景中,无论是心理上还是生理上的,用户有着某种“需要”,这种“需要”用户自己不一定知道的,有了这种“需要”后用户就有做某件事情的动机并促使达到其某种目的,这也就…

FPGA实现多路并行dds

目录 基本原理 verilog代码 仿真结果​ 基本原理 多路并行dds,传统DDS的局限性在于输出频率有限。根据奈奎斯特采样定理,单路DDS的输出频率应小于系统时钟频率的一半。但是在很多地方,要使采样率保持一致,所以,为了…

【CTF Web】CTFShow web7 Writeup(SQL注入+PHP+进制转换)

web7 1 阿呆得到最高指示&#xff0c;如果还出问题&#xff0c;就卷铺盖滚蛋&#xff0c;阿呆心在流血。 解法 注意到&#xff1a; <!-- flag in id 1000 -->拦截很多种字符&#xff0c;连 select 也不给用了。 if(preg_match("/\|\"|or|\||\-|\\\|\/|\\*|\…

CSP俄罗斯方块(简单易懂)

开始将题目理解成了&#xff0c;开始的列应该是从输入图案的最左端开始计算&#xff0c;将前面所有的空列都删掉&#xff0c;代码如下&#xff1a; #include<bits/stdc.h> using namespace std; const int N 1e410; const int M 1e510; int a[20][20]; int b[5][5];int…

leedcode【203】. 移除链表元素——Java解法

Problem: 203. 移除链表元素 题目思路解题方法复杂度Code效果 题目 给你一个链表的头节点 head 和一个整数 val &#xff0c;请你删除链表中所有满足 Node.val val 的节点&#xff0c;并返回 新的头节点 。 示例 1&#xff1a; 输入&#xff1a;head [1,2,6,3,4,5,6], val…

OS复习笔记ch6-1

死锁的原理 定义 一组进程中&#xff0c;其中每个进程因等待事件而阻塞&#xff0c;且所等待的事件只能被这组进程中的另一阻塞进程激发称之为死锁。 举例如下 四个车辆希望紧迫的希望能很快通过&#xff0c;每辆车需要两个象限的资源&#xff0c;然而四个车都只得到一个象…

电子电器架构 - AUTOSAR软件架构介绍

电子电器架构 - AUTOSAR软件架构介绍 我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 屏蔽力是信息过载时代一个人的特殊竞争力,任何消耗你的人和事,多看一眼都是你的不对。非必要不费力证明自己…

Maven多环境打包配置

一、启动时指定环境配置文件 在启动springboot应用的jar包时&#xff0c;我们可以指定配置文件&#xff0c;通常把配置文件上传到linux服务器对应jar包的同级目录&#xff0c;或者统一的配置文件存放目录 java -jar your-app.jar --spring.config.location/opt/softs/applicat…

matlab 图像的中值滤波

目录 一、功能概述1、算法概述2、主要函数3、计算公式二、代码实现三、结果展示四、参考链接本文由CSDN点云侠翻译,放入付费专栏只为防不要脸的爬虫。专栏值钱的不是本文,切勿因本文而订阅。 一、功能概述 1、算法概述 中值滤波是图像处理中一种常用的非线性运算,用于减少…