热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

版本管理之gitlab实践教程:基础篇(12)

这篇文章我们将会介绍一下如果使用gitlab和jenkins进行结合,通过api动态设定gitlab的webhook,实现每次向gitlab进行push操作的时候,jenkins的job会自动被

这篇文章我们将会介绍一下如果使用gitlab和jenkins进行结合,通过api动态设定gitlab的webhook,实现每次向gitlab进行push操作的时候,jenkins的job会自动被执行的效果。

试验版本
工具 版本
gitlab 10.4.2
jenkins 2.73.3

Jenkins设定

pipeline

创建一个jenkins的pipeline的job,job名称设定为:devops-pipeline-webhook。另外为了简单演示,具体的jenkinsfile设定如下:

node {
stage('build'){
echo 'build';
}

stage('test'){
echo 'test';
}

stage('deploy'){
echo 'deploy';
}
}

gitlab hook plugin

需要在jenkin上设定gitlab hook plugin,此plugin支持gitlab8及以后的版本。详细信息可以参看如下说明:
https://wiki.jenkins.io/display/JENKINS/Gitlab+Hook+Plugin

job设定

为了建立jenkins的job和gitlab的webhook之间的关联,所创建的jenkins的job只需要做如下设定即可:
选中 Trigger builds remotely (e.g, from scripts)
同时设定gitlab调用的token:此处设定为liumiao
这里写图片描述
而具体在gitlab设定的jenkins的URL则为:
http://192.168.163.154:32002/job/devops-pipeline-webhook/build?token=liumiao
另外如果此job如果是需要传入参数的类型,具体调用方式不是/build而换成/buildWithParameters即可

gitlab的webhook

gitlab下有system hook和web hook,web hook的增删改查在项目的setting/Integrations下进行操作,当然也可以通过上篇文章中所提到的api来实现。

[root@devops ~]# curl --request POST --header "PRIVATE-TOKEN: sqiSUhn3tHYXe8nSGRDi" --data "id=1&url=http://192.168.163.154:32002/job/devops-pipeline-webhook/build?token=liumiao&enable_ssl_verification=false" "http://127.0.0.1:32001/api/v4/projects/1/hooks" |jq .
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 511 100 396 100 115 12807 3719 --:--:-- --:--:-- --:--:-- 13200
{
"id": 4,
"url": "http://192.168.163.154:32002/job/devops-pipeline-webhook/build?token=liumiao",
"created_at": "2018-02-04T04:24:50.499Z",
"push_events": true,
"tag_push_events": false,
"repository_update_events": false,
"enable_ssl_verification": false,
"project_id": 1,
"issues_events": false,
"merge_requests_events": false,
"note_events": false,
"pipeline_events": false,
"wiki_page_events": false,
"job_events": false
}
[root@devops ~]#

创建之后可以通过gitlab进行结果确认
这里写图片描述

git push

做完以上设定,只要向此gitlab的project进行push操作,就会出发jenkins的job,让我们来向此project添加一个hello文件并进行push。

[root@devops ~]# git clone http://127.0.0.1:32001/root/demodefaultprj.git
Cloning into 'demodefaultprj'...
remote: Counting objects: 5, done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 5 (delta 0), reused 0 (delta 0)
Unpacking objects: 100% (5/5), done.
[root@devops ~]# cd demodefaultprj/
[root@devops demodefaultprj]# touch hello
[root@devops demodefaultprj]# git add hello
[root@devops demodefaultprj]# git commit -m "for push test"
[master f8af63b] for push test
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 hello
[root@devops demodefaultprj]# git push -u origin master
Username for 'http://127.0.0.1:32001': root
Password for 'http://root@127.0.0.1:32001':
Counting objects: 4, done.
Writing objects: 100% (3/3), 237 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To http://127.0.0.1:32001/root/demodefaultprj.git
e07b882..f8af63b master -> master
Branch master set up to track remote branch master from origin.
[root@devops demodefaultprj]#

jenkins结果确认

这里写图片描述
可以看到已经被自动触发执行了


推荐阅读
  • 本文介绍了如何使用PHP向系统日历中添加事件的方法,通过使用PHP技术可以实现自动添加事件的功能,从而实现全局通知系统和迅速记录工具的自动化。同时还提到了系统exchange自带的日历具有同步感的特点,以及使用web技术实现自动添加事件的优势。 ... [详细]
  • WebSocket与Socket.io的理解
    WebSocketprotocol是HTML5一种新的协议。它的最大特点就是,服务器可以主动向客户端推送信息,客户端也可以主动向服务器发送信息,是真正的双向平等对话,属于服务器推送 ... [详细]
  • 20211101CleverTap参与度和分析工具功能平台学习/实践
    1.应用场景主要用于学习CleverTap的使用,该平台主要用于客户保留与参与平台.为客户提供价值.这里接触到的原因,是目前公司用到该平台的服务~2.学习操作 ... [详细]
  • 31.项目部署
    目录1一些概念1.1项目部署1.2WSGI1.3uWSGI1.4Nginx2安装环境与迁移项目2.1项目内容2.2项目配置2.2.1DEBUG2.2.2STAT ... [详细]
  • 如何查询zone下的表的信息
    本文介绍了如何通过TcaplusDB知识库查询zone下的表的信息。包括请求地址、GET请求参数说明、返回参数说明等内容。通过curl方法发起请求,并提供了请求示例。 ... [详细]
  • 从U ... [详细]
  • 在本教程中,我们将看到如何使用FLASK制作第一个用于机器学习模型的RESTAPI。我们将从创建机器学习模型开始。然后,我们将看到使用Flask创建AP ... [详细]
  • Django + Ansible 主机管理(有源码)
    本文给大家介绍如何利用DjangoAnsible进行Web项目管理。Django介绍一个可以使Web开发工作愉快并且高效的Web开发框架,能够以最小的代价构建和维护高 ... [详细]
  • jenkins 搭建配置
    jenkins部署安装方法一: 下载jenkinswar包  wgethttp:mirrors.jenkins.iowar-stablelatestjenkins.war运行jen ... [详细]
  • 文章目录UnsafeDeserialization反序列化漏洞背景认识Java序列化与反序列化用途应用场景Java中的API实现:序列化基础类型参数序列化对象漏洞是怎么来的呢?解决 ... [详细]
  • 执行jenkins最简单的方法就是通过内置的Jetty的servlet容器。您可以执行jenkins是这样的:$java-jarjenkins.war当然,你可能想jenkins的 ... [详细]
  • python项目python完整项目
    广告关闭腾讯云双11爆品提前享,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高满返5000元ÿ ... [详细]
  • #直接下载jar文件后java-jargerrit-2.14.1.warinit-doptgerrit#安装复制插件unzipgerrit-2.14.1.warssh ... [详细]
  • 编者注:疲于应付各种漏洞影响,欢迎使用gitee.com漏洞预警GitlabWikiAPI远程代码执 ... [详细]
  • importosimporttimeimportrequestsasrest_clientfromurllib.parseimporturljoinfromfastapiimpor ... [详细]
author-avatar
老鼠爱上毛ee
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有