文档持续交付

简介: 作者日期备注wywincl2017/09/27[图片上传失败...(image-1b8d4c-1533004225963)]基本介绍文档化工作一直是程序员们不太热爱的事情,特别是文档规范要求很严格,写一篇技术文档就像写论文一样,格式,字体以及自动索引等等,程序员们普遍感到痛不欲生。
作者 日期 备注
wywincl 2017/09/27 [图片上传失败...(image-1b8d4c-1533004225963)]

基本介绍

文档化工作一直是程序员们不太热爱的事情,特别是文档规范要求很严格,写一篇技术文档就像写论文一样,格式,字体以及自动索引等等,程序员们普遍感到痛不欲生。因此就出现了像MarkdownreStructuredText这样的格式化标记语言,将繁琐的样式自动生成。本文并不是Markdown和reST的入门介绍文章。如需要了解这两种标记语言,请点击单词链接前往学习。
本文主要是讲解如何用持续交付的方法将基于Markdown或者reStructuredText格式的文本文档通过相关的工具(mkdocs, sphinx-docs)以静态HTML页面的方式交付给用户。

文档化工作流

img_0ad51cbc8a6867e474767ec54191065f.png
文档化持续交付工作流

如上图所示,我们将基于Markdown或者reStructuredText格式的文档保存在Gitlab上进行版本管理。通过Gitlab上的webhook钩子来触发一些事件(通知readthedocs服务器自动拉取指定分支的文档并用sphinx或者mkdocs工具进行html生成),这样我们只要本地对文档进行了修改,就可以自动化地将改动呈现给用户,而无需人为干预。

[备注] readthedocs是静态文档托管服务

环境搭建

为了实现上一节图中所示的工作流,我们需要本地搭建Gitlab服务,
readthedocs服务。

容器化环境构建

  1. 搭建本地Gitlab服务
$>sudo docker run --detach \
--hostname gitlab.example.com \
--publish 443:443 --publish 80:80 --publish 22:22 \
--name gitlab \
--restart always \
--volume /srv/gitlab/config:/etc/gitlab \
--volume /srv/gitlab/logs:/var/log/gitlab \
--volume /srv/gitlab/data:/var/opt/gitlab \
gitlab/gitlab-ce:latest
  1. 搭建本地readthedocs服务
$> git clone https://github.com/moul/docker-readthedocs.git
$> cd docker-readthedocs 
$> docker-compose run --service-ports --rm readthedocs

效果

readthedocs效果

img_bbf003f4cba900ccc4d45923517ea872.png
readthedocs

基本样例

下面我们就来以一个基本的例子,来讲解如何将Gitlab或者(gogs,github等版本管理服务)上的文档引入到readthedocs并进行静态页面生成。

创建项目

我们首先创建一个git仓库sphinx-docs-intro,然后进入仓库,用sphinx-quickstart命令创建sphinx项目, 这里默认为大家对sphinx已有所了解,如果不熟悉这个工具,请点击链接

img_d8b974ae224db77be485b4663fafb62d.png
sphinx-docs-intro

编写rst文档

img_eb09140b21caffa5a0a74a138a0a1e66.png
turtorial

如上图所示,我们用rst格式来编写一个基本的使用指南文档。编写完毕以后,就可以将文档提交到gitlab仓库中。

在readthedocs中引入项目

我们通过import a project按钮, 来引入我们的项目sphinx-docs-intro

img_a47fffed03916aec27ccef575526819e.png
import project

引入完成后,我们需要在管理界面,设置集成钩子。如下图所示。


img_80b65518da444d73547ec12fe98de920.png
webhook

这样,我们就可以通过触发webhook来自动化构建sphinx文档了。

最终效果

img_5df73878f6849b7339d44e0e7466e52a.png
效果

总结

通过上面的介绍,我们就初步搭建了文档的持续交付平台,文档的持续交付也是DevOps的一个方面。为了全面实施DevOps,我们需要加大对人,工具,文化的投入。

交流

大家可以加入DevOps社区群,一起交流学习。


img_5098930e03a2b970656d6c42a548184d.png
DevOps社区
目录
相关文章
|
6月前
|
监控 测试技术 持续交付
自动化测试与持续集成/持续交付:加速软件开发的利器
在软件开发过程中,自动化测试与持续集成/持续交付(CI/CD)已经成为不可或缺的工具。本文将介绍自动化测试和CI/CD的概念及其在软件开发中的重要性,探讨其如何加速软件开发过程,提高质量和效率。
|
3月前
|
安全 前端开发 持续交付
项目管理和持续集成系统搭建问题之云效的缺陷管理如何解决
项目管理和持续集成系统搭建问题之云效的缺陷管理如何解决
84 6
|
3月前
|
持续交付 jenkins Devops
WPF与DevOps的完美邂逅:从Jenkins配置到自动化部署,全流程解析持续集成与持续交付的最佳实践
【8月更文挑战第31天】WPF与DevOps的结合开启了软件生命周期管理的新篇章。通过Jenkins等CI/CD工具,实现从代码提交到自动构建、测试及部署的全流程自动化。本文详细介绍了如何配置Jenkins来管理WPF项目的构建任务,确保每次代码提交都能触发自动化流程,提升开发效率和代码质量。这一方法不仅简化了开发流程,还加强了团队协作,是WPF开发者拥抱DevOps文化的理想指南。
80 1
|
3月前
|
监控 测试技术 持续交付
持续集成与持续交付的最佳实践
【8月更文挑战第15天】持续集成和持续交付是现代软件开发中的重要实践,它们通过自动化和频繁地集成代码、构建、测试和部署,帮助团队更快地交付高质量的软件。通过遵循最佳实践,团队可以优化其持续集成和持续交付的流程,提高开发效率和软件质量。希望本文的分享能够为开发团队提供有益的参考和指导。
|
3月前
|
存储 安全 测试技术
持续集成、交付和部署简介
持续集成、交付和部署简介
50 1
|
3月前
|
运维 安全 数据管理
持续交付管理
持续交付管理
45 0
|
前端开发 测试技术 持续交付
前端可持续集成与持续交付
前端可持续集成与持续交付
188 0
|
SQL 安全 Devops
DevOps流水线设计的最佳实践
谈到到DevOps,持续交付流水线是绕不开的一个话题,相对于其他实践,通过流水线来实现快速高质量的交付价值是相对能快速见效的,特别对于开发测试人员,能够获得实实在在的收益。很多文章介绍流水线,不管是jenkins,gitlab-ci, 流水线,还是drone, github action 流水线, 文章都很多,但是不管什么工具,流水线设计的思路是一致的。于此同时,在实践过程中,发现大家对流水像有些误区,不是一大堆流水线,就是一个流水线调一个超级复杂的脚本,各种硬编码和环境依赖,所以希望通过这篇文章能够给大家分享自己对于Pipeline流水线的设计心得体会。
1265 1
|
运维 前端开发 jenkins
Devops 开发运维高级篇之微服务持续集成代码上传和代码检查
微服务持续集成(1)-项目代码上传到Gitlab 微服务持续集成(2)-从Gitlab拉取项目源码 微服务持续集成(3)-提交到SonarQube代码审查
Devops 开发运维高级篇之微服务持续集成代码上传和代码检查
|
算法 搜索推荐 Devops
敏捷/持续集成/持续交付/DevOps基本理论全面解析(下)
敏捷/持续集成/持续交付/DevOps基本理论全面解析(下)
201 0
敏捷/持续集成/持续交付/DevOps基本理论全面解析(下)
下一篇
无影云桌面