Humanity

Edit the world by your favorite way

AppVeyor で Go のバージョンを固定する方法

基本的に Go アプリのテストは以下を参考にしたら概ねうまく言ってたんだけど、 (最新じゃなく)バージョン固定してる場合に問題となったため書いておく。

blog.markvincze.com

起こった問題

最近 AppVeyor の Go のバージョンが上がって Go 1.10 をデフォルトで使うようになった。 上記記事の設定だと GOROOT の定義が抜けてるために以下のようなエラーが出るようになった。

compile: version "go1.10" does not match go tool version "go1.9.4"

対応策

GOROOT 設定すればいいだけ。 今開発してる Volt というツールでは Go 1.9 でテストしたかったので以下のように指定した。 他のバージョンまたはアーキテクチャでテストしたい場合は C:\go19 じゃなく別のパスにする必要がある

volt/.appveyor.yml at feabe7feeecf2bddda135cc7e43cc188ed781d81 · vim-volt/volt · GitHub

差分は見る必要ないと思うけど一応こんな対応をした。

[AppVeyor] Fix go version mismatch by tyru · Pull Request #204 · vim-volt/volt · GitHub

解説

Vim プラグインのパッケージマネージャなので Vim のインストールとか色々書いてあるけど、 以下の記述だけ参考にすればいい。

  • GOPATH の設定
  • GOROOT の設定
  • PATH の設定
    • set PATH=%GOPATH%\bin;%GOROOT%\bin;%PATH%

後は go build やら go test するだけ。 go build はビルドが通る事を確認するためのもの。 go test はテストするためのもの。 詳しくは上の設定見てください。

どうでもいいけどビルドが通ることを確認するなら Build configuration | AppVeyor を使った方がいい気がする。 まぁそれは後で。

参考リンク