2017年1月20日金曜日

[MCPE/MCPEの開発を楽にする!]プラグインを自動リリース/テストしよう! #1 CIとは何ぞや?

どうも、はにおかさいです。多くのMCPE/MCPC開発者さんが、プラグイン等を手動でビルドしていると思いますが、それをCIに自動でやらせることができます。そこで、CIの使い方について解説したいと思います。

そもそもCIって何ぞや?
CIとは、continuous integrationの略、日本語にすると継続的インテグレーションということです。ビルドやテストを自動的にやってくれるものです。
日本のminecraft開発界ではあまり普及してないように感じます。あったほうが便利ですが知らない方や使いこなせない方が多いようです。

どのようなCIがあるの?
ciは星の数ほどあります。選りすぐりのciをご紹介します。

CircleCI
DockerベースのCI。GoやjavaやPHPやNode.jsが使えます。成果物のダウンロードができます。プライベートリポジトリも無料でビルドできます。ただし、ビルド速度は遅め。BlueLightでのCIの一つとして採用しています。エラー表示が見やすいのでエラーチェックに使っています。

Appveyor
C#のビルドができるCIです。速度も速いですし、非常に使いやすい。MiNETでの開発に使っています。成果物のダウンロードができます。

Jenkins
自前でサーバーをインストールして使うタイプのciです。スペックも自由自在ですし、設定も色々できますが、運用するにはlinuxの知識が必要です。成果物の公開も自由にできますし、mavenリポジトリも構築できるので、色々なプロジェクトで使っています。

Poggit 私の解説
これは、PocketMineのプラグインビルドに特化したものです。プラグインの配布を全自動でできますが、エラーの分析には使い物になりません。

GitlabCI
プライベートリポジトリも1つあたり10GB、GitLFSも無料で使えます。それのCIです。あまり速度は速くなく、成果物のダウンロードもそこまでいいとは思いませんがプライベートリポジトリは美味しいです。

まとめ
少しにはなりますが、CIを紹介しました。自分は 成果物をダウンロードできるか 簡単にビルドできるか 自分のメンテナンスはめんどくさくないか で選んでいます。
使えば自分の作業が減ることがわかるでしょう。機械ができることは機械にさせる、これが大切だと思います。ぜひCIのある生活をはじめてみましょう!

参考
https://ja.wikipedia.org/wiki/%E7%B6%99%E7%B6%9A%E7%9A%84%E3%82%A4%E3%83%B3%E3%83%86%E3%82%B0%E3%83%AC%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3

0 件のコメント:

コメントを投稿

PocketMineの旧プラグインAPI対応方法

pmmp公式のプラグインAPIが変更となりました。 が、多くのプラグインは新APIに対応していません。 あえて新APIにプラグインを書き直す理由もわからないので、スクリプトを組みました。 Error: Declaration of DevTools\DevTools::...