Azure PipelinesでGithubプッシュによる自動ビルドを行うブランチを追加する

 AzureでCI/CDができるAzure Pipelinesが、OSS向けはけっこうよさげなリソースで無料利用可能との発表があったので早速触ってみた。既存のプロジェクトに、紹介ビデオを見ながら導入。
https://docs.microsoft.com/ja-jp/azure/devops/pipelines/index?view=vsts

 やってみたのはいいんだけど、master以外のブランチでもGithubへのプッシュによる自動ビルド起動に手間がかかったのでメモ。

 ドキュメントに、「YAMLにtriggerを書かなければすべてのブランチで自動ビルド実行されるよ」と。されんかったぞ。triggerで対象ブランチを書いてもだめ。設定ページで「YAMLの設定をここでオーバーライドする」とあったのでそれを切ってもだめ。結局、設定ページで一つずつ対象ブランチを追加するしかなかった。


 そういうわけで設定ページまでの行き方を残す。とりあえずmasterブランチのビルドパイプラインは、ビデオに従った手順でできているとする。

 ”Edit”を選択


 ”Trigger”を選択し、branchフィルターでビルドを行いたいブランチを追加。


 以上で任意のブランチのGithubへのプッシュで、自動ビルドが走るようになる。

2018/11/21追記
branchフィルターにワイルドカードを入れれば、それで全ブランチ対応できることを確認。
comment: 0

Azure FunctionsでGithubでCIを考えてみた

 定期実行したいジョブがあったが、ちゃんとバージョン管理をしておきたいと考えていた。バージョン管理をしないなら、VPSに入れてCRONでという方法ですぐにできたのだが。ここにAzure Functionsを使ってみたところ、実によく目的を遂げてくれたしコストも大したことなかったというハナシ。


 Azure Functionsにはバージョン管理ソフトを使ったデプロイ方法が用意されている。画面の指示に従ってポチポチとやっていく。Githubを選んだ場合にはpullするブランチも選べるようになっている。Githubフローでいけば、masterから切ったブランチでゴリゴリ開発していって、そのテストはCIサービス上でやる。テストにとおっていたら、プルリクでmasterにマージすれば、バージョン管理+CIはそれでOK。

 じっさいのところまだテストは入れていないのだが、定期実行処理はすでにAzureFunctionsに入れて運用している。RSSを取ってきてちょいと加工して、MongoDBに入れるという処理。3時間に一度の実行で、週に2円ぐらいのコスト。
 VPSを用意して、バージョン管理の仕組みを構築して、月額費用を払ってとやっていると運用で時間も金も消費していくのだが、AzureFunctionsのおかげで、最初の二日で定期実行処理のコードを書いてデプロイまでやって、あとはGithub連携がちゃんと動いていることを確認したら、週2円程度のコストで動いるものを安心して放置している。サーバレスなのでOS管理の必要もないし。やっすいしバージョン管理もできているので、いい仕組みでかなり満足している。
comment: 0

.NET Core +xUnit + MongoDBなテストをTravisCIでCIする

 .NET CoreによるMSの積極的なLinux参入。VisualStudioで.NET Coreのテストを作ろうとするならxUnitを使ったテストを選べる。これをTravisCI上でのUbuntu(trusty)で走らせるところまで持っていく。

 VisualStudioで.NET CoreのxUnitテストを作る。それをコマンドラインで走らせるところから。
 ソリューションの真下の.slnのあるディレクトリで、restoreとbuildを行う。
dotnet restore

dotnet build

 そんでテスト。テストはテストプロジェクトのあるディレクトリに移動して行う。
dotnet test



 テストが済んだことを確認したら、それをTravisCIで行えるようにする。.travis.ymlの用意。今回はMongoDBを使うのでその設定も。
.travis.yml

sudo: false
language: csharp
mono: none
dotnet: 1.0.1
dist: trusty
services:
- mongodb
addons:
apt:
sources:
- mongodb-upstart
- mongodb-3.0-precise
packages:
- mongodb-org-server
- mongodb-org-shell

install:
- dotnet restore
script:
- dotnet build
- cd FoobarTests
- dotnet test


 上記のものを利用してじっさいにTravisCIに上げてみたのが↓のプロジェクト。



https://travis-ci.org/hMatoba/Mango
comment: 0