nodeJS安裝
gitbook安裝
//安裝gitbook
npm install -g gitbook-cli
//驗證并安裝
gitbook -V
生成gitbook
書寫SUMMARY.md目錄結(jié)構(gòu)
* [簡介](README.md)
* [第一章](chapter1/README.md)
- [第一節(jié)](chapter1/section1.md)
- [第二節(jié)](chapter1/section2.md)
* [第二章](chapter2/README.md)
- [第一節(jié)](chapter2/section1.md)
- [第二節(jié)](chapter2/section2.md)
* [結(jié)束](end/README.md)
新增book.json加入目錄折疊插件
{
"title" : "消息服務(wù)文檔",
"plugins": ["toggle-chapters"]
}
使用gitbook install安裝插件
使用gitbook init根據(jù)目錄結(jié)構(gòu)生成相應(yīng)的文件
使用gitbook build . _book(這里.默認(rèn)創(chuàng)建后面的文件夾)生成對應(yīng)的html文件
預(yù)覽
使用gitbook serve啟動預(yù)覽服務(wù)器
訪問localhost:4000預(yù)覽gitbook
創(chuàng)建git項目地址
創(chuàng)建git項目, 并上傳markdown文件
這里采用一個git項目下存放多個gitbook目錄, 后面Jenkins同時部署
Jenkins發(fā)布
- 創(chuàng)建Jenkins項目, 并配置git地址, 分支等
- 創(chuàng)建構(gòu)件腳本
root_dir=/var/lib/jenkins/workspace/gitbook
cd $root_dir
function getdir(){
for element in `ls $1`
do
dir_or_file=$1"/"$element
c_dir=$root_dir"/"$dir_or_file
if [ -d "$c_dir" ]
then
cd $dir_or_file/
echo $dir_or_file
if [ -f "book.json" ]
then
## 安裝插件, 如果book.json中未加入該插件則不用執(zhí)行
npm install
gitbook build . $root_dir/package/$dir_or_file
cd $root_dir
else
cd $root_dir
getdir $dir_or_file
fi
fi
done
}
source /etc/profile
getdir .
-
打包上傳文件
cd /xxx/jenkins_jobs/gitbook/workspace rm -r gitbook.tar tar -cf gitbook.tar gitbook
-
發(fā)送文件到目標(biāo)服務(wù)器并解壓(Jenkins默認(rèn)的文件目前是workspace的子目錄, 在該文件目錄下查找文件并發(fā)送)
cd /usr/local rm -rf gitbook tar -xvf gitbook.tar rm -f gitbook.tar
nginx配置
server {
server_name localhost;
listen 8080;
location / {
root /usr/local/gitbook;
#開啟目錄
autoindex on;
autoindex_exact_size on;
autoindex_localtime on;
}
}
配置上傳代碼自動部署
-
生成隨機token(用戶匿名構(gòu)建Jenkins項目)
openssl rand -hex 12 30910262eff664f2acbcb962
Jenkins安裝Gitlab Hook Plugin和Build Authorization Token插件并重啟
-
配置項目遠(yuǎn)程構(gòu)建, 添加前面生成的token
-
配置gitlab項目webhook, 加入構(gòu)建地址http://${Jenkins地址}:${Jenkins端口}/buildByToken/build?job=${Jenkins項目名稱}&token=${前面生成并添加到Jenkins遠(yuǎn)程構(gòu)建的token}