AppVeyorで自動デプロイを試したメモ

AppVeyorはWindowsのための継続的デリバリーシステムです.ビルド,テスト,デプロイまで行えるようです.GUIによる設定がわかりやすく,あまり迷うことはないと思います.
Continuous Integration and Deployment service for Windows developers - Appveyor
AppVeyorについては以下の記事が非常に参考になります.
AppVeyorを使ってCI環境構築してみた - 亀岡的プログラマ日記
前回(travisCI + Bintrayによる自動デプロイを試したメモ - 心鏡曼荼羅)同様glslangをデプロイしてみます.

ビルド

windowsでのビルドはcmakeを走らせた後にVisualStudioのプロジェクトファイルが生成されるのでそれを用います.ALL_BUILD.vcxprojからglslangに含まれる全てのものをビルドすることができます.
ちなみにwindowsでglslangValidatorを動かすにはVS2015のランタイムコンポーネントが必要です.
Download Visual Studio 2015 の Visual C++ 再頒布可能パッケージ from Official Microsoft Download Center

AppVeyorの準備

GitHubアカウントでログインした後はNew Projectからプロジェクトをインポートします.GitHubの他にもBitBucketなどからもインポートできるようです.
その後はSETTINGから設定を行います.どうやらymlファイルでも設定を記述できるようですが,今回はGUIから設定していきます.

Build設定

とりあえずいじる項目はBuildでしょうか.
設定は以下のような感じ.
f:id:soma_arc:20151204155125p:plain
f:id:soma_arc:20151204155132p:plain
今回はVisualStudioのプロジェクトファイルからビルドを行います.プロジェクトファイルは自動検出されますが,複数のファイルがあるとエラーが出ます.cmakeによって複数のプロジェクトファイルが生成されてしまうので,どれを用いてビルドを行うのか指定する必要があります.
また,Before build Scriptの項目からcmakeを走らせるコマンドを記載しておきます.WindowsPowerShellも使えるようですが,僕は使ったことがないのでcmdです.

Artifacts設定

成果物のアップロードはArtifactsで設定します.PATH TO ARTIFACTで指定したディレクトリ以下がzipで固められます.glslangはmake installでinstall以下に成果物がまとめられるのですが,VSのプロジェクトファイルからビルドするとそれぞれのディレクトリに成果物が分かれてしまいます.成果物それぞれを指定するのも面倒ですし,とりあえずbuildディレクトリ以下を全てアップロードするようにしてしまいました.
ちなみにルートディレクトリはC:\projects\project-name\になります.
f:id:soma_arc:20151204161449p:plain

Test設定

glslangにおけるテストスクリプトWindowsではそのまま動かないようなので動かしていません.
テストは自動検出もされるようですが,VisualStudioにおけるテストがどのように実行されるかはわからないので何もしていません.

成果物の取得

AppVeyorの実行は手動でも行うことができます.
f:id:soma_arc:20151204154551p:plain
f:id:soma_arc:20151204154648p:plain

終わり

AppVeyorはビルドからテスト,デプロイまでできるのが便利ですね.
しかし,今回はテストのスクリプトが動かせませんでした.また,本来は成果物のみを取り出したいのですが,MSBuildの結果,ばらけてしまったため,buildディレクトリ自体をアップロードするようにしてしまいました.ここら辺はきちんとした設定が必要ですね.
自分のリポジトリではないのでしょうがないのですが,全てのプラットフォームにおいて継続的デリバリーを行うには特にWindowsに気を使う必要がありますね.