文档持续交付

作者: wywincl | 来源:发表于2017-09-27 11:02 被阅读376次
作者 日期 备注
wywincl 2017/09/27 [图片上传失败...(image-1b8d4c-1533004225963)]

基本介绍

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

文档化工作流

文档化持续交付工作流

如上图所示,我们将基于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效果

readthedocs

基本样例

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

创建项目

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

sphinx-docs-intro

编写rst文档

turtorial

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

在readthedocs中引入项目

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

import project

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


webhook

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

最终效果

效果

总结

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

交流

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


DevOps社区

相关文章

  • 文档持续交付

    基本介绍 文档化工作一直是程序员们不太热爱的事情,特别是文档规范要求很严格,写一篇技术文档就像写论文一样,格式,字...

  • 《持续交付》 - 持续交付管理

    一 项目的生命周期 一个新的开发团队一般会经历的几个阶段: 创建期(forming):团队的初步形成,主要是团队人...

  • 敏捷交付中的自动化测试

    提到敏捷交付,我们总会说到持续集成,持续交付,持续发布,即频繁地交付产品特性。而我们都知道要实现真正的持续交付,必...

  • 谈谈敏捷交付中的自动化测试

    提到敏捷交付,我们总会说到持续集成,持续交付,持续发布,即频繁地交付产品特性。而我们都知道要实现真正的持续交付,必...

  • 微服务的部署与发布:持续交付与持续部署微服务

    持续交付与持续部署微服务 持续集成(Continuous Integration)与持续交付(Continuous...

  • 持续交付

    环境一致性问题 镜像部署

  • GOKU 交付文档

    overview 文档介绍 实现的功能1.1 手机端1.2 网页端 上线前准备 使用流程3.1 管理员3.2 用户...

  • 持续交付-Jenkins官网文档阅读笔记

    工作日常系列文章-论理论知识在大、小公司的价值体现 上篇文章 持续交付-目标 Jenkins官网 Jenkins下...

  • 持续交付2.0:云原生持续交付

    《持续交付》提出了一系列贯穿整个软件交付生命周期的最佳实践。但它成书的年代(2010年)云计算尚未得到广泛应用,尤...

  • 研发效能定义及核心本质

    本文主要澄清了敏捷开发、持续集成、持续交付1.0、持续交付2.0 、持续部署、DevOps、研发效能七个概念,以便...

网友评论

    本文标题:文档持续交付

    本文链接:https://www.haomeiwen.com/subject/wvbyextx.html