ちょっとあまり更新していないのですが、コミュニティサイトのビルドとデプロイをVSTSでやっていたわけですよ。で、サイトそのものを更新してない(技術的には.NET 2.0初期レベル)ので、VSTSに移行して、最初にデプロイしてからまったく更新していませんでした。
今回、ちょっと事情で二年ぶりにサイト移行しなくてはならなくなって、ビルド定義をcloneしたところ…エラーでまくり(笑)。
上が新しいサイトにデプロイするためのビルド定義、下が二年少し前にビルド(とデプロイ)した時のビルド定義です。この時はまだリリース機能がなかったので、ビルド定義内でデプロイも書いています。
赤棒グラフが山盛り出ていることからわかる通り、再度デプロイできるようにするまでに結構時間がかかりました。
2年前のビルド&デプロイのためのビルド定義がこちら。簡単ですね。VSでビルドして、テスト実行してそのままAzure Web Appにデプロイしています。しかもこのタスク、非推奨になってますw。動かしていないのがよくわかりますね。
で、こちらがどうにかこうにかビルドできるようにしたビルド定義。非推奨タスクを残しているのは、ちょっと比較のためです。
- NuGetリストアをVS内での実行が非推奨になったので、タスク追加
- SonarQubeで静的解析するようにした(これは別の仮想マシンを使ってます)
- テストが謎の失敗するようになったので、タスクを一時無効化
- Azureデプロイタスクを結局やめ(リリース機能にします)。
- artifactsをちゃんと保存するように
- まだないですが、SQL Databaseのdacpacもデプロイ追加
- copy & publishタスクがなくなったので、artifactsをstagingにコピーするタスクを追加
いや、当時はぎりぎりのスケジュールで(ってそれは今もなんですが)移行していたので、ほんとに適当にやっていたのですが、今見ると雑に作った&2年たつと変わったなぁ、と思わされます。ちなみにソースは一切変えていません。
クラウドサービスは本当に日進月歩なので、この手の機能はリリースしないまでも定期的にビルドなりしてパイプラインがちゃんと動くかどうか確認したいところです。
皆様も放置したビルドパイプラインありませんか?