2018年12月4日火曜日

Azure Pipelines 始めました

この記事は(ちょうど公開するタイミングで空きがあったので)
Azure DevOps Advent Calendar 2018 4日目の記事になりました。


Azure Pipelines が9月にリリースされたようですが、最近知りました。
なんと! OSS なら 10 並列・時間制限なし!!
これは組み合わせ爆発させざるをえない!!!(マテ



Sign Up
脊髄反射で SignUp しましょう。

MS アカウントでサインインして、名前決めたら完了です。


あれ?すでに Organization がありますね?


どうやら、昔作った Visual Studio Online のが残ってたみたいです。
新規作成した Organization は削除。
Overview で「組織のURL」を更新し、プロジェクトもすべて削除しました。


ともあれ、これでサインナップ完了です。

パイプラインを作る
では、パイプライン作っていきましょう。
Azure Dev Ops のダッシュボードからプロジェクト作成しても良かったのですが、 GitHub からやったほうが楽かなーと思ったのでそっちにしました。

GitHub から登録
GitHub Marketplace に Azrue Pipeline があるので、インストールします。


フリープランで Order


リポジトリを選択(全部もしくは任意のリポジトリを選べます)


Organization を選択(SignUp 時に作成したもの)
プロジェクト名は任意で(すでにあれば選択)


認証したら・・・


プロジェクトの出来上がり!


ここまでで、プロジェクト作成が完了してパイプライン作成の第一ステップのロケーション(GitHub)の選択が終わっている状態になっています。
ここから、パイプラインを設定していきます。

リポジトリの選択
つづいて、リポジトリの選択をします。今回の場合は iutest を選択します。

テンプレートの選択
Choose a template でパイプラインのテンプレートを選びます。
c++ のテンプレートがあったので、「C/C++ with GCC」を選択しました。(リポジトリの内容によってオススメが出てくるみたいですね)


YAML
テンプレートから azure-pipelines.yml が生成されます。
ルートディレクトリで make するだけですが、iutest はそれではビルドされないので、ビルドとテストの実行をするように少し書き換えました。


Save and Run2
最後に保存して、最初のビルドを実行してみましょう!
生成した azure-pipelines.yml を commit/push するので、master に入れるかブランチ切るかを選択し、(必要であればコメントも)「Save and run」ボタンを押します。


今回はブランチを作成しました。
https://github.com/srz-zumix/iutest/pull/120

はじめてのビルド
「Save and run」を押すとビルドがキューに積まれて、処理が始まります。






しばらく待つと・・・無事成功!
ここまでは簡単でしたね!


テストの集計タスクを追加してみる
まだまだ、Azure Pipelines のことで把握していないことばかりではありますが、この流れのままテストの集計までしてしまいましょう。

テストができるようになったので、テストの集計をします。
テストの集計は「タスク」になっているようなので、タスクを追加します。

Publish Test Results task - Azure Pipelines & TFS | Microsoft Docs
先程作成した azure-pipelines.yml に以下を追加します。
- task: PublishTestResults@2
  inputs:
    testResultsFiles: 'test/*.xml'
変更を最初に作ったブランチに push しましょう。


集計できました!簡単!!
さて、これで GitHub に push するとテストが実行され、結果が集計されるところまで確認できました。
(失敗すべきテストまで集計されてしまっているのは make のオプションミスです・・・)
CI をするにあたっての基本的なことができるようになったので、ここからやりたいことを組み込んでいこうと思いますが、そのへんはまた次回で・・・

バッジを付ける
次回に行く前に・・・やっぱりバッジはつけておきましょう!
バッジはパイプラインのダッシュボードページの右上メニューの中にあります。

バッジのブランチは「?branchName=develop」をつけると指定できます。
※ ビルドページの URL のブランチ指定がうまくできなかったので、方法があれば知りたいですmm

最後に
OSS プロジェクトなら 10 並列が無料で使えるのは、個人的にすごくありがたいです。
まだ、10 並列を使い切ってはないのですが、これから使っていこうと思ってます。

また、導入してしばらく経っているのですが、GitHub に push してからビルドが走るまでの時間も早いので、そこも嬉しい。
YAML の書き方は・・・ちょっと四苦八苦しながらも書いてるので、もう少しドキュメントがわかりやすいと嬉しいな、とも思いました。(圧倒的英語力不足ともいう・・・)

OS も Windows だけでなく、macOS/Linux も使えるようなです。
(最近は、この辺での優位性がなくなりつつありますが・・・)

Azure Pipelines は非常に強力なサービスなのは間違いなさそうなので、これからもお世話になると思います。よろしくお願いしますmm

今回は以上です。

0 件のコメント:

コメントを投稿