Travis CI是目前新兴的开源持续集成构建项目,采用yaml
格式,简洁清新独树一帜。目前大多数的github项目都已经移入到Travis CI的构建队列中。Travis-CI会同步你在GitHub上托管的项目,每当你commit
push
成功以后,就能够根据配置文件进行项目的构建发布。做为一名苦逼(qiongsuan)程序员,想本身搞点什么,又苦于如今什么都收费,因而乎,有了本篇文章,知足了广大和我同样,囊中羞涩却又按耐不住一颗躁动的心的开发者们node
以前用hexo搭建了一个博客,挂载在本身的github上,之因此选择这二者,由于他们都是开源的(其实为了免费),也所以,github域名没法在百度等搜索引擎备案,个人博客张吉成的博客主页也是毫无访问量可言T_T。
以前每次部署都是最基本的手动编译,打包,上传github,搞过一段时间的jenkins(有兴趣的朋友能够移步个人博客),因为没有本身的服务器,每次本身的电脑都要开着做为服务器,实在麻烦。后来无心间发现了Travis,功能强大且配置简单,仍是免费的,简直完美,惟一的缺点是只支持github项目。git
本文记录了配置Travis的全过程,构建步骤为:程序员
- 本地开发完成,提交代码到github仓库;
- github收到提交的更新,通知Travis;
- Travis 收到github的提交通知,进行构建;
hexo 的安装使用本文就不作介绍了,能够参考以前的文章hexo经常使用命令,hexo建立文章&文章缩略图及banner&MarkDowngithub
当咱们提交代码后执行的一系列操做都是在 .travis.yml文件中配置的;npm
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 绑定邮箱地址
此步骤是为了使travis得到对github的操做权限,如
git push
等
打开Travis CI 找到setting页面,填写对应的token名及上面步骤生成的token值,以下图:bash
细心的同窗可能会发现个人 .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
命令就能够在不用输入用户名密码的状况下进行提交。hexo
提交代码到github中测试
查看部署状况
至此,整个部署完成,赶快本身尝试一下吧!