前提
- GitHubにGoのソースコードがある
- coveralls登録済み
- CircleCI登録済み
GitHubでの作業
今回はCircleCI側のWebコンソール上で設定するので、circle.yml
は不要です。
Coverallsでの作業
※特筆すべきことは無いので省略
CircleCIでの作業
Project Settings
を開きます
Environment variables
COVERALLS_TOKEN = XXXXXXXXXX
※XXXXXXXXXXはcoverallsで登録したTOKEN
Test commands
今回の例は、github.com/kyokomi/go-docomo
プロジェクトのgithub.com/kyokomi/go-docomo/docomo
をtestしたいので以下のような設定になる。(最後の行の./docomo
)
go get github.com/axw/gocov/gocov
go get github.com/mattn/goveralls
mkdir -p $HOME/.go_workspace/src/_/home/ubuntu/
ln -s $HOME/$CIRCLE_PROJECT_REPONAME $HOME/.go_workspace/src/_/home/ubuntu/
goveralls -v -service=circle-ci -repotoken $COVERALLS_TOKEN ./docomo
$CIRCLE_PROJECT_REPONAME
はCircleCIでデフォルトで登録されてる環境変数。
今回のプロジェクト(github.com/kyokomi/go-docomo
)の場合、go-docomo
が取得できる。
シンボリック芸でバッドノウハウっぽいけど...一応これでgoverallsが通る。
※2015/02/22追記: シンボリックリンク芸は、リポジトリのrootディレクトリにGoのソースがなくてCircleCIがGoプロジェクトとして認識しない場合のみ必要
Build実行
無事にbuild成功しました。
おわり
CircleCIは$enable ssh
を有効にするとbuild時にsshでサーバーに入って色々見たりコマンド打ったりできるので、大抵なんとかなる感じが良いですね。