为何要用自动集成,固然是为了减小重复操做啦(懒是第一辈子产力!)html
例如在工做中,写完业务开发,将代码提交到Git以后,还要本身打包、部署,一两次还行,若是屡次提交代码,而后重复的打包、部署,那不得浪费不少时间,因此咱们须要自动集成CI,帮助咱们解决代码提交后的事情~~linux
因此此次学习了用的比较多的Jenkins工具啦git
Jenkins官网github
Build great things at any scale
The leading open source automation server, Jenkins provides hundreds of plugins to support building, deploying and automating any project.
复制代码
正如它所说的:做为领先的开源自动化服务器,Jenkins提供数百个插件来支持构建,部署和自动化任何项目。例如Git插件、自动部署的Deploy插件、代码质量Sonar等等好用的插件,给Jenkins增添了丰富的功能。web
此次搭建的Demo是使用Jenkins给Hexo进行持续集成(固然若是小伙伴不想专门弄一个服务器搭建Hexo,能够直接使用GitHub爸爸现成的GitHub page~~)shell
安装Jenkins(Linux的yum就很好用啦:yum install -y jenkins) 安装Jenkins后,要记得在插件界面安装git plugin~~ 而后能够经过systemctl start jenkins,在linux机器上做为服务来启动npm
安装Hexo(详细查看官网,还能选择不少好看的样式~)bash
$ npm install hexo-cli -g
$ hexo init blog
$ cd blog
$ npm install
$ hexo server
复制代码
这时能够查看服务器对应的ip加上默认的端口号4000,查看搭建出来的Hexo默认界面~服务器
在服务器安装Git服务,生成公钥(~/.ssh/id_rsa.pub)和私钥(~/.ssh/id_rsa)。hexo
在GitHub的用户Setting中添加公钥(这个你们应该都知道,就不贴图了)
Jenkins凭据中,配置秘钥(注意,是秘钥,路径~/.ssh/id_rsa)
记得将待会生成的密码保存下来,由于下一次你就看不见了=-=
在GitHub中新建两个一个仓库(个人叫test_blog)
在Jenkins中的【系统配置】->【全局配置】添加GitHub服务器
新增的凭据选择
在Jenkins中,新建一个自由风格的任务(高度可配置化hhh)
配置Git项目地址
在原代码配置项中,选择git,将项目地址填上,还有选择上一步填写的凭据~
填写构建触发器
编写Execute执行脚本
写完脚本后点击保存,以后基本就是一劳永逸,不须要再去关注写完文章的后续操做~~
在本地编写文章后,推送到github,点击查看Jenkins的github hook输出记录,能够发现已经在构建了,只要你的shell脚本写的对,那就能直接观察到服务器上的博客内容成功更新~~
在webhooks上弄了好久,一开始在github的项目里配置好钩子,而后想直接按照第二条参考资料中设置,直接覆盖全部钩子,后来提示403访问错误
因而就参考了第一条和第三条参考资料,配置了person access token,在构建中选择了secret text才算成功配置好钩子~~
PS: 这样会将本身的md文件暴露在公共github中,实际上是不妥的,比较建议是本地打包,而后将生成好的界面拷贝到本身的服务器,具体能够看下第一条参考资料。(其实就是看你shell脚本怎么写啦✧(≖ ◡ ≖✿)嘿嘿)
但愿各位帮忙点个star,给我加个小星星✨