Travis CI + github + hexo 自动化部署

54次阅读

共计 2749 个字符,预计需要花费 7 分钟才能阅读完成。

Travis CI 是目前新兴的开源持续集成构建项目,采用 yaml 格式,简洁清新独树一帜。目前大多数的 github 项目都已经移入到 Travis CI 的构建队列中。Travis-CI 会同步你在 GitHub 上托管的项目,每当你 commit push 成功之后,就可以根据配置文件进行项目的构建发布。作为一名苦逼(qiongsuan)程序员,想自己搞点什么,又苦于现在什么都收费,于是乎,有了本篇文章,满足了广大和我一样,囊中羞涩却又按耐不住一颗躁动的心的开发者们

之前用 hexo 搭建了一个博客,挂载在自己的 github 上,之所以选择这两者,因为他们都是开源的(其实为了免费),也因此,github 域名无法在百度等搜索引擎备案,我的博客张吉成的博客主页也是毫无访问量可言 T_T。之前每次部署都是最基本的手动编译,打包,上传 github,搞过一段时间的 jenkins(有兴趣的朋友可以移步我的博客),由于没有自己的服务器,每次自己的电脑都要开着作为服务器,实在麻烦。后来无意间发现了 Travis,功能强大且配置简单,还是免费的,简直完美,唯一的缺点是只支持 github 项目。
本文记录了配置 Travis 的全过程,构建步骤为:

本地开发完成,提交代码到 github 仓库;
github 收到提交的更新,通知 Travis;
Travis 收到 github 的提交通知,进行构建;

hexo 的安装使用本文就不做介绍了,可以参考之前的文章 hexo 常用命令,hexo 创建文章 & 文章缩略图及 banner&MarkDown
注册配置 Travis
打开 Travis CI 官网,进行注册,这里就不做太多赘述,推荐用 github 账户注册;

绑定你的 github 账户,此时 Travis 会同步你的 github 仓库,将你要监听的 github 仓库名选中,此时 Travis 会监听该仓库的 push 操作,并执行指定的脚本文件;

添加 .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

如上图所示,登陆 github 并打开该页面,并新建 token

如上图进行对应操作,生成 token,注意 token 只显示一次,要保存好备用。
配置 access token 到 Travis
打开 Travis CI 找到 setting 页面,填写对应的 token 名及上面步骤生成的 token 值,如下图:

细心的同学可能会发现我的 .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 中

查看部署情况

至此,整个部署完成,赶快自己尝试一下吧!

正文完
 0