AppVeyorでVimプラグインリポジトリのCIを回す
AppVeyorでのVimプラグインのテストについてはid:thincaさんの記事が素晴らしくまとまっています。
Vim プラグインを Windows 環境でテストする - 永遠に未完成
しかし、上記記事だけではいくつか動かない点があったのと、 Web画面からではなくリポジトリにappveyor.ymlというファイルを追加して設定を指定する方法も見つけたので *1それについてブログに残そうと思います。
目次
- thincaさんの記事に加えて行ったこと
- Buildを無効
- CIスクリプトを登録
- appveyor.ymlで設定を指定する場合
thincaさんの記事に加えて行ったこと
Buildを無効
AppVeyorではBuild、Test、Deployという3つのフェーズがあるようですが*2、デフォルトではBuildフェーズはMS Buildが走りますが、Vimプラグインのリポジトリでは無用です。
というか*.*proj
や*.sln
なんてファイルはリポジトリのどこにも置いていないのでこれを無効にしないとエラーになってしまいます。
以下は公式ドキュメントからの引用です。
Build phase
After cloning the repository AppVeyor runs MSBuild to build project sources and package artifacts.
The following command is used:
msbuild <project> /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll"
Custom logger is required to push MSBuild warning and errors in real-time to build console. You may use this logger in your own build scripts.
<project>
is a Visual Studio project (*.*proj
) or solution (*.sln
) file. If project or solution file is not specified on project settings AppVeyor searches for the first occurence of*.sln
or*.*proj
file in the build clone directory recursively.
無効にするにはまずSettings→Buildのページに行きます。
URL:
https://ci.appveyor.com/project/<user>/<repo>/settings/build
Before
After
CIスクリプトを登録
これはid:thincaさんの記事にもありましたが、2つだけ変更点があります。
2は設定画面で行う必要があります。
Settings→Testsのページに行って、
以下の「Git clone depth」に「1」を入力して下さい。
URL:
https://ci.appveyor.com/project/<user>/<repo>/settings/tests
appveyor.ymlで設定を指定する場合
id:thincaさんの記事ではAppVeyorの設定画面で設定を変更していますが、
リポジトリのトップディレクトリにappveyor.ymlというファイルを追加して
設定を変更する方法があります。
この方がappveyor.ymlをコピペすれば
この記事を見返す事すら必要なくなりそうで便利だと思ったので、
私はこっちの方法に変えました。
Settings→Export YAMLでappveyor.ymlをエクスポートする
もしあなたがVimプラグインのリポジトリでCIを回したい訳ではない場合、
Settings→Export YAMLが良いでしょう。
ただしVimプラグイン用のappveyor.ymlとしてはvim-jp/vital.vim
という素晴らしい例があったので、私はそちらを参考にしました(次章で説明)。
vital.vimのappveyor.ymlを参考に君だけの設定ファイルを作ろう
前述した「Export YAML」でエクスポートされたappveyor.ymlでも良いのですが、
私はvital.vimのappveyor.ymlを参考にしました。
VimプラグインのCIがしたかったらとりあえずvital.vimの.travis.ymlとappveyor.yml
を見ておけばまず間違いありません。
また、設定ファイルの意味が分からない部分はgit blameして意味を探りました。
そしてappveyor.ymlが出来上がったらリポジトリにpushしましょう。
pushしたらappveyor.ymlの設定を元にCIが走ります。
どうやらWeb上の設定よりappveyor.ymlの設定が優先されるようです
(間違ってるかもしれませんので詳しく知りたい方は公式情報にあたってください)。
私は次リポジトリ作る時ハマりたくないので、
一応上記のWeb上で行った設定を全てデフォルトに戻して
再度ビルドを実行しましたが問題なく動きました。
作成したappveyor.yml
リンク先を見て下さい。
https://github.com/tyru/open-browser.vim/blob/6a8eb2572d5c8f31c141d669be94db71cfe42d9e/appveyor.yml