私は現在、小規模な開発者チームで共有されるプロジェクトのための強力なCIとデプロイメント環境のセットアップを検討しています。目的は、物事がテストされる方法、全体的なコード品質、および展開が行われる方法に一定の一貫性をもたらすことです。
Jenkins、Sonar、Maven、Capistrano、Ping、ANTなどについて読みました。正直に言うと、これらすべてのツール/テクノロジーの真ん中で迷子になっています。私の理解を検証して、これを達成するための最良の方法についての洞察。
Jenkins:Jenkinsは(開発ブランチ上の)GITフックによってトリガーされ、[〜#〜] phing [〜#〜]以下のアクションを実行するスクリプトを実行します:
その後、Jenkinsはすべてのレポート/データをSonarに送信して、sonnar-runnerを歌っています。
ソナーは、これらすべてのデータを収集し、データベースに格納します。これにより、アプリケーションコードの経時変化を分析する方法が提供されます。また、Jenkinsよりも優れた方法で情報を表示します。
あなたの時間と助けに感謝します!
全体的に良さそうです。私は個人的にソナー(しかしそれを知っている)またはカピストラーノ(これを聞いたことさえない)を使用していないので、それらについてコメントすることはできません。
Mavenは、主にJavaプロジェクトの依存関係、ビルド、およびデプロイメントツールです。すでにJenkinsで「ビルド」を処理しているので、Mavenについて心配する必要はありません。
デプロイに関しては、Jenkinsビルドをデプロイする方法を非常に 詳細な説明はこちら で記述しました。 Jenkinsはデプロイメントを完全に行うことができるので、別のツールをミックスに追加しようとするのはなぜですか?必要なのは、PHPファイル(ビルドジョブの一部としてそれらを圧縮することをお勧めします)およびコピー/デプロイするためのbash(または環境に応じてバッチ)スクリプトです。それらはリモートサーバー上にあります。
より具体的な質問がある場合は、質問してください。
私が知る限り、自動展開用のサービスはいくつかあり、それらの設定ははるかに簡単です。そのため、たとえば、Dropboxに統合して、少数の開発者が作業している場合でも、コードをrepos/liveに自動的にデプロイできます。例: http://unbouncepages.com/the-magicbox/