AppVeyor で Go のバージョンを固定する方法
基本的に Go アプリのテストは以下を参考にしたら概ねうまく言ってたんだけど、 (最新じゃなく)バージョン固定してる場合に問題となったため書いておく。
起こった問題
最近 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 を使った方がいい気がする。 まぁそれは後で。