これまで継続的インテグレーションシステム(CI)を使用したことがありません。私が主にMATLABでコーディングしているPythonまたはPHP。これらのどちらにもビルドステップがなく、CIがどのように私の作業に使用できるのかわかりません。大規模プロジェクトの友人会社は私に言語は問題ではないと言った。
ビルドステップがない場合、CIがどのように役立つかわかりません。 CIは単体テストを実行するテスト環境と考えることができます。何か不足していますか?
用語としての継続的統合は、2つの異なるアイデアを指します。
1つはワークフローです。つまり、チームの全員が自分のブランチで作業するのではなく、2週間のプログラミング後に変更をメインラインにマージしようとすると、その変更は(ほぼ)継続的に統合されます。これにより、問題が早期に表面化し、互換性のない変更が回避されます。ただし、そのためには、変更が「機能する」かどうかを簡単に確認できる必要があります。
これが2番目のアイデアの出番です。 CIサーバーは、変更が可能な限り迅速にテストされるクリーンな環境です。ビルドを再現できるように、クリーンな環境が必要です。一度動作すれば、常に動作するはずです。これは、「しかし、私のマシンでは機能しました」という問題を回避します。特に、CIサーバーは、ソフトウェアが異なるシステムまたは異なる構成で実行され、すべてが正常に機能することを確認する必要がある場合に役立ちます。
ビルドステップの欠如は無関係です。ただし、CIは、テストスイートがある場合にのみ意味があります。このテストスイートは自動である必要があり、失敗してはなりません。テストが失敗した場合は、適切な開発者が通知を受け取り、導入した問題を修正できるようにします(コンパイルとしてビルドがない場合でも、「ビルドを壊す」)。
このようなサーバーは、単なるテスト以上の価値があることがわかります。実際、ほとんどのCIソフトウェアは、さまざまな構成でテストを実行するのは本当に簡単ですが、あらゆる種類のジョブの管理には適しています。例えば。 「継続的」な単体テストに加えて、ナイトリービルドとして完全なテストを行うことができます。ソフトウェアは、複数のPythonバージョン、異なるライブラリバージョンでテストできます。Webサイトでデッドリンクをテストできます。静的分析、スタイルチェッカー、テストカバレッジツールなどを実行できます。コード。ドキュメントを生成できます。すべてのテストスイートに合格すると、パッケージ化プロセスが開始され、ソフトウェアをリリースする準備が整います。これは、常に展開可能な(およびデモ可能な)製品が必要なアジャイル設定で役立ちます。 。Webアプリの台頭に伴い、継続的デプロイメントのアイデアもあります。すべてのテストに合格すると、変更を本番環境に自動的にプッシュできます。もちろん、これにはテストに本当に自信があることが必要ですスイート(そうでない場合、より大きな問題があります)。
確かに、ビルドを実行してそれらのビルドが正しいことを確認するCIシステムは特に必要ありませんが、それはCIの一部にすぎません。
CIの目的は、エラーをできるだけ早く検出することです。これは、一般的には、エラーを早期に検出する方が、修正するのが安くなるためです。そのため、ビルドステップが不要な場合でも、CIシステムは、コード分析ツールの使用、テスト環境へのデプロイメント、自動化できるユニット/統合/回帰/その他のテスト、およびその他のステップを自動化できます。エラーをチェックするために自動的に実行できます。
継続的インテグレーションは、コードのコンパイル以上のものを実行します。それだけの場合は、それほど多くのツールは必要ありません。
継続的インテグレーションパイプラインが頻繁に実行する、手に負えない他のいくつかのタスク:
厳密な意味での「継続的統合」の境界線に少し進むと、次のことも実行できます。
要点はこれだけです。コードを書くだけでなく、ソフトウェア開発のプロセスで定期的に実行する必要があるタスクがあります。これらのタスクを自動化してサーバーで実行させることにより、
そして、おそらく思い浮かばない他のいくつかの利点もあります。
ソリューションをコンパイルする必要はないかもしれませんが、CIは構成ファイル/フォルダーパスなどを変更することで、またチームに属している場合、prodステータスへの変更をプロモートし、それらをデプロイすることで、引き続き役立ちます。
Pythonコードを5つの異なるQAサーバーにデプロイし、異なるQAデータベースを指す必要があるとします。その後、自動テスト実行(CIによってトリガーされます)が完了したら、ビルドを本番環境にプロモートしてデプロイします。そこには、すべての本番サーバーの適切な構成変更があります。