Gitbook+Jenkins+Github实现文档持续集成

2022-05-30 17:30:39 浏览数 (2)

需求说明

为了搭建一个gitbook github的团队协作文档系统,然后通过jenkins实现持续集成,也就是当你在gitlab上修改文档以后,jenkins会自动build此项目,这个时候你再通过浏览器访问就是修改后的内容。

技术栈说明

Gitbook: 是一个基于 Node.js 的命令行工具,可使用 Github/Git 和 Markdown 来制作精美的电子书,GitBook 并非关于 Git 的教程。

Jenkins:是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件项目可以进行持续集成 。

Github:是一个面向开源及私有软件项目的托管平台,因为只支持Git作为唯一的版本库格式进行托管,故名GitHub。

系统说明

代码语言:javascript复制
系统: Centos7
​
IP: 192.168.1.5(内网穿透、腾讯云服务器)
​
域名: gitbook.xgss.net
​
github:https://github.com/funet8/g.xgss.net.git
gitee:https://gitee.com/funet8/g.xgss.net.git
​
https://www.gitbook.com/

Jenkins和Github配置

写了这么多在说gitbook,现在说说一下jenkins,安装jenkins省略。

重要前提

1.GitHub收到提交的代码后要主动通知Jenkins,所以Jenkins所在服务器一定要有外网IP,否则GitHub无法访问,我的Jenkins服务器是部署在腾讯云的云主机上,带有外网IP(如果只有内网,那则需要用到内网穿透工具才能实现);

2.本次实战要提交源码到GitHub,所以您需要有一个GitHub号,并在上面创建项目;

3.如果是内网的gitlab jenkins则不需要有外网IP

基本流程

将编写的文件提交Github,Github通过Webhook钩子,通知执行jenkins,jenkins执行上线脚本或者构建动作,完成整个流程。

新建jenkins任务

回到主页 –> 新建任务 –> 新建一个自由风格的软件项目

配置触发器

身份令牌这个可以随便写,尽量复杂一些

生成钩子地址 JENKINS_URL/job/gitbook.xgss.net_github_online/build?token=TOKEN_NAME。将这个地址填写到github的项目webhook中。

http://0.0.0.0 端口/job/任务名/build?token=TOKEN值的链接

构建执行脚本

Github 设置 webhooks

进入GitHub上指定的项目 –> setting –> WebHooks&Services –> add webhook –> 输入刚刚部署地址

JENKINS_URL/job/gitbook.xgss.net_github_online/build?token=TOKEN_NAME

测试能否自动提交

在git push看jenkins 能否自动执行。

有报错,在点击看具体的报错

发现只能有get方法,post方法会报403

写了一个shell脚本每次写完自动提交,并且通知jenkins

代码语言:javascript复制
# 提交
git add .
​
git commit -m "提交修改文档"
​
git push
​
# webhook钩子
curl "http://JENKINS_URL/job/项目名/build?token=密钥"
​
#修改以下参数
SERVER='http://IP:8080'
Job_Name='gitbook.xgss.net_github_online'
Token='token123456'
USER='name'
Password='1234'
​
#使用curl触发jenkins
curl --user $USER:${Password} ${SERVER}/job/${Job_Name}/build?token=${Token}

0 人点赞