利用 Travis CI 对 go 项目 持续集成,涉及数据库配置

什么是TravisCI

Travis 提供了Continuous integration即持续集成的功能,只要代码有变更,就自动运行构建和测试,反馈运行结果。

Travis 可以绑定 Github 上面的项目,只要有新的代码更改提交,就会自动抓取,然后,构建一个运行环境,执行测试代码。

为什么用TravisCI

github测试项目

这里写图片描述
提高效率,一次写好测试用例就完事,以后每次push到github都会自动测试,提高软件开发的效率

点击上面的build图标可以进去Travis页面看详细的构建测试情况
这里写图片描述

如何编写.travis.yml文件

###Travis使用前的准备参考阮一峰博客

我这里说一下.travis.yml文件的编写,关于go与数据库的基本配置

language:    # 指明使用的语言
  - go 

go:          # 语言版本号
  - "1.x"    # x表示对应前缀的最新版本
  - "1.10"   # 注意,需要 "1.10" 版本的时候必须表示为字符串形式,如果写成 1.10 则会使用 1.1 版本
  - "1.10.x"
  - master   # 默认使用最新版本

script:      # 执行的脚步,但是go默认会执行下面的这些命令的,所以可以不用写
  - go get -v
  - go test ./...

使用提供的数据库服务

mysql绑定了127.0.0.1和3306端口,连接需要认证,用户名可以用travis或者root,密码都是空,最好用root因为权限高点

service:
  - mysql
before_install:	# 注意需要先创建一个与你程序运行所需要的数据库名
  - mysql -e 'create database yourDB;'

修改数据库密码

很简单=。=就粘贴下面一句代码,把your_pwd替换成你的密码就可以,用户名还是root

before_script:
  - echo "USE mysql;\nUPDATE user SET password=PASSWORD('your_pwd') WHERE user='root';\nFLUSH PRIVILEGES;\n" | mysql -u root

关于数据库版本

虚拟环境类型Ubuntu PreciseUbuntu Trusty
Sudo-enabled5.5.x5.6.x
Container-based-5.6.x

如果需要使用5.7版本,需要在sudo-enabled Trusty环境中,然后如下设置

addons:
  apt:
    sources:
      - mysql-5.7-trusty
    packages:
      - mysql-server
      - mysql-client
      
before_install:
  - sudo service mysql restart
  - mysql -e 'create database yourDB;'

关于虚拟环境类型的选择

因为Travis的每一个build都是运行在虚拟环境上,要么是虚拟机要么是容器,系统有Ubuntu和OS X,除了容器类型没有sudo权限,其他类型都有

我建议使用第二列的Ubuntu Trusty - Container-based,虽然不能执行sudo权限,但是构建速度快

这里写图片描述

如果你在 .travis.yml 文件使用了下面一些关键字,会默认为你选择相应的虚拟环境

导致docker环境

services: docker
或者在构建脚步中有使用docker相关命令

导致 sudo-enabled linux (Ubuntu Trusty) 环境

sudo: required 或者 sudo: true   
或者在构建脚步中有使用sudo相关命令

导致OS X

os: osx
language: objective-c
或者使用其他一些macOS相关的语言或者命令

如果都没有声明上面的字段,默认提供 container-based linux (Ubunty Trusty) 环境


参考
官方文档-TravisCI 环境介绍
官方文档-TravisCI 关于database设置

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值