当前位置: 首页 > ai >正文

GitLab-CI将项目Wiki自动部署到文档中心

概述

公司的GitLab中,有一个存放所有技术文档的Wiki仓库,按照目录分门别类,包括API文档,编码规范,技术专题文档等,通过与Gollum进行持续部署.

然而在GitLab中,每个项目都有自己的Wiki库, 所以在将项目文档合并更新到总Wiki仓库时,同步更新比较麻烦,通过充分使用GitLab的持续集成功能, 将项目Wiki与Wiki仓库集成, 从而实现了Wiki的自动部署,

同步时,自动同步的提交信息和提交人信息

步骤

配置SSH

  • GitLab中在使用SSH的时候, 会生成公钥和私钥对

  • 将公钥添加到gitlab上, 以便于该用于可以拉取代码

  • CI/CD Piplines中设置 Secret Variables, 这里名为 SSH_PRIVATE_KEY

SSH_PRIVATE_KEY 值为私钥.

编写 .gitlab-ci.yml 文件, 注入私钥, 通过ssh执行远程命令

创建一个分支, 如docs, 在该分支中添加 gitlab-ci.yml文件, 实现wiki自动提交, 内容形如以下内容:


image: zacksleo/docker-composer:developbefore_script:- eval $(ssh-agent -s)- echo "$SSH_PRIVATE_KEY" > deploy.key- chmod 0600 deploy.key- ssh-add deploy.key- rm -f deploy.key- mkdir -p ~/.ssh- '[[ -f /.dockerenv ]] && echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config'build-docs:stage: deployvariables:GIT_STRATEGY: nonedependencies: []script:# 定义变量: 项目Wiki的Git地址,项目(目录)别名- export WIKI_REPO=git@domain.com:project.wiki.git && export PROJECT_NAME=$CI_PROJECT_NAME# 创建临时目录, 用于存放和合并git文档- mkdir ~/tmp && cd ~/tmp# 克隆项目wiki- git --git-dir=~/tmp/$PROJECT_NAME.wiki.git clone --depth=1 $WIKI_REPO $PROJECT_NAME# 删除.git 只保留纯文档, 获取最近的提交日志,用户邮箱和名称  - cd $PROJECT_NAME && export GIT_LOG=`git log -1 --pretty=%B` && export GIT_EMAIL=`git log -1 --pretty=%ae` && export GIT_USERNAME=`git log -1 --pretty=%an` && rm -rf .git && cd ..# 注册Git账号- git config --global user.email $GIT_EMAIL && git config --global user.name $GIT_USERNAME       # 克隆联络Wiki- git clone git@domain.com:orgs/wiki.git# 删除旧wiki, 增加新wiki- rm -rf wiki/api/$PROJECT_NAME && mv -f $PROJECT_NAME wiki/api# 增加提交日志并提交- cd wiki && git add . && git commit -m "$PROJECT_NAME:$GIT_LOG" && git push origin master# 删除临时目录- rm -rf ~/tmponly:- docs

其中, 将WIKI_REPO后面的git@domain.com:project.wiki.git替换为项目wiki的git地址,
$CI_PROJECT_NAME替换为项目英文别名(如不改则使用当前GitLab的项目名), 用于在文档中心的api下面创建相关目录。
其他地方不需要修改。

注意: 项目wiki的git地址与项目的git地址不相同, 请在Wiki右侧中的Clone repository 找到

创建 Triggers Token

打开项目的 CI/CD Pipelines 选项, 找到 Triggers, 点击添加一个Token, 并从下方的 Use webhook 段落找到触发URL, 如

https://domain.com/api/v4/projects/74/ref/REF_NAME/trigger/pipeline?token=TOKEN

将TOKEN替换为上述Triggers中获取的Token, 将 REF_NAME 替换分分支名称 docs, 得到最终URL

配置 Webhooks

打开项目的 integrations 选项, 在URL中, 填写上一步中拿到的URL

相关文档

  • [[GitLab-CI使用Docker进行持续部署]]
  • [[使用Git和Gollum搭建Wiki系统]]
http://www.xdnf.cn/news/8685.html

相关文章:

  • 前置过滤器和净水机安哪个?
  • Docker核心技术:Docker原理之Union文件系统
  • UART、RS232、RS485基础知识
  • HTTP 与 HTTPS
  • linux 内核 watchdog 模块学习及实践过程中遇见的问题总结
  • IP、子网掩码、默认网关、DNS
  • 软件工程重点复习(2)
  • 当NLP能模仿人类写作:原创性重构而非终结
  • 《Shell脚本实战:打造交互式多级菜单与LAMP/LNMP环境配置指南》
  • python学习day28
  • 博图SCL星三角降压启动从安装到编程步骤详解
  • libreoffice容器word转pdf
  • Word转PDF--自动生成目录
  • 教师技术知识对人工智能赋能下教学效果的影响:以教学创新为中介的实证研究
  • java每日精进 5.25【Redis缓存】
  • 一文讲透golang channel 的特点、原理及使用场景
  • Linux相关概念和易错知识点(41)(UDP、TCP报头结构)
  • 识别速度快且精准的OCR工具
  • 【短距离通信】【WiFi】WiFi7起源和应用场景介绍
  • 中间件安全IISApacheTomcatNginx弱口令不安全配置CVE
  • 梯度下降 损失景观 视频截图
  • 【 java 基础问题 第一篇 】
  • 【MySQL】第9节|Innodb底层原理与Mysql日志机制深入剖析(二)
  • Audio Codec的I2S时序或PCM时序,代表什么意思
  • 使用Chrome waterfall 查看接口耗时
  • openssl-1.1.1w-win64
  • ISO 26262-5 评估硬件随机失效率
  • redis功能清单
  • 记录一次功能优化需求下的业务处理思路整理
  • 【LangChain大模型应用与多智能体开发 ② 接入智谱AI】