Travis CI + github + hexo 自动化布置

Travis CI是如今新兴的开源延续集成构建项目,采纳
yaml花样,简约清爽标新立异。如今大多数的github项目都已移入到Travis CI的构建行列中。Travis-CI会同步你在GitHub上托管的项目,每当你
commit
push胜利以后,就能够依据设置文件举行项目的构建宣布。

作为一位苦逼(qiongsuan)程序员,想本身搞点什么,又苦于如今什么都收费,于是乎,有了本篇文章,满足了宽大和我一样,囊中羞涩却又按耐不住一颗躁动的心的开辟者们

之前用hexo搭建了一个博客,挂载在本身的github上,之所以挑选这两者,因为他们都是开源的(着实为了免费),也因而,github域名没法在百度等搜索引擎备案,我的博客张吉成的博客主页也是毫无访问量可言T_T。
之前每次布置都是最基本的手动编译,打包,上传github,搞过一段时间的jenkins(有兴致的朋侪能够移步我的博客),因为没有本身的服务器,每次本身的电脑都要开着作为服务器,着实贫苦。厥后无意间发明了Travis,功能强大且设置简朴,照样免费的,几乎圆满,唯一的瑕玷是只支撑github项目。

本文记录了设置Travis的全过程,构建步骤为:

  1. 当地开辟完成,提交代码到github堆栈;
  2. github收到提交的更新,关照Travis;
  3. Travis 收到github的提交关照,举行构建;

hexo 的装置运用本文就不做引见了,能够参考之前的文章hexo常用敕令,hexo建立文章&文章缩略图及banner&MarkDown

注册设置 Travis

  1. 翻开Travis CI官网,举行注册,这里就不做太多赘述,引荐用github账户注册;

《Travis CI + github + hexo 自动化布置》

  1. 绑定你的github账户,此时Travis会同步你的github堆栈,将你要监听的github堆栈名选中,此时Travis会监听该堆栈的push操纵,并实行指定的剧本文件;

《Travis CI + github + hexo 自动化布置》

增加 .travis.yml

当我们提交代码后实行的一系列操纵都是在 .travis.yml文件中设置的;

language: node_js  #设置语言
node_js: stable  #设置相应的版本
cache:
    apt: true
    directories:
        - node_modules # 缓存不经常变动的内容
install:
  # 实行装置操纵
  ...
script:
  # 最先布置
  ...
after_script:
  # 布置后操纵
  ...
branches:
  # 设置监听的分支
  only:
    - master #只监测master分支,master是我的博客源码分支的名称,可根据本身情况设置
env:
  # 环境变量设置
  global:
    - GH_REF: github.com/***/blog.git #设置GH_REF,注重变动***

更细致的参数设置能够参考官网
以下是我的设置信息:

language: node_js  #设置语言

node_js: stable  #设置相应的版本

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

before_install:
  - echo 装置hexo相干环境...

install:
  # - npm install -g cnpm --registry=https://registry.npm.taobao.org
  - cnpm install

before_script:
  - echo 正在清空缓存静态文件...
  - hexo clean                      # 消灭缓存静态文件
  - echo 正在天生静态文件...
  - hexo g                          # 天生静态文件
  - cd ./public
  - ls -l

script:
  - echo 最先布置...
  - git init
  - git config --global user.name "${GH_username}"                          # 修正name
  - git config --global user.email "${GH_useremail}"                        # 修正email
  - git add ./
  - git commit -m "update"
  - git push --force --quiet "https://${GH_TOKEN}@${GH_REF}" master:master  # GH_TOKEN是在Travis中设置token的名称

after_script:
  - echo 布置完成!

branches:
  only:
    - master                                                                # 只监测master分支,master是我的博客源码分支的名称,可根据本身情况设置
env:
  global:
    - GH_REF: github.com/<prourl>                                           # 设置 github 项目堆栈地点
    - GH_username: <yourname>                                               # 设置 github 用户名           
    - GH_useremail: <youremail>                                             # 设置 github 绑定邮箱地点

天生github access Token 并 设置到 Travis

此步骤是为了使travis取得对github的操纵权限,如
git push

天生github access Token

《Travis CI + github + hexo 自动化布置》

  1. 如上图所示,上岸github并翻开该页面,并新建token

《Travis CI + github + hexo 自动化布置》

  1. 如上图举行对应操纵,天生token,注重token只显示一次,要保留好备用。

设置 access token 到 Travis

翻开Travis CI 找到setting页面,填写对应的token名及上面步骤天生的token值,以下图:

《Travis CI + github + hexo 自动化布置》

仔细的同砚可能会发明我的 .travis.yml 文件中有下面如许一段设置

after_script:
  - echo 最先布置...
  - cd ./public
  - git init
  - git config --global user.name "yourname"  #修正name
  - git config --global user.email "youremail"  #修正email
  - git add ./
  - git commit -m "update"
  - git push --force --quiet "https://${GH_TOKEN}@${GH_REF}" master:master  #GH_TOKEN是在Travis中设置token的名称
  - echo 布置完成!
branches:
  only:
    - master #只监测master分支,master是我的博客源码分支的名称,可根据本身情况设置
env:
  global:
    - GH_REF: github.com/yourname/bolg.git #设置GH_REF,注重变动yourname

其中有两个变量,GH_REF是在env中设置的,而GH_TOKEN则是我们刚刚在设置中增加的github token,此时实行git push --force --quiet "https://${GH_TOKEN}@${GH_REF}" master:master敕令就能够在不必输入用户名暗码的状况下举行提交。

测试

提交代码到github中

《Travis CI + github + hexo 自动化布置》

检察布置状况

《Travis CI + github + hexo 自动化布置》

《Travis CI + github + hexo 自动化布置》

至此,全部布置完成,连忙本身尝试一下吧!

    原文作者:张吉成
    原文地址: https://segmentfault.com/a/1190000017909815
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞