submodule を使用してるブランチを AppVeyor で自動ビルドすると、そのままだとコケます。
ので、その解決方法のメモです。
AppVeyor は、.NET 特化の CI サービスです。
以前、@Posaune 先生が KanColleViewer の自動ビルドをやってくださいました。
しかし、最近 KanColleViewer で使用している UI ライブラリ MetroRadiance を submoudle として扱うように変更したところ、自動ビルドでコケるようになってしまいます。
理由はご覧のとおり、ビルドに必要な MetroRadiance を submodule として clone できておらず、ビルドを開始できない状態ですね。
さて解決方法ですが、before build scripts で git submodule init と git submodule update してあげるだけです。
SETTINGS > Build から Before build script を ON にして、以下の 2 行を記述します。
1 2 |
git submodule init git submodule update |
これだけです。
ビルドを開始すると、ちゃんと submodule を取得してきて、MSBuild が正常に走るようになりました。
VSOnline で同じことをやろうとするとなかなか大変のようですが、AppVeyor だとらくちん!
この AppVeyor、ビルド前後にスクリプト挟むだけでなく、成果物の自動生成や NuGet への発行等々も割と簡単にできるようです。
自作アプリのブランド化のために用意した UI ライブラリ MetroRadiance ですが、せっかくなので NuGet で公開しようと思ったりしています。
次は @tanaka_733 先生のエントリー を見ながら AppVeyor で自動ビルド&NuGet への発行を自動化してみよう。そうしよう。