用Jenkins自动部署hexo搭建的GitHub静态博客

发表于:2018-4-24 10:37

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:laocaixw    来源:推酷

  hexo 为我们提供了一套非常方便的静态博客搭建框架,我们只需要编写文章的 MarkDown 文件即可。但是即便方便,还是会有几个繁琐的步骤:每次写一篇博客都需要执行编译命令,再将新生成的网页代码提交到 GitHub;而且,如果博客是由团队成员共同贡献,很难做到协同维护。使用 Jenkins 可以帮我们一定程度上解决这两个问题。
  一、基本思路
  Jenkins 是一套非常常用且好用的自动化构建工具,也为我们提供了很多插件。这其中会用到 GitHub 提供的 WebHook 功能,GitHub 收到一个 Push 后,会向 Jenkins 服务器发起一条 Post 请求,告诉 Jenkins 现在可以去执行部署操作了。
  二、安装 Jenkins
  Jenkins 的安装过程可以完全参考官网:Jenkins 官网,不同系统有不同的安装方法,比如 CentOS:
 
  只要按照步骤安装即可,基本上都会包含以下步骤:
  安装 Jenkins,一般安装稳定版会比较稳妥;
  安装 Java 环境,Jenkins 是需要 Java 环境的;
  启动 Jenkins 服务,设置开机自启动;
  关闭相应的防火墙;
  安装完成后,访问 http://你的服务器ip:8080/ 即可,Jenkins 默认端口是8080,有些云服务器会限制端口的访问,这时候需要在控制台修改配置,比如阿里云是这样的:
  
  安装好 Jenkins 后,第一次访问会让你输入密码,页面上会提示具体是哪个文件,用 vim 打开即可查看,比如 CentOS 默认是:/var/lib/jenkins/secrets/initialAdminPassword。
  进入后,可以创建新的用户,以后就可以使用这个用户访问 Jenkins 了。
  新建账号后,会提示安装插件,一般直接按推荐安装,如果有报错,最好点击重试,多试几次一般都会安装成功,如果实在装不上那就先跳过吧
  
  三、在服务器上安装 hexo
  在服务器上安装 hexo,是为了可以让 Jenkins 自动部署。安装方法参考之前的文章:基于hexo搭建GitHub静态博客。Linux 肯定会不一样,请自行百度/谷歌解决。为了拉/上传代码,还需要安装 Git。
  安装好 hexo 后,后面构建生成静态网站、上传网页新代码等,都要在这里做了。所以你需要做的有:
  初始化一套和你原来博客一样的配置,包括配置和主题;
  从你的 Git 上拉一份你博客网页(xxx.github.io)项目的代码,用于提交新代码;
  新建一个只存放 hexo 的 source 文件夹的库,就是 hexo 中放 md、img 等源文件的文件夹,这里暂时称它为 blog_source;
  四、配置 Jenkins 自动构建项目
  自动构建是基于上一节中新建的 blog_source 项目进行的。
  新建任务,输入任务名,选择自由风格即可:
 
  配置项目,设置 GitHub 项目地址:
  
  源码管理,这里一定要注意,设置为你的 blog_source 的 GitHub 源码 Url,否则 Jenkins 收到 GitHub 的 Post 请求的时候,是不知道你到底要执行那个任务的:
  
  构建触发器,选 GitHub hook:
  
  构建,这里就是真正的构建步骤,可以按你的需求填。我这边全部用 shell 命令执行:
  
  配置好后,点击应用即可。
  注意:如果构建的过程中提示没有权限之类的错误,请设置一下 Jenkins 用户。Jenkins 安装好后,会自动新建一个用户叫 jenkins,可以把它改为 root 用户。 CentOS 配置文件为 /etc/sysconfig/jenkins ,修改 JENKINS_USER 项为 root 即可:
  JENKINS_USER="root"
  另外,还需要配置 Jenkins 的 GitHub 插件的 hook url:
  五、 配置 Github 项目
  配置 blog_source 项目的 Webhooks ,一定要以 / 结尾:
  
  六、配置结束
  完成以上配置后,就可以试试向 blog_source push 代码了,如果 Jenkins 在构建了,就说明配置成功了,等构建完成,就可以预览你的博客了。

上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理。
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号