使用Travis CI自动部署Hexo【转载修订版】

栏目: 服务器 · 发布时间: 6年前

内容简介:Travis CI 是目前新兴的开源持续集成构建项目,它与jenkins,GO的很明显的特别在于采用yaml格式,同时他是在在线的服务,不像jenkins需要你本地打架服务器,简洁清新独树一帜。目前大多数的github项目都已经移入到Travis CI的构建队列中,据说Travis CI每天运行超过4000次完整构建。对于做开源项目或者github的使用者,如果你的项目还没有加入Travis CI构建队列,那么我真的想对你说out了。而blog-source分支保存的是我的博客源代码

Travis CI 是目前新兴的开源持续集成构建项目,它与jenkins,GO的很明显的特别在于采用yaml格式,同时他是在在线的服务,不像jenkins需要你本地打架服务器,简洁清新独树一帜。目前大多数的github项目都已经移入到Travis CI的构建队列中,据说Travis CI每天运行超过4000次完整构建。对于做开源项目或者github的使用者,如果你的项目还没有加入Travis CI构建队列,那么我真的想对你说out了。

Hexo

我的博客是使用Hexo来搭建的,托管到Github提供的GithubPage服务上的

每次写完博客git push到github,然后Travis自动构建,构建完成后自动推送到Gitpage服务上

生成后的HTML文件和博客的源文件我是放到一个仓库的,只是使用了不同的分支

master:博客的静态文件,也就是hexo生成后的HTML文件,我把GithubPage服务定义在master分支,这在后台可以修改

使用Travis CI自动部署Hexo【转载修订版】

而blog-source分支保存的是我的博客源代码

使用Travis CI自动部署Hexo【转载修订版】

当然这样做有隐私问题,因为任何人都能哪的你的博客源码,当然既然是博客,所以就没有这些问题了

启用要构建的项目

首先如果你要使用Travis CI,你必须要GIthub账号(好像Travis CI只支持构建github的项目)和一个项目

使用Github账号登录Travis CI官网,如下图

使用Travis CI自动部署Hexo【转载修订版】

登录完后会进入如下界面

使用Travis CI自动部署Hexo【转载修订版】

当然如果你以前没用使用过,所以你登录完是没有上图红框内的内容的,这里是因为我在写这篇博客前已经使用了,所以会有这些内容

接下来我们点击My Repositories旁边的+,意思是添加一个要自动构建的仓库,如下图:

使用Travis CI自动部署Hexo【转载修订版】

点击后就会来到如下界面:

使用Travis CI自动部署Hexo【转载修订版】

可以看到这个界面会显示当前github账号的所以项目,如果没有显示,点击右上角的“Sync account”按钮,就可以同步过来了(ps:上次用windows电脑始终同步不过来项目,最后换成mac可以同步了,最后又换回windows也可以了,汗(⊙﹏⊙)b,不太懂,什么个情况)

居然仓库都同步过来了,那么下一步肯定是要开启你需要构建的仓库,可以看到我开启了lifengsofts.github.io这个项目,当然这个也是我就是我的博客啦

使用Travis CI自动部署Hexo【转载修订版】

开启后我们还需要进行一些配置,操作如下

使用Travis CI自动部署Hexo【转载修订版】

点击红框的那个菜单按钮,就会出现这样的下拉菜单,我们选择设置,来到这个界面,我们按照如下勾选

使用Travis CI自动部署Hexo【转载修订版】

Build only if .travis.yml is present:是只有在.travis.yml文件中配置的分支改变了才构建

Build pushes:当推送完这个分支后开始构建

到这一步, 我们已经开启了要构建的仓库,但是还有个问题就是,构建完后,我们怎么将生成的文件推送到github上呢,如果不能推送那我们就不需要倒腾一番来使用Travis CI服务了,我们要的结果就是,我们只要想github一push,他就自动构建并push静态文件到gitpages呢,那么下面要解决的就是Travis CI怎么访问github了

在Travis CI配置Github的Access Token

标题已经说得很明白了吧,我们需要在Travis上配置Access Token,这样我们就可以在他构建完后自动push到gitpgaes了,到这里肯定有人要问了,咋你把用户名密码直接写文件里呢,如果你真有这样的问题,那我只能说呵呵~,但我要告诉你的是写里面肯定是可以push成功的

在github上生成Access Token

首先我们来到github的设置界面,点击到Personal access tokens页面,点击右上角的Generate new token按钮会重新生成一个,点击后他会叫你输入密码,然后来到如下界面,给他去一个名字,下面是勾选一些权限

使用Travis CI自动部署Hexo【转载修订版】

使用Travis CI自动部署Hexo【转载修订版】 生成完后,你需要拷贝下来,只有这时候他才显示,下载进来为了安全他就不会显示了,如果忘了只能重新生成一个了,拷贝完以后我们需要到Travis CI网站配置下

Travis CI配置

配置界面还是在项目的setting里面,如下图

使用Travis CI自动部署Hexo【转载修订版】

至于为什么我们要在这里配置,我想大家肯定应该明白了,写在程序里不安全,配置到这里相当于一个环境变量,我们在构建的时候就可以引用他。

到这里我已经配置了要构建的仓库和要访问的Token,但是问题来了,他知道怎么构建,怎么生成静态文件吗,怎么push的gitpages,又push到那个仓库吗,所以这里我们还需要在源代码的仓库里创建一个.travis.yml配置文件,放到源代码的根目录,如下图

使用Travis CI自动部署Hexo【转载修订版】

其中内容如下:

language: node_js  #设置语言

node_js: stable  #设置相应的版本

cache:
    apt: true
    directories:
        - node_modules # 缓存不经常更改的内容

install:
  - npm install  #安装hexo及插件

script:
  - hexo clean  #清除
  - hexo g  #生成

after_script:
  - cd ./public
  - git init
  - git config --global user.name "alex1504"  #修改name
  - git config --global user.email "alex1504@163.com"  #修改email
  - git add ./
  - git commit -m "update"
  - git push --force --quiet "https://${Travis_Token}@${GH_REF}" blog-source:master  #GH_TOKEN是在Travis中配置token的名称

branches:
  only:
    - blog-source #只监测blog-source分支,blog-source是我的博客源码分支的名称,可根据自己情况设置
env:
  global:
    - GH_REF: github.com/alex1504/blog.git  #设置GH_REF,注意更改yourname

其中给你需要更换的又git config后面的配置信息

GH_REF的值更改为你的仓库地址

到这一步我们配置已经完成了,现在就是见证奇迹的时候了

Push文章到Github

commit文章到源码分支发现travisCI后台执行自动部署程序

使用Travis CI自动部署Hexo【转载修订版】

然后访问网站就能看到自己的新文章了,至此,你可以在github在线修改或者新增文章,几分钟后网站就重新部署了,似乎静态博客有点接近动态博客的味道了呢…

原文地址: https://blog.csdn.net/woblog/article/details/51319364


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

The Mechanics of Web Handling

The Mechanics of Web Handling

David R. Roisum

This unique book covers many aspects of web handling for manufacturing, converting, and printing. The book is applicable to any web including paper, film, foil, nonwovens, and textiles. The Mech......一起来看看 《The Mechanics of Web Handling》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具