文档章节

Webhook与Jenkins自动构建(上)

Kanonpy
 Kanonpy
发布于 2018/09/16 18:01
字数 847
阅读 375
收藏 0

webhook是个在特定情况下通过web触发的一种api,Web 钩子用于在项目发生相关事件时通知外部服务器,gitlab的web hooks跟git hook类似。也是当项目发生提交代码、提交tag等动作会自动去调用url,这个url可以是更新代码。或者其他操作。

githook

本地Hook

本地 Hook 只影响它们所在的仓库。以下是最常用的 6 个本地 Hook:

  • pre-commit
  • prepare-commit-msg
  • commit-msg
  • post-commit
  • post-checkout
  • pre-rebase 前四个 Hook 介入到版本提交的生命周期,后两个允许执行一些额外的操作,分别为 git checkout 和 git rebase 的安全检查。所有与带 pre- 的 Hook 代表即将发生的某个阶段,带 post- 只用于通知。

pre-commit

pre-commit 脚本在每次你运行 git commit 命令时,Git 向你询问提交信息或者生产提交对象时被执行。你可以用这个 Hook 来价差即将被提交的代码快照。比如说,你可以运行一些自动化测试,保证这个提交不会破坏现有的功能。

prepare-commit-msg

prepare-commit-msg这个 Hook 在 pre-commit Hook 在文本编辑器中生效提交信息之后被调用。prepare-commit-msg 的参数可以是下列三个:

包含提交信息的文件名。你可以在原地更改提交信息。 提交类型。可以是信息(-m 或 -F 选项),模板(-t选项),merge(如果是个合并提交)或squash(如果这个提交插入了其他提交)。 相关提交的SHA1哈希字串。只有当-c,-C,或--amend选项出现时才需要。

post-commit

post-commit Hook 在 commit-msg Hook 之后立即被运行。它无法改变 git commit 的结果,主要用于通知。这里我们详细来讲述一下这个 Hook ,因为我们之后要用到它。

这个脚本没有任何参数,而且退出状态不会影响提交。对于大多数的 post-commit 脚本来说,你只是想访问你刚刚创建的提交。你可以用 git rev-parse HEAD来获得最近一次提交的 SHA1 哈希字符串,或者你可以用 git log -l HEAD 来获得完整的信息。

post-checkout

post-checkout Hook 和 post-commit Hook 很像,但它在你用 git checkout查看引用的时候被调用。

gitlab runner

docker 运行

docker run -d --name gitlab-runner \
  -v /srv/gitlab-runner/config:/home/gitlab-runner \
  -v /var/run/docker.sock:/var/run/docker.sock \
  gitlab/gitlab-runner

gitlab-runner注册

输入:

gitlab-ci-multi-runner register

这里主要是需要两个信息进行注册,一个是gitlab的url,和runner token。 可以在gitlab CI/CD 的Runners settings中Specific Runners找到,如下所示:

Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com )
https://172.17.0.2   (因为我这里gitlab是放在dockder下面因此需要改成docker内网地址)
Please enter the gitlab-ci token for this runner
kpSL7ViitQLYbSs3zS1x
Please enter the gitlab-ci description for this runner
my-runner
INFO[0034] fcf5c619 Registering runner... succeeded
Please enter the executor: shell, docker, docker-ssh, ssh?
shell

gitlab-runner运行

检查runner的状态: gitlab-ci-multi-runner verify

重启所有runner: gitlab-ci-multi-runner run

重启单个runner: gitlab-ci-multi-runner run-single --url https://172.17.0.2 --token runnerToken --executor shell

gitlab-runner运行成功界面

需要在gitlab-runner环境下按照运行所需要

© 著作权归作者所有

Kanonpy
粉丝 16
博文 42
码字总数 45373
作品 0
广州
程序员
私信 提问
【实战】Jenkins配置Git push后自动构建

# 前言   Jenkins 持续构建集成是软件版本迭代的一大利器,对于前端攻城狮来说,本身对服务器的接触就少,也并不愿意去做这个事。Jenkins持续构建省去了繁琐的服务器替换包的过程,同时有历...

果汁凉茶丶
06/27
0
0
Gitlab利用Webhook实现Push代码后的jenkins自动构建

之前部署了Gitlab的代码托管平台和Jenkins的代码发布平台。通常是开发后的代码先推到Gitlab上管理,然后在Jenkins里通过脚本构建代码发布。这种方式每次在发版的时候,需要人工去执行jenkins...

吞吞吐吐的
2017/08/10
0
0
Jenkins + Github持续集成构建Docker容器

本文分两部分,第一部分是手动计划任务的方式构建Github上的Docker程序,第二部分是用Github webhook Trigger一个自动构建任务。 Jenkins采用2.5版本 Docker采用1.7.1 代码托管使用的Github官...

shanker
2018/06/29
0
0
利用Jenkins + nginx 实现前端项目自动构建与持续集成

本文将以我之前的一篇基于vue-cli3.0构建移动端架子的前端代码自动化部署到目标服务器为🌰。 实现目标 本地push代码到GitHub,Webhook自动触发jenkins上的构建动作,完成安装node插件并且打...

web_zhou
05/17
0
0
码云持续集成插件 - Gitee Jenkins Plugin

Gitee Jenkins Plugin 是码云基于 GitLab Plugin 开发的 Jenkins 插件。用于配置 Jenkins 触发器,接受码云平台发送的 WebHook 触发 Jenkins 进行自动化持续集成或持续部署,并可将构建状态反...

Yashin
2018/07/16
5.3K
3

没有更多内容

加载失败,请刷新页面

加载更多

计算机实现原理专题--二进制减法器(二)

在计算机实现原理专题--二进制减法器(一)中说明了基本原理,现准备说明如何来实现。 首先第一步255-b运算相当于对b进行按位取反,因此可将8个非门组成如下图的形式: 由于每次做减法时,我...

FAT_mt
今天
5
0
好程序员大数据学习路线分享函数+map映射+元祖

好程序员大数据学习路线分享函数+map映射+元祖,大数据各个平台上的语言实现 hadoop 由java实现,2003年至今,三大块:数据处理,数据存储,数据计算 存储: hbase --> 数据成表 处理: hive --> 数...

好程序员官方
今天
7
0
tabel 中含有复选框的列 数据理解

1、el-ui中实现某一列为复选框 实现多选非常简单: 手动添加一个el-table-column,设type属性为selction即可; 2、@selection-change事件:选项发生勾选状态变化时触发该事件 <el-table @sel...

everthing
今天
6
0
【技术分享】TestFlight测试的流程文档

上架基本需求资料 1、苹果开发者账号(如还没账号先申请-苹果开发者账号申请教程) 2、开发好的APP 通过本篇教程,可以学习到ios证书申请和打包ipa上传到appstoreconnect.apple.com进行TestF...

qtb999
今天
10
0
再见 Spring Boot 1.X,Spring Boot 2.X 走向舞台中心

2019年8月6日,Spring 官方在其博客宣布,Spring Boot 1.x 停止维护,Spring Boot 1.x 生命周期正式结束。 其实早在2018年7月30号,Spring 官方就已经在博客进行过预告,Spring Boot 1.X 将维...

Java技术剑
今天
18
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部