zoukankan      html  css  js  c++  java
  • Jenkins配置Gitlab自动触发构建

    Jenkins配置Gitlab自动触发构建

    现在要让gitlab去触发,让gitlab点击立即构建,这也是通过插件实现

     Git push 触发自动构建 

    在我们已经成功实现了将 Gitlab 中 monitor 仓库的代码部署到 nginx服务中,但是每次部署需要我们手动去点击“立即构建”,下面我们将实现当 Gitlab 收到push 请求后,就触发 Jenkins 构建,将仓库的变化部署到 nginx 服务中。


    Jenkinsjob 配置构建触发器

    回到 My-freestyle-job 的配置页面,下拉到构建触发器部分

     

     勾选 gitlab 触发选项,进入具体配置页面

    点击高级

     Enabled GitLab triggers 允许gitlab触发

    push events 允许push  只要gitlab收到push操作 构建就执行 触发事件

    Opened Merge Request Events  合并请求  合并操作也可以触发

    只有两种方式可以触发   push上去触发构建,  执行merge请求 把代码合并进来了

     允许哪个分支 , 当哪个分支收到push或者merge请求,默认为所有分支 收到触发制的时候 就是执行job

    可以单独定义 只允许master分支 才构建

    根据自己需求定义

     token作用,访问webhooks URL 需要携带token过来,才能触发,有url也不行,有url和token才触发

    配置完成后,保存配置。 

    Gitlab 仓库配置 webhooks

    当仓库收到push 不是gitlab收到 是某一个仓库收到 push操作或者merge请求事件  才会触发构建 ,和仓库相关

    进入 Gitlab 中 monitor 仓库的设置页面,

     进入集成配置页面,复制 jenkins 触发器配置页面的 url 及 Token

    触发事件 默认事件类型是push

    配置完成后,添加weohooks

    添加了一条 ,在页面下面测试触发设置  测试用test 测试用push events 推送事件

     

    200显示成功,执行成功了

    我们在 jenkins job 主页面看到构建任务被触发。

    在gitlab 模拟一个push请求过来, jenkins自动触发构建

    触发成功 

    刚才是模拟请求

    这次执行构建任务的时候,我们没有点立即构建

    这是模拟push操作


    接着我们将仓库克隆到客户端,在客户端测试触发 push 操作

    admin可以直接向master push,dev用户不可用

    克隆 monitor 仓库到 ci-node1 本地 ci-node1上绑定是root用户  

    [root@ci-node1 data]# git clone git@192.168.31.11:test/monitor.git
    Cloning into 'monitor'...
    remote: Counting objects: 435, done.
    remote: Compressing objects: 100% (372/372), done.
    remote: Total 435 (delta 53), reused 435 (delta 53)
    Receiving objects: 100% (435/435), 8.78 MiB | 0 bytes/s, done.
    Resolving deltas: 100% (53/53), done.

    cd monitor 仓库里面 更改 index.html 文件,push 至 Gitlab 

    [root@ci-node1 data]# cd monitor/
    [root@ci-node1 monitor]# vim index.html

     

    改红色框主的

     

     改后 wq 保存退出

     

     修改好index.html 文件提交

    [root@ci-node1 monitor]# git add .
    [root@ci-node1 monitor]# git commit -m "modify index.html on ci-node1"
    [master b364e08] modify index.html on ci-node1
     1 file changed, 1 insertion(+), 1 deletion(-)

    发送push push成功

    [root@ci-node1 monitor]# git push -u origin master
    Counting objects: 5, done.
    Compressing objects: 100% (3/3), done.
    Writing objects: 100% (3/3), 315 bytes | 0 bytes/s, done.
    Total 3 (delta 2), reused 0 (delta 0)
    To git@192.168.31.11:test/monitor.git
       f6070e1..b364e08  master -> master
    Branch master set up to track remote branch master from origin.

    看看gitlab 仓库有没有变化,Gitlab 收到本次推送的内容, 

     

    Jenkins 对应的 job 已经触发构建

     

    这个地方改变 代表部署成功 

    网站 index.html 内容被更新

    构建前:

    构建后

    同时我们在 jenkins 中 job 主页面的“新修改记录”部分可以看到我们的修改日志。

  • 相关阅读:
    SpringCloud----分布式事务
    ps----基础
    DVWA靶场之XSS(Stored)通关
    DVWA靶场之XSS(Reflected)通关
    DVWA靶场之SQL injection(blind)通关
    CentOS6与CentOS7的几点区别
    DVWA靶场之SQL Injection通关
    DVWA靶场之File Upload(文件上传)通关
    DVWA靶场之File Inclusion(文件包含)通关
    DVWA靶场之CSRF(跨站请求伪造)通关
  • 原文地址:https://www.cnblogs.com/mingerlcm/p/12702528.html
Copyright © 2011-2022 走看看