今日の朝にVSTSがAzure DevOpsに改名し、OSS向けのビルド枠が時間無制限ビルドになったと聞いてさっそく試してみました。
値段とかそのあたりのことはここに書いてます。
そこで、今回CIビルドを試すのはこないだ作ったばかりのSharedPropertyにします。ちょうどテストコード書いてあるしね。
Github Marketplaceから登録
GithubのツールバーのとこにあるMarketplaceを選択します。
出てきた画面でAzureと検索するとそれっぽいのが出てくるのでそれをクリックしてください。
するとAzure Pipelinesのページに行くのでSet up a planを選択します。
選択したらスクロールされるので、Freeを選択しつつInstall it for freeと選択してください。publicなら並列10タスクまで無制限にビルドさせてやるぜ!って書いてたりします。
選択したら最後の確認画面になります。
先ほどの画面を進んでいくとAzure DevOpsのほうで対象となるリポジトリを選択する画面に出てきますので、今回はSharedPropertyを選択しました。無料なのでAll repositoriesを選択してもよかったのですが、使わないものを登録しても意味がないので今回は1つだけです。
次にAzure DevOpsでのプロジェクトを選べと出てくるので、新しく作成することにしました。
そしたらそれっぽい画面になるので、今回使うSharedPropertyリポジトリを選択しましょう。
リポジトリを選択したら、おすすめのテンプレートが表示されます。 この段階で自分はお勧めにしたがってしまいましたがそれが罠でした……(まぁ最初はお勧めでいいと思います)
次にAzure pipelineの設定ファイル(テンプレ)が登場するので、脳死でSave and runを押しましょう。
設定ファイルをブランチにcommitする際のメッセージとか選べるらしいですが、今回は脳死でSave and run。
押したら、やっとそれっぽい画面になったので気ままに待ちましょう。
UWPで.NET Standard 2.0を使うときはWindowsコンテナーじゃないといけなかった
はい。。。
さきほどのデフォルトのテンプレはVS2017-Win2016というVisual Studio 2017 on Windows Server 2016のイメージでした。Win2016が悪いと思い、VS2017-Win2017にしてもダメ。。。。
結局正解はwin1803でした。。。。
そういえばテストプロジェクトは.NET Coreだった
UWPでも動くようにしていろいろと試すもXamarin.Androidのビルドで失敗したり、テストプロジェクトのみのビルドにしても失敗したりと、なんでだろうなぁと考えてたらそもそも.NET Frameworkではなく.NET Coreでした。
というわけで、Githubのリポジトリ上でymlの編集祭り(そしてそのCIビルドが失敗する祭り)を開催することに。
最終的にできたのはこちらです。 .NET CoreやXamarinの混合ソリューションだとビルド設定が大変です。1Pipeline 1Buildに抑えておいた方がいいかもしれません。
そして、無事成功したビルド。
すばらしい👏👏👏
せっかくなのでバッジを付けてみよう
…アイコンのStatus badgeのとこからバッジのURLを表示することができます。
ご丁寧にマークダウン形式も用意されてるので、これをREADMEにコピペしちゃいましょう。
完成👏👏
ちょっと設定に躓きましたが、OSSなら時間無制限にビルドできるのは非常に魅力的なので、Azure DevOps(今回はPipelineでしたが)積極的に使っていこうと思いますm(__)m