私はほとんどの場合、孤独な開発者であり、多くの大きな、主にPHPベースのプロジェクトに取り組んでいます。コードベースへの変更の処理方法を専門化して自動化し、基本的な変更を行うことなくチームでの作業への移行を可能にする継続的インテグレーションプロセスを作成したいと考えています。
私が今していることは、すべてのプロジェクトにローカルのテスト環境があるということです。プロジェクトごとにSVNを使用しています。変更はローカルでテストされ、通常はFTP経由でオンラインバージョンに転送されます。APIドキュメントはソースコードから手動で生成されます。ユニットテストは私がゆっくりと取り組んでいるものであり、それはまだ私の日常の一部ではありません。
私が想定している「ビルドサイクル」は、次のことを行います。
チェンジセットは、ローカルでテストされた後、SVNにチェックインされます。
ビルドプロセスを開始します。SVN HEADリビジョンがチェックアウトされ、必要に応じて変更され、アップロードの準備が整います。
APIドキュメントは自動的に生成されます-まだ詳細に設定していない場合は、デフォルトのテンプレートを使用して、コードベース全体をスキャンします。
新しいリビジョンはFTP経由でリモートロケーションにデプロイされます(ディレクトリの名前変更、chmodding、データベースのインポートなどを含みます)。これは私がすでに非常に好きなものですが、もちろん別の方法もあります。
事前定義された場所にある単体テストが実行されます。電子メール、RSS、または(できれば)HTML出力を使用して、それらの失敗または成功について通知されます。これらの出力を取得してWebページに入れることができます。
(オプション)事前定義された場所にあるエンドユーザーの「changelog」テキストファイルは、コミットメッセージの事前定義された部分で更新されます(「「foo」と「bar」の両方を同時にフィルタリングできるようになりましたこのメッセージは、SVNコミットメッセージと必ずしも同じではありません。SVNコミットメッセージには、おそらくはるかに多くの内部情報が含まれています。
コードメトリクスやコードスタイルチェックなどは、今のところ私の主な焦点ではありませんが、長期的には確かにそうなるでしょう。これをすぐに使えるソリューションを提供するソリューションは、非常に親切に検討されています。
を探しています
同様の状況にある、または同様の状況にあり、このソリューションの実装に成功した人々からのフィードバックと経験
特に、これを設定する方法に関する優れたステップバイステップのチュートリアルとウォークスルー
たとえば、新しいプロジェクトごとにスケルトンAPI、テストケースなどを作成することにより、可能な限り多くの自動化を提供するソリューション。
そしてまた
- 製品の推奨事項。私がこれまでに知っているのは、ビルド用のphing / antと、レポート部分用のphpUnderControlまたはHudsonです。私は見る限りそれらすべてが好きですが、もちろんそれらについての詳細な経験はありません。
私は仕事に忙殺されているので、単純な解決策に強い傾向があります。逆に、機能が足りない場合は、制限が多すぎると泣きます。:)ポイントアンドクリックソリューションも大歓迎です。また、PHPプロジェクトで機能する商用製品の推奨事項にも関心があります。
私のセットアップ
私はローカルでWindows(正確には7)で作業しており、ほとんどのクライアントプロジェクトはLAMPスタックで実行され、多くの場合、共有ホスティング(=リモートSSHなし)で実行されます。自分の環境で実行できるソリューションを探しています。このためにLinuxVMをセットアップする準備ができました。問題ありません。ホストされたソリューションは、説明されているすべての側面を提供する場合、またはプロセスの他の部分と対話するのに十分な柔軟性がある場合にのみ、私にとって興味深いものです。
報奨金 私は私が最もマイレージを与えると思う答えを受け入れています。ここには素晴らしい意見がたくさんあります。複数の答えを受け入れられたらいいのにと思います。みんな、ありがとう!