前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Gitbook+Jenkins+Github实现文档持续集成

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

原创
作者头像
星哥玩云
发布2022-05-30 17:30:39
8230
发布2022-05-30 17:30:39
举报
文章被收录于专栏:开源部署开源部署

需求说明

为了搭建一个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任务

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

image-20210909175533313
image-20210909175533313

配置触发器

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

image-20210915182209327
image-20210915182209327

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

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

构建执行脚本

image-20210909182715587
image-20210909182715587

Github 设置 webhooks

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

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

image-20210915182818437
image-20210915182818437

测试能否自动提交

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

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

image-20210915184202566
image-20210915184202566

发现只能有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}

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 需求说明
  • 技术栈说明
  • 系统说明
  • Jenkins和Github配置
    • 重要前提
      • 基本流程
        • 新建jenkins任务
          • 构建执行脚本
            • Github 设置 webhooks
              • 测试能否自动提交
              相关产品与服务
              持续集成
              CODING 持续集成(CODING Continuous Integration,CODING-CI)全面兼容 Jenkins 的持续集成服务,支持 Java、Python、NodeJS 等所有主流语言,并且支持 Docker 镜像的构建。图形化编排,高配集群多 Job 并行构建全面提速您的构建任务。支持主流的 Git 代码仓库,包括 CODING 代码托管、GitHub、GitLab 等。
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档