vuepress借助jenkins和svn实现文档自动化更新部署
前言
有个需求,需要将放在SVN的用vuepress写的文档进行自动化更新和部署,每次有人在本地将写好的md文件更新到svn时候,由jenkins实现自动打包来实现自动更新的功能。
docker安装jenkins
首先创建目录,将jenkins_home挂载到外部
mkdir /home/jenkins_home
chmod 777 /home/jenkins_home
运行docker命令,这里安装新版的jenkins,加后缀jdk11,服务器不需要有jdk11环境,由容器解决环境问题。
docker run -u root -it --name jenkins -p 8080:8080 -p 50000:50000 -v /home/jenkins_home:/var/jenkins_home -d jenkins/jenkins:jdk11
配置Jenkins
打开地址ip:8080,会要求输入密钥,到/home/jenkins_home/secrets/initialAdminPassword查看相关密码,输入即可。
然后填写账户密码,进入主页面。点击系统管理,再进入插件管理

选择available plugins,并输入nodejs和subversion分别进行安装



回到主页面,再点击全局工具配置

nodejs这里选择合适的版本,点保存

回到主页面点击新建任务,选择构建自由风格的软件项目

源码管理选择subversion,输入项目地址和credentials里面输入账户密码

构建触发器选择轮询SCM,这里表示每5分钟轮询一次,当SVN的版本号发生改变,即内容有更新就进行部署
H/5 * * * *

构建环境配置如下:

然后在Build Steps选项,输入:
chmod 777 node_modules/.bin/vuepress
npm run docs:build

不知道为什么,不加chmod命令就会出现下面的错误,加上去就能解决这个问题

然后点击保存。
回到上一页点击立即构建,jenkins会去svn拉取代码进行部署

部署结果:

后续会通过轮询判断是否需要进行重部署。这里只需要将Nginx的静态资源指向jenkins打包后的文件地址即可。
Nginx配置示例如下,其中jenkins_home/workspace是项目的工作空间,存放项目和编译后的文件。
server {
listen 8182;
server_name localhost;
location /doc {
alias /home/jenkins_home/workspace/test/docs/.vuepress/dist/;
index index.html;
try_files $uri $uri/ CLTServer/index.html;
}
}
vuepress借助jenkins和svn实现文档自动化更新部署的更多相关文章
- Jenkins构建项目帮助文档
Jenkins构建项目帮助文档 主要步骤 一.配置jdk 1.1. 下载jdk,安装到自己电脑磁盘的Java目录下(比如:D:\Java\jdk). 1.2. Jdk环境变量的配置: 1. 鼠 ...
- 如何使用 VuePress 搭建一个 element-ui 风格的文档网站
如何使用 VuePress 搭建一个 element-ui 风格的文档网站 { "devDependencies": { "vuepress": "1 ...
- 使用jsdoc-toolkit实现JS API文档自动化
在前面的博文中探讨自动化工程问题时,写过基于NodeJS的,使用gulp.grunt的jsdoc插件实现文档自动化.本文探讨基于java环境的自动化实现. 一.Java安装与环境配置 关于Java的安 ...
- 通过beego快速创建一个Restful风格API项目及API文档自动化
通过beego快速创建一个Restful风格API项目及API文档自动化 本文演示如何快速(一分钟内,不写一行代码)的根据数据库及表创建一个Restful风格的API项目,及提供便于在线测试API的界 ...
- 通过beego快速创建一个Restful风格API项目及API文档自动化(转)
通过beego快速创建一个Restful风格API项目及API文档自动化 本文演示如何快速(一分钟内,不写一行代码)的根据数据库及表创建一个Restful风格的API项目,及提供便于在线测试API的界 ...
- Jenkins +svn +maven +tomcat+ ansible 自动化批量部署
Jenkins +svn +maven +tomcat+ ansible 自动化批量部署 一.部署svn yum install subversion 先创建目录 mkdir /home/svn 创建 ...
- es之对文档进行更新操作
5.7.1:更新整个文档 ES中并不存在所谓的更新操作,而是用新文档替换旧文档: 在内部,Elasticsearch已经标记旧文档为删除并添加了一个完整的新文档并建立索引.旧版本文档不会立即消失 ,但 ...
- Web 前端 UI 组件库文档自动化方案 All In One
Web 前端 UI 组件库文档自动化方案 All In One 需求 自动化 动态 好用 markdown element-ui 中示例和说明按照一定规则写在md文件中,调用md-loader将md文 ...
- 推荐一个vuepress模板,一键快速搭建文档站
介绍 vuepress-template是一个简单的VuePress案例模板,目的是让用户可以直接clone这个仓库,作为初始化一个VuePress网站启动项目,然后在这个项目的基础上新增自定义配置和 ...
- Jenkins Hackfest 用户体验文档报告
Jenkins 技术文档是我们项目的重要组成部分,因为它是正确使用 Jenkins 的关键.好的文档可以指导用户,并鼓励选择好的实现方式.这是用户体验的关键部分.在最近的 Jenkins UI/UX ...
随机推荐
- python setup.py sdist bdist_wheel
# python setup.py sdist bdist_wheel# twine upload dist/*import ioimport osimport sysfrom shutil impo ...
- C#学习笔记--面向对象三大特征
C#核心 面向对象--封装 用程序来抽象现实世界,(万物皆对象)来编程实现功能. 三大特性:封装.继承.多态. 类与对象 声明位置:namespace中 样式:class 类名{} 命名:帕斯卡命名法 ...
- HBuilderX内置终端无法使用不能输入
找到HBuilderX的目录打开plugins\builtincef3terminal\script找到main.js用记事本或其他什么打开他 把这部分代码替换成这个再重启hbuilderX就可以了 ...
- Python 利用pandas和matplotlib绘制饼图
这段代码使用了Pandas和Matplotlib库来绘制店铺销售数量占比的饼图.通过读取Excel文件中的数据,对店铺名称进行聚合并按销售数量降序排列,然后使用Matplotlib绘制饼图展示销售数量 ...
- QT(3)-QTableView
@ 目录 0 相关文章 1 说明 2 常用函数 2.1 clearSpans 2.2 setSpan 2.3 columnAt 2.4 rowAt 2.5 columnSpan 2.6 rowSpan ...
- 万字长文:从 C# 入门学会 RabbitMQ 消息队列编程
RabbitMQ 教程 目录 RabbitMQ 教程 RabbitMQ 简介 安装与配置 安装 RabbitMQ 发布与订阅模型 生产者.消费者.交换器.队列 多工作队列 交换器类型 Direct F ...
- 一个基于ASP.NET Core完全开源的CMS 解决方案
本文简介 MixCoreCMS是一个基于.NET Core框架的开源内容管理系统(CMS),提供了丰富的的基础功能和插件,是一款面向未来的企业 Web CMS,可轻松构建任何类型的应用程序.集成了Go ...
- Kubernetes 漫游:kube-scheduler
概述 什么是 kube-scheduler ? Kubernetes 集群的核心组件之一,它负责为新创建的 Pods 分配节点.它根据多种因素进行决策,包括: 资源需求和限制:考虑每个 Pod 请求的 ...
- list.add()语句作用
----该方法用于向集合列表中添加对象 示例 本示例使用List接口的实现类ArrayList初始化一个列表对象,然后调用add方法向该列表中添加数据. public static void mai ...
- 现代统计分析软件Datainside在学生成绩分析中的应用
Datainside(薪火数据)是一款非常常用的统计分析软件,广泛应用于学术研究和商业领域. 在学生成绩分析方面,Datainside提供了丰富的功能和工具,可以帮助教育机构和研究人员深入理解学生的学 ...