码迷,mamicode.com
首页 > 其他好文 > 详细

Travis CI用来持续集成你的项目

时间:2017-05-08 14:46:11      阅读:209      评论:0      收藏:0      [点我收藏+]

标签:windows   version   根目录   linux   项目   

这里持续集成基于GitHub搭建的博客为项目

工具:

zqz@ubuntu:~$ node --versionv4.2.6zqz@ubuntu:~$ git --version
git version 2.7.4zqz@ubuntu:~$ travis --version1.8.4

Travis CI简介


Travis CI 是目前新兴的开源持续集成构建项目,它与jenkins,GO的很明显的特别在于采用yaml格式,简洁清新独树一帜。目前大多数的github项目都已经移入到Travis CI的构建队列中,据说Travis CI每天运行超过4000次完整构建。

注意:开始安装一大堆东西之前,你需要去Travis CI上注册一个账号。(一般都会使用github账号)

Linux下的安装(强烈建议不要使用windows来CI)

Deploy Key


生成ssh密钥用于跟仓库通信

ssh-keygen -t rsa -C "youremail@example.com"

成功后,将.pub结尾的文件添加到github仓库中
技术分享

最后将id_rsa文件复制到我们项目的根目录,这样便于生成密钥。

cp /home/zqz/.ssh_ci/id_rsa /home/zqz/study/zhaoqize.github.io

安装并登陆travis


安装

gem install travis

安装成功后,登陆travis

travis login --auto

登陆成功:

Successfully logged in as zhaoqize!

接着,登陆网页版,设置仓库。
技术分享

点击仓库名称左边的齿轮,设置开启下面三个。
技术分享

加密


在加密之前我们先在项目跟目录下新建一个.travis.yml文件。

加密的就是第一步生成的密钥id_rsa,由于前面我们将密钥复制到了项目目录,所以现在这里有id_rsa文件。

//进入项目目录cd study/study/zhaoqize.github.io //进行加密travis encrypt-file ssh_key --add

加密成功:

zqz@ubuntu:~/study/zhaoqize.github.io$ travis encrypt-file id_rsa --add
Detected repository as zhaoqize/blog, is this correct? |yes|    encrypting id_rsa for zhaoqize/blog
storing result as id_rsa.encstoring secure env variables for decryption

Make sure to add id_rsa.enc to the git repository.
Make sure not to add id_rsa to the git repository.
Commit all changes to your .travis.yml.

这时候看最后一句**Commit all changes to your .travis.yml.

我们新建的文件一句发生了变化,多了一句:(私人内容使用XXX代替)

- openssl aes-256-cbc -K $encrypted_XXXXXXXX_key -iv $encrypted_XXXXXXXX_iv -in id_rsa.enc -out ~/.ssh/id_rsa -d

再次查看我们的travis ci网页,发现多了一些变化
技术分享

.travis文件夹


删除我们之前复制到根目录的id_rsa文件

在项目根目录下新建一个.travis的文件夹

将生成的.enc文件移动至.travis文件

ssh_config


在.travis下建立ssh_config文件。

并填写如下信息:

Host github.com
  User git
  StrictHostKeyChecking no
  IdentityFile ~/.ssh/id_rsa
  IdentitiesOnly yes

注意这里的~/.ssh/id_rsa的路径是根据个人设置而变化的。

.travis.yml


最后需要着重配置.travis.yml文件,以为travis ci就是按照这个文件来执行。

具体配置:

# 使用的语言
language: node_js

# 使用的nodejs版本
node_js:
 - 4.4.4# 仓库的分支
branches:
  only:
  - master

# 执行isntall前需要执行的命令
before_install:# 配置解密信息 - openssl aes-256-cbc -K $encrypted_4bba640059d8_key -iv $encrypted_4bba640059d8_iv -in .travis/id_rsa.enc -out ~/.ssh/id_rsa -d

# 改变文件权限 - chmod 600 ~/.ssh/id_rsa# 配置 ssh - eval $(ssh-agent) - ssh-add ~/.ssh/id_rsa
 - cp .travis/ssh_config ~/.ssh/config# 配置git 的个人信息 - git config --global user.name ‘zqz‘
 - git config --global user.email zqz@zhaoqize.com# 执行install
install:
 - npm install hexo-cli -g - npm install

# 执行命令脚本
script:
 - hexo clean - hexo g -d

成功


技术分享

安装与使用中遇到的问题


安装travis失败

使用sudo权限操作

zqz@ubuntu:~$ gem install travis
Fetching: ffi-1.9.14.gem (100%)
ERROR:  While executing gem ... (Gem::FilePermissionError)
    You don‘t have write permissions for the /var/lib/gems/2.3.0 directory.zqz@ubuntu:~$ sudo gem install travis
Building native extensions.  This could take a while...
...

修改travis的目录

zqz@ubuntu:~$ travis --versionbash: /usr/bin/travis: 没有那个文件或目录
zqz@ubuntu:~$ sudo ln -s /usr/local/bin/travis  /usr/bin/travis
[sudo] zqz 的密码: 
zqz@ubuntu:~$ travis --version1.8.4zqz@ubuntu:~$

生成.enc文件密钥失败

有时候会失败。这时候我们需要在后面加上一些参数

travis encrypt-file ssh_key --add -r zhaoqize/blog


Travis CI用来持续集成你的项目

标签:windows   version   根目录   linux   项目   

原文地址:http://12879490.blog.51cto.com/12869490/1923045

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!