AppVeyor + git submodule のメモ

submodule を使用してるブランチを AppVeyor で自動ビルドすると、そのままだとコケます。
ので、その解決方法のメモです。


AppVeyor は、.NET 特化の CI サービスです。

以前、@Posaune 先生が KanColleViewer の自動ビルドをやってくださいました。 しかし、最近 KanColleViewer で使用している UI ライブラリ MetroRadiance を submoudle として扱うように変更したところ、自動ビルドでコケるようになってしまいます。

cannot be found!!!

理由はご覧のとおり、ビルドに必要な MetroRadiance を submodule として clone できておらず、ビルドを開始できない状態ですね。

さて解決方法ですが、before build scripts で git submodule init と git submodule update してあげるだけです。 SETTINGS > Build から Before build script を ON にして、以下の 2 行を記述します。

これだけです。

before build script

ビルドを開始すると、ちゃんと submodule を取得してきて、MSBuild が正常に走るようになりました。

Build success!!!


VSOnline で同じことをやろうとするとなかなか大変のようですが、AppVeyor だとらくちん! この AppVeyor、ビルド前後にスクリプト挟むだけでなく、成果物の自動生成や NuGet への発行等々も割と簡単にできるようです。

自作アプリのブランド化のために用意した UI ライブラリ MetroRadiance ですが、せっかくなので NuGet で公開しようと思ったりしています。 次は @tanaka_733 先生のエントリー を見ながら AppVeyor で自動ビルド&NuGet への発行を自動化してみよう。そうしよう。


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です