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

什么是TravisCI

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

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

为什么用TravisCI

github测试项目

利用 Travis CI 对 go 项目 持续集成,涉及数据库配置_第1张图片
提高效率,一次写好测试用例就完事,以后每次push到github都会自动测试,提高软件开发的效率

点击上面的build图标可以进去Travis页面看详细的构建测试情况
利用 Travis CI 对 go 项目 持续集成,涉及数据库配置_第2张图片

如何编写.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 Precise Ubuntu Trusty
Sudo-enabled 5.5.x 5.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 CI 对 go 项目 持续集成,涉及数据库配置_第3张图片

如果你在 .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设置

你可能感兴趣的:(Golang)