Go3 Advent Calendar 2017 - Qiita
23日目
GoのアプリケーションのリポジトリをBitBucketに作っているので、WerckerでのCIを試した。
シンプルで綺麗なパスでアプリケーションを作っている場合、 多分Werckerにてアプリケーションを登録する際に表示されるサンプルそのままのwercker.ymlでそのまま動くのではないかと思う。
ただ、今回のアプリケーションはパッケージ管理にglideを使っているのでそのままでは動かない。 ちなみにフォルダ構成としては、下記に降りたところにアプリケーションが入ってる。
/src/myapp
Dockerコンテナ内では上記のルートをGOPATHとしている。ちょっと変な構成。
とりあえず動くところまでを調整してみた。 とりあえずなので変な感じになっている。
box: golang build: steps: - setup-go-workspace - script: name: install glide code: | curl https://glide.sh/get | sh # Gets the dependencies - script: name: glide install cwd: src/crawler/ code: | glide install # Build the project - script: name: go build cwd: src/crawler/ code: | export GOPATH=/go/src/bitbucket.org/myaccount/myapp go build # Test the project - script: name: go test cwd: src/crawler/ code: | export GOPATH=/go/src/bitbucket.org/myaccount/myapp go test $(glide novendor)
細かいところを補足していくと、まずglideのドキュメント通りにインストール
curl https://glide.sh/get | sh
最初に書いたとおりパスがちょっと違うので合わせる。
cwd: src/crawler/ code: | glide install
パッケージの位置がずれて読み込めていなかったので、exportでGOPATHを指定している。 (ymlの設定であるかも?)
プロジェクトの環境変数を設定すると今度はglideのインストールとかがうまくいかなくなるのでここで指定している。
cwd: src/crawler/ code: | export GOPATH=/go/src/bitbucket.org/myaccount/myapp go build
こんな感じで通った。
あとはパイプラインでデプロイの処理などと繋げれば楽だと思う。