2019年12月10日火曜日

[CI] Peakflow 始めました

はじめに
この記事は「CI/CD Advent Calendar 2019 - Qiita」10日目の投稿です。

おそらく、GitHub Actions など有名・話題なサービスの話が多くなるのではないか、
と予測して、とてもマイナーな CI サービスの話にしました。
そして、全くもって得るものがない内容となりましたことを報告致します。
(この時点で興味がない方はバックキー推奨)

私は趣味で CI のバッジを集めており、今回は新しい CI サービスを使ってみた。という内容です。
iutest

GitLab CI が失敗してる・・タイミング悪し)

Peakflow 始めました


というわけで、本題。
Peakflow を始めてみました。

Pricing がわかりにくいけど、同時ビルド1本なら public/private 関わらずフリーでつかえるようです。


Sign up and Settings
Sign in しようとすると権限が求められるので許可します。


つづいて、最初のプロジェクト選択画面が出てくるので、選択します。
ここではいつもどおり iutest を選択。
(iutest は自作の C++ テスティングフレームワークです)


つぎに、peak_flow.yml を追加してと出てきます。
サンプルが ruby な感じですが、before_script と script があるのがわかったので、以下のようにしました。(ドキュメントどこでしょう・・)
before_script:
  - gcc --version || true
  - clang --version || true
script:
  - make -C test -j$((`nproc`))
  - make -C test test




追加するとビルドされます。簡単ですね。



ビルド時間が早い、が・・・
GitHub Actions や Travis CI と比べると圧倒的に早いけど。
Circle CI には負けてる。。




Peakflow では -j$((`nproc`)) でビルドしてたので、nproc 比較してみました。
CInproc
Circle CI36
Cirrus CI32
GitHub Actions2
Peakflow16
Travis CI2

・・比較してみたのはいいのですが、Circle CI は -j4 にしてたので、この比較は意味ないなと気づきました。
あと、おそらくビルドする中の1つがとても時間かかってる気がするので -j オプションの数を増やしてもあんまり意味ないことに気づきました。
(これは別途課題として解決しようと思います)


じゃあもう少し深追いしようということで、これを機に↓で各 CI サービスのスペックを調べ始めました。
https://github.com/srz-zumix/ci-specs
(まだ作業中です。)

バッジ
最後はお決まりのバッジですが・・なんか no build になっちゃうんですよね。。
URL はプロジェクトの「Badges」から取れます。





最後に
うーん。。。という感じ。
なんかドキュメントもほとんど見当たらないし、(肝心の)バッジもちゃんと表示されないので、微妙ですね。。
Circle CI の代替サービスの位置づけのようですが、Circle CI 使ったほうが良さげ・・(有償プランの場合はお値段が関係してくるとは思いますが・・)

ここまでお付き合い頂きましてありがとうございました。
また、CI サービスを使ってみたらブログに書きます。ではでは。

0 件のコメント:

コメントを投稿