提交代码触发Jenkins流水线更新

news/2024/5/20 14:45:26

提交哪个构建哪个

或者

某个指定分支提交才构建

jenkins自己的restful接口在权限认证上比较麻烦,所以我选择了Jenkins的插件generic-webhook-trigger

使用下来感觉没有选错

1. 安装jenkins插件generic-webhook-trigger

在系统配置中去安装插件。

2. 在Jenkinsfile中配置

node {properties([pipelineTriggers([[$class: 'GenericTrigger',genericVariables: [[key: 'ref', value: '$.ref'],[key: 'before',value: '$.before',expressionType: 'JSONPath', //Optional, defaults to JSONPathregexpFilter: '', //Optional, defaults to empty stringdefaultValue: '' //Optional, defaults to empty string]],genericRequestVariables: [[key: 'requestWithNumber', regexpFilter: '[^0-9]'],[key: 'requestWithString', regexpFilter: '']],genericHeaderVariables: [[key: 'headerWithNumber', regexpFilter: '[^0-9]'],[key: 'headerWithString', regexpFilter: '']],causeString: 'Triggered on $ref',token: 'abc123',tokenCredentialId: '',printContributedVariables: true,printPostContent: true,silentResponse: false,// 这里只更新masterregexpFilterText: '$ref'+'/'+'master',regexpFilterExpression: 'refs/heads/master/'+ env.BRANCH_NAME]])])stage("build") {// other stage}
}

这里解释一下

// 这里只更新master
regexpFilterText: '$ref'+'/'+'master',
regexpFilterExpression: 'refs/heads/master/'+ env.BRANCH_NAME

$ref 的值为git更新后推送过来的分支,如果是master分支,则会是refs/heads/master,获取到对应值后,会与regexpFilterExpression进行正则比对。如果是每个分支提交对应构建对应的分支可以这么写:

// 这里只更新master
regexpFilterText: '$ref',
regexpFilterExpression: 'refs/heads/'+ env.BRANCH_NAME

如果只在某个分支提交时进行构建,则使用第一种我的写法,当提交分支与当前分支一致都为master才进行构建。

3. 将项目通过Jenkinsfile进行构建。

构建之后,就可以尝试用链接调用,验证是否生效

// jenkins地址
http://[xxx.xxx.xxx]//generic-webhook-trigger/invoke?token=abc123

通过浏览器或者postman进行调用,返回结果如下:

{"jobs": {"test/master": {"regexpFilterExpression": "refs/heads/master",// 这里显示true就是对应分支生效了。"triggered": true,"resolvedVariables": {"before": ""},"regexpFilterText": "refs/heads/master","id": 5337,"url": "queue/item/5337/"}},"message": "Triggered jobs."
}

4. 添加钩子到gitlab(用的什么代码管理工具就到哪里设置,这里使用gitlab)

image-20220907144837980

将刚才的地址放在url就可以。尝试提交代码,看是否生效。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

java 生成grpc调用service

1. 安装protoc 这里以mac为例: brew install automake brew install libtool brew install protobuf检查 protoc --version2. 下载protoc-(java/go/kotlin)插件 到这里下载对应系统的exe文件 https://repo.maven.apache.org/maven2/io/grpc/protoc-gen-grpc-java…

从言行合一到知行合一

本篇记录突然的随想,偶尔停留 2021年只有两种人在写博客,一种是试图建立受众并从中获利的人,另一种是只想写出想法、而没有任何目标的人。 这两种人的行为都非常好。选择做你喜欢的事,坚持下去,它们最终都可以对他人…