Jenkins实现Gitbook自动部署

nodeJS安装

gitbook安装

//安装gitbook
npm install -g gitbook-cli
//验证并安装
gitbook -V 

生成gitbook

书写SUMMARY.md目录结构

* [简介](README.md)
* [第一章](chapter1/README.md)
    - [第一节](chapter1/section1.md)
    - [第二节](chapter1/section2.md)
* [第二章](chapter2/README.md)
    - [第一节](chapter2/section1.md)
    - [第二节](chapter2/section2.md)
* [结束](end/README.md)

新增book.json加入目录折叠插件

{
    "title" : "消息服务文档",
    "plugins": ["toggle-chapters"]
}

使用gitbook install安装插件
使用gitbook init根据目录结构生成相应的文件
使用gitbook build . _book(这里.默认创建后面的文件夹)生成对应的html文件

预览

使用gitbook serve启动预览服务器
访问localhost:4000预览gitbook

创建git项目地址

创建git项目, 并上传markdown文件
这里采用一个git项目下存放多个gitbook目录, 后面Jenkins同时部署

Jenkins发布

  • 创建Jenkins项目, 并配置git地址, 分支等
  • 创建构件脚本
  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中未加入该插件则不用执行
                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
    
  • 发送文件到目标服务器并解压(Jenkins默认的文件目前是workspace的子目录, 在该文件目录下查找文件并发送)

      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(用户匿名构建Jenkins项目)

      openssl rand -hex 12
      30910262eff664f2acbcb962
    
  • Jenkins安装Gitlab Hook Plugin和Build Authorization Token插件并重启

  • 配置项目远程构建, 添加前面生成的token

    《Jenkins实现Gitbook自动部署》

  • 配置gitlab项目webhook, 加入构建地址http://${Jenkins地址}:${Jenkins端口}/buildByToken/build?job=${Jenkins项目名称}&token=${前面生成并添加到Jenkins远程构建的token}

    《Jenkins实现Gitbook自动部署》

参考地址:
http://www.jianshu.com/p/4eac43872b40

    原文作者:zpfang
    原文地址: https://www.jianshu.com/p/ae5c2727d9ee
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞