継続的インテグレーション:CircleCI vs Travis CI vs Jenkins



カットの下に、CircleCI、Travis CI、およびJenkinsの3つの継続的インテグレーションシステムを比較する事実調査記事の翻訳があります。


CIの定義と目的


継続的インテグレーション(CI、継続的インテグレーション)は、コードの変更を頻繁に共通のリポジトリに統合し、自動アセンブリを使用してチェックするソフトウェア開発プラクティスです。


継続的インテグレーションは、ソフトウェア開発プロセスで発生する問題を特定するプロセスを加速および促進することを目的としています。 変更の定期的な統合により、検査の1回限りの範囲が減少します。 その結果、デバッグに費やす時間が短縮され、新しい機能を追加するために再配布できます。 また、コードスタイルのチェック、循環的複雑度(複雑度が低いほど、テストしやすくなります)、およびその他の種類の制御を追加することもできます。 これにより、コードのレビューが簡素化され、時間を節約し、コードの品質が向上します。


仕組み





CircleCI vsトラビスCI vsジェンキンス


継続的インテグレーションのプロセスを一般的な用語で理解し、現在人気のあるいくつかのCIプラットフォームの比較に進むことができます。各プラットフォームにはそれぞれ利点と欠点があります。 CircleCIから始めましょう。


CircleCI




機能:



CircleCIは以下と互換性があります。



CircleCIの利点:



CircleCIの欠点:



また、クラウドシステムには明らかな利点があるという事実にもかかわらず、必要な機能をいつでも削除でき、それについて何もできないという事実に備える必要があります。


トラビスci




Travis CIとCircleCIは非常に似ています


両方のシステム:



CircleCIではなくTravisCIには何がありますか?



ビルドマトリックス


language: python python: - "2.7" - "3.4" - "3.5" env: - DJANGO='django>=1.8,<1.9' - DJANGO='django>=1.9,<1.10' - DJANGO='django>=1.10,<1.11' - DJANGO='https://github.com/django/django/archive/master.tar.gz' matrix: allow_failures: - env: DJANGO='https://github.com/django/django/archive/master.tar.gz' 

ビルドマトリックスは、異なるバージョンの言語とパッケージを使用してテストを実行できるツールです。 豊富なカスタマイズ機能があります。 たとえば、一部の環境でビルドが失敗した場合、システムは警告を発行しますが、アセンブリ全体が失敗したとは見なされません(これは、パッケージの開発バージョンを使用する場合に便利です)。


トックス


他のCIプラットフォームが必要な場合は、Toxを使用してビルドマトリックスを作成できます。


 [tox] envlist = py{27,34,35}-django{18,19,110,master} [testenv] deps = py{27,34,35}: -rrequirements/test.txt django18: Django>=1.8,<1.9 django19: Django>=1.9,<1.10 django110: Django>=1.10,<1.11 djangomaster: https://github.com/django/django/archive/master.tar.gz commands = ./runtests.py [testenv:py27-djangomaster] ignore_outcome = True 

Toxは、virtualenvでパッケージを管理およびテストするためのユニバーサルコンソールツールです。 pip install toxまたはeasy_install toxを使用してインストールできます。


Travis CIの利点:



Travis CIの欠点:



ジェンキンス




機能:



Jenkinsの利点:



ジェンキンスの欠点:



おわりに


どのCIシステムを選択しますか? それはあなたのニーズとこのツールの使用目的に依存します。


CircleCIは、主なタスクが可能な限り迅速に継続的な統合を実行することである小規模プロジェクトに適しています。


Travis CIは、主にさまざまな環境でテストする必要があるオープンソースプロジェクトに推奨されます。


深刻なシステムセットアップが必要な大規模プロジェクトの場合は、ジェンキンスにアドバイスします(ジェンキンスの場合は、プラグインを使用して実行されます)。 Jenkinsではほとんど何でも変更できますが、時間がかかります。 CIチェーンをより高速に実行したい場合、Jenkinsは機能しない可能性があります。


参照:


  1. オリジナル: 継続的インテグレーション。 CircleCI vs Travis CI vsジェンキンス

Source: https://habr.com/ru/post/J332836/


All Articles