利用 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 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.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設置

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章