自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Markdown/reST 文檔DevOps流水線

開發(fā) 開發(fā)工具
自己搭建類似ReadTheDocs的自動化文檔發(fā)布流水線,實(shí)現(xiàn)文檔源代碼簽入后的一鍵式自動發(fā)布。思路很簡單,就是利用VSTS所提供的 持續(xù)集成CI 引擎,在推送代碼后自動觸發(fā)腳本完成文檔編譯(把restructuredText/Markdown格式轉(zhuǎn)換為html格式),同時使用FTP上傳到web服務(wù)器的特定目錄,再把html壓縮后的zip包上傳到vsts作為備份。

相信很多朋友都在使用Markdown或者restructedText格式來編寫一些技術(shù)文檔,也會把這些文檔放在github上分享給社區(qū)。GitHub提供了很好的Markdown格式解析支持,但是這些文檔的閱讀體驗(yàn)并不好,而且有些時候我們可能只希望給用戶提供可閱讀的html格式而不希望直接把Markdown格式也分享出去。

為了滿足這些要求,我曾經(jīng)使用ReadTheDocs的服務(wù)很長時間,因?yàn)樗峁┝撕芷敛⑶疫m配各種屏幕尺寸和手機(jī)的css風(fēng)格。但是我相信很多人也和我一樣,一直都很糾結(jié)它的訪問速度,畢竟服務(wù)器在國外。后來,我在北京的Azure數(shù)據(jù)中心中自己搭建了ReadTheDocs服務(wù)器,但是發(fā)現(xiàn)在文檔生成和發(fā)布過程中ReadTheDoc必須要下載很多依賴庫,由于大家都知曉的原因,這讓發(fā)布過程變的非常不穩(wěn)定,經(jīng)常出現(xiàn)發(fā)布失敗的情況。

最終,我決定自己搭建類似ReadTheDocs的自動化文檔發(fā)布流水線,實(shí)現(xiàn)文檔源代碼簽入后的一鍵式自動發(fā)布。思路很簡單,就是利用VSTS所提供的 持續(xù)集成CI 引擎,在推送代碼后自動觸發(fā)腳本完成文檔編譯(把restructuredText/Markdown格式轉(zhuǎn)換為html格式),同時使用FTP上傳到web服務(wù)器的特定目錄,再把html壓縮后的zip包上傳到vsts作為備份。

最終發(fā)布的效果如下:

配置這個流水線也很簡單

1. 在VSTS里創(chuàng)建git代碼庫簽入文檔源碼,并創(chuàng)建文檔編譯腳本 build.sh

以下是 build.sh 的內(nèi)容

  1. sphinx-build -b html ./docs/ ./_build/ 

2. 在Azure上創(chuàng)建Website,并獲取ftp上傳地址和賬戶

3. 在VSTS中創(chuàng)建以下文檔構(gòu)建定義

這個構(gòu)建分成4個步驟完成,分別是

  • 執(zhí)行 build.sh 腳本
  • FTP 上傳到Azure站點(diǎn)
  • 發(fā)布文檔zip包作為交付件到VSTS中

4. 在VSTS中創(chuàng)建以下github同步構(gòu)建定義

2個步驟

  •  同步github狀態(tài)
  • git pull https://github.com/lean-soft/$(Build.Repository.Name).git master
  •  推送到github
  • git push https://$(github-token)@github.com/lean-soft/$(Build.Repository.Name).git head:master

注意以上我使用了 ${Build.Repository.Name}替代了代碼庫的名稱,這樣我只要在vsts和github上保持代碼庫名稱的一致,就可以不必每次都重新修改這個腳本的內(nèi)容。

DevOpsHub的文檔中心現(xiàn)在已經(jīng)5套不同內(nèi)容的培訓(xùn)實(shí)驗(yàn)手冊文檔,為了跟蹤所有這些文檔的更新狀態(tài),我在VSTS里面還建立了一個儀表盤來整體顯示。

這些文檔通過以上提到的github同步任務(wù),也會同步到公司的github主頁上,大家如果需要這些文檔的源碼,可以訪問:https://github.com/lean-soft

DevOpsHub文檔中心地址請點(diǎn)擊 以下地址

http://docs.devopshub.cn/

更新1,最近我又改進(jìn)了這個流水線,使用docker來運(yùn)行sphinx工具,這樣我就不必在構(gòu)建服務(wù)器上安裝python等一系列的工具了。腳本如下:

  1. # 使用容器運(yùn)行sphinx工具,并執(zhí)行自定義的build.sh腳本 
  2. docker run -it -v $(Build.Repository.LocalPath):/documents/ --name docs-build-container -w /documents/ --rm docker-sphinx:1 bash ./build.sh 

更新2,微軟最近發(fā)布了基于Linux的托管構(gòu)建服務(wù)器,所以我就不必自己搭建構(gòu)建服務(wù)了,只需要修改構(gòu)建使用 Hosted Linux就可以了。

【本文為51CTO專欄作者“徐磊”的原創(chuàng)稿件,轉(zhuǎn)載請通過作者微信公眾號devopshub獲取授權(quán)】

戳這里,看該作者更多好文

責(zé)任編輯:武曉燕 來源: 51CTO專欄
相關(guān)推薦

2017-02-28 15:40:30

Docker流水線Azure

2017-03-02 14:12:13

流水線代碼Clojure

2021-04-29 08:55:54

GitLabDevOps項(xiàng)目

2024-11-04 12:38:52

2022-07-18 06:05:28

Gitlab流水線

2023-05-10 15:08:00

Pipeline設(shè)計(jì)模式

2019-11-07 10:02:33

開源開源工具DevOps

2013-06-06 09:31:52

2021-11-08 07:41:16

Go流水線編程

2024-01-07 12:47:35

Golang流水線設(shè)計(jì)模式

2021-06-26 14:22:34

Tekton流水線Kubernetes

2022-01-26 08:12:42

Jenkins開源流水線

2023-08-18 10:24:52

GitLabCI 流水線

2021-06-28 06:32:46

Tekton Kubernetes Clone

2021-12-24 08:02:48

GitLabCI模板庫流水線優(yōu)化

2021-06-18 05:48:02

Tekton DevopsKubernetes

2023-09-27 08:24:49

2021-01-05 08:39:51

容器前端流水線

2012-04-19 11:44:52

iPhone

2018-10-23 16:35:19

華為云
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號