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

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

工具:

[email protected]:~$ node [email protected]:~$ git --version
git version [email protected]:~$ 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 "[email protected]"

成功后,将.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

加密成功:

[email protected]:~/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 [email protected]# 执行install
install:
 - npm install hexo-cli -g - npm install

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

成功



安装与使用中遇到的问题


安装travis失败

使用sudo权限操作

[email protected]:~$ 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 [email protected]:~$ sudo gem install travis
Building native extensions.  This could take a while...
...

修改travis的目录

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

生成.enc文件密钥失败

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

travis encrypt-file ssh_key --add -r zhaoqize/blog
时间: 2024-10-08 03:41:23

Travis CI用来持续集成你的项目的相关文章

利用Travis CI+GitHub实现持续集成和自动部署

前言 如果你手动部署过项目,一定会深感持续集成的必要性,因为手动部署实在又繁琐又耗时,虽然部署流程基本固定,依然容易出错. 如果你很熟悉持续集成,一定会同意这样的观点:"使用它已经成为一种标配". 什么是持续集成 Continuous Integration(CI) is a development practice that requires developers to integrate code into a shared repository several times a d

CI / CD /CD 持续集成 持续交付 持续部署

CI / CD /CD 持续集成 持续交付 持续部署 CI CD 是啥?干了啥? CI continuous integration 持续集成 CD continuous delivery 持续交付 CD continuous deploy 持续部署 他们干了点啥 代码自动building 测试环境和项目的自动部署 生产环境和项目的自动部署 恩恩 都是这些 和 管理工作 ** 因为是自动化的 可以在你合并代码后几分钟就开始测试 ** 流程: 用户提交代码到仓库 ->合并代码 -> 自动编译代码

CI实践_Android持续集成

之前已经实现了Android的持续集成,并在项目中应用了一段时间.恰逢现在有几分钟时间,把之前的一些零散的点滴记录和整理一下,宫有需要的朋友参考,或后续复用. 需要的准备知识:gitlab.Jenkins.各种plugins.shell等: 另外,推荐一个seafiles,相当于云存储网盘,大家可以把构建的apk包,发送至,供团队内部使用: 当然,你也可以采用ftp为team共享也可以. 一.总体的全局配置: 配置相关plugin,如果需要进行代码检测的话,也需要安装Sonar,部分配置如下:

jenkins持续集成发布php项目(不需要build)

参考: https://www.cnblogs.com/jimmy-xuli/p/9072015.html 1. 需要安装了 publish ssh插件 2.   配置publisher ssh ,下面的 Remote Directory 可以不用配置.在第3步下面去配置.如果这里配置了.相当于用户会直接进入mnt目录.下面的第3步指定的 Remote Directory会在现在的mnt目录下创建.会形成  /mnt/mnt/test/目录结构. Remote Directory不配置的话会在家

fir.im weekly - 「 持续集成 」实践教程合集

我们常看到许多团队和开发者分享他们的持续集成实践经验,本期 fir.im Weekly 收集了 iOS,Android,PHP ,NodeJS 等项目搭建持续集成的实践,以及一些国内外公司的内部持续集成系统的经验,供大家集中研究,参考借鉴. 先来看看国内外一些公司的实践经验: Continuous Deployment at Instagram Instagram 的开发团队每天保持着 30 - 50 次后端代码部署,几乎全程无人参与,完全自动化.这听起来很疯狂,但一切确实在这样运转.来这里看看

[转] 基于Gitlab CI搭建持续集成环境

[From] https://blog.csdn.net/wGL3k77y9fR1k61T1aS/article/details/78798577 前言 本文是在12月12号迅雷@赵兵在前端早读课第三期Live中提到的关于CI构建的,可能这部分在不同公司由不同的岗位负责,刚好如果你没遇到你可以看看. @赵兵,来自迅雷前端团队.是一个热爱前端技术,喜欢造轮子,爱折腾的人,也是一个奉行"懒惰使人进步"的懒人工程师. 正文从这开始- 本文简单介绍了持续集成的概念并着重介绍了如何基于 Gitl

基于Travis CI搭建Android自动打包发布工作流(支持Github Release及fir.im)

最近付费购买了Travis CI,Travis CI的收费模式很有意思,不是按项目或者用户,而是按工作进程收费,比如初级版本是$129/月,总共提供2个工作进程.在项目不多的情况下,除了用于跑单元测试外,不免想利用的更充分一些,因此抽空搭建了一套基于Travis CI的Android自动发布工作流. 未自动化前安卓开发总是避免不了这样的工作流程: 开发一些新功能,提交代码 完成一部分功能后,打包一个测试版APK 将测试版APK上传到QQ群 / 网盘 / Fir.im / 蒲公英等 在QQ群或发布

Travis CI -- 免费的集成测试环境

Travis CI,是一个专门为开源项目打造的持续集成环境.如果你有一个放在Github上的开源项目,Travis CI是一个开源完美的CI选择.在Travis CI中 可以直接用Github账号登陆,然后配置自己项目的持续集成.下面说说用Travis CI实习我自己的开源Demo Java Web项目CI的配置. 实现Java Web项目的持续集成是非常简单的,分成2个部分: 第一部分:travis ci中项目配置 在Travis CI中登录Github帐号,选择自己需要持续集成的项目,点击项

自动化运维持续集成

互联网软件的开发和发布,已经形成了一套标准流程,最重要的组成部分就是持续集成(Continuous integration,简称 CI).持续集成的目的,就是让产品可以快速迭代,同时还能保持高质量.它的核心措施是,代码集成到主干之前,必须通过自动化测试.只要有一个测试用例失败,就不能集成.讨论关注以下几点: 持续集成概念的理解.了解持续交付和持续部署.熟悉持续集成操作流程. 一.概述持续集成流程: 开发团队 -> 源代码编码(开发语言)-> 代码版本控制(Gitlab) -> Docke