新しい CI サービスを見つけたので、早速使ってみました。
今回使ったのは Cirrus CI です。
Cirrus CI の特徴は Github App であること、そしてシンプルかつ Windows にも対応しています(OS X も今後対応するようです)
また、気になる Pricing も OSS であれば無料です。
はじめる
Cirrus CI は他の CI サービスと異なり Github App で提供されているため Github 専用です。使う場合も、Marketplace からインストールして開始します。
https://github.com/apps/cirrus-ci
Marketplace にアクセスしたら、「Install」ボタンを押します。
権限の確認画面が出ますので、自分のリポジトリ全部に権限を与えるか、一部のリポジトリのみに与えるか選択します。使い方にあったほうを選択したら、「Install」ボタンを押してください。
インストールはこれだけです。
完了すると「Quick Start」のページにジャンプします。
(ドキュメントは他のサービスと比べると少ない印象がありますが、シンプルな作りだったので十分でしたし、yml フォーマットも理解しやすかったです)
タスクを作成
Cirrus CI も多くの CI サービスと同様に yml ファイルをリポジトリに配置して、その記述に沿って CI が実行されます。yml のフォーマットは公式ドキュメントに説明があります。
iutest では以下のようなタスクを作成しました。(コメント足してます)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# コンテナの指定はタスクごとに指定可能、グローバルデフォルトは以下のように書く | |
#container: | |
# 指定できる imgae はこちらを参照 (https://cirrus-ci.org/guide/supported-computing-services/#community-cluster) | |
# k8s を覚えたら追記 | |
# image: node:latest | |
# cpu: 4 | |
# memory: 12 | |
# task(他の CI サービスでいうとジョブとか) | |
# task の前に好きな名前をつけられる、コミットステータスに表示される名称がこれになる | |
cirrus_gcc_test_task: | |
# コンテナ指定 | |
container: | |
image: gcc:latest | |
# マトリックスも組める | |
# (コンテナのマトリックスも組める https://cirrus-ci.org/guide/writing-tasks/#matrix-modification) | |
env: | |
matrix: | |
STDFLAG: -std=c++14 | |
STDFLAG: -std=c++17 | |
#STDFLAG: -std=c++2a | |
# ***script に実行する処理を書く (https://cirrus-ci.org/guide/writing-tasks/#script-instruction) | |
# script の前には好きな名前をつけられる | |
test_script: cd test && make -j4 showcxxversion default && make test | |
#cirrus_use_gtest_task: | |
# env: | |
# USE_GTEST: 1 | |
# container: | |
# image: srzzumix/googletest:latest | |
# test_script: cd test && make -j4 showcxxversion default && make test |
フォーマットはシンプルで、基本的には task と script を作成する感じです。
もちろん、マトリックスや、タスクの依存関係などを組みこともでき、メインの CI サービスとして使っていける機能が揃っています。
.cirrus.yml を push する
作成した .cirrus.yml を push するとタスクが実行されます。タスクの状態は Github の Commit Status に表示されます。
Details から詳細ページにジャンプできます。
そちらでビルドログが確認できますので、失敗した場合はそちらを確認する感じ。
バッジを付ける
最後に、CI サービスお約束のバッジを付けていきます。バッジの付け方は以下のページに説明があります。
https://cirrus-ci.org/guide/writing-tasks/#embedded-badges
iutest の場合は
1 |
最後に
たまたま Cirrus CI のことを発見して使ってみましたが、躓くところもなくすんなりと導入ができました。今まで多くの CI サービスを使ってきたこともあってか、yml ファイルの記述が理解しやすかったように感じました。
また、今回は使用しませんでしたが Windows のワーカーも使えるとのことですし、OS X も今後対応予定なので複数 OS のテストが1つのサービスでできるようになる日も近そうです。
Travis CI や Circle CI で Linux/OS X、AppVeyor で WIndows の CI を回している方は、お引越しを検討してみてはいかがでしょうか。
今回は以上です。では。
0 件のコメント:
コメントを投稿