Saya seorang pengembang tunggal sebagian besar waktu saya, mengerjakan sejumlah besar, terutama proyek berbasis PHP. Saya ingin memprofesionalkan dan mengotomatiskan bagaimana perubahan pada basis kode ditangani, dan membuat proses Integrasi Berkelanjutan yang memungkinkan transisi untuk bekerja dalam tim dimungkinkan tanpa harus membuat perubahan mendasar.
Apa yang saya lakukan saat ini adalah, saya memiliki lingkungan pengujian lokal untuk setiap proyek; Saya menggunakan SVN untuk setiap proyek; perubahan diuji secara lokal, dan kemudian ditransfer ke versi on-line, biasanya melalui FTP. Dokumentasi API dihasilkan secara manual dari kode sumber; Tes unit adalah sesuatu yang saya lakukan secara perlahan, dan itu belum menjadi bagian dari rutinitas harian saya.
"Build cycle" yang saya bayangkan akan melakukan hal berikut:
Changeet diperiksa ke dalam SVN setelah diuji secara lokal.
Saya memulai proses pembangunan. Revisi KEPALA SVN diperiksa, dimodifikasi jika perlu, dan siap untuk diunggah.
Dokumentasi API dihasilkan secara otomatis - jika saya belum mengaturnya secara detail, menggunakan templat default, memindai seluruh basis kode.
Revisi baru dikerahkan ke lokasi remote melalui FTP (Termasuk beberapa direktori penggantian nama, chmodding, mengimpor database, dan sejenisnya.) Ini adalah sesuatu yang saya sudah seperti phing untuk sangat banyak, tapi aku terbuka untuk alternatif tentu saja.
Tes unit yang berada di lokasi yang telah ditentukan dijalankan. Saya diberitahu tentang kegagalan atau keberhasilan mereka menggunakan E-Mail, RSS atau (lebih disukai) output HTML yang dapat saya ambil dan masukkan ke dalam halaman web.
(opsional) file teks "changelog" pengguna akhir di lokasi yang ditentukan akan diperbarui dengan bagian pesan komit yang telah ditentukan sebelumnya ("Sekarang mungkin untuk memfilter baik" foo "dan" bar "pada saat yang sama. waktu) Pesan ini tidak harus identik dengan pesan komit SVN, yang mungkin mengandung lebih banyak informasi internal.
Hal-hal seperti metrik kode, pengecekan gaya kode, dan sebagainya bukan fokus utama saya saat ini, tetapi dalam jangka panjang, mereka pasti akan melakukannya. Solusi yang membawa ini out-of-the-box sangat ramah dipandang.
Saya mencari
Umpan balik dan pengalaman dari orang-orang yang berada atau berada dalam situasi yang sama, dan telah berhasil menerapkan solusi untuk ini
Terutama, tutorial langkah demi langkah yang baik dan langkah-langkah tentang cara mengatur ini
Solusi yang menyediakan otomatisasi sebanyak mungkin , misalnya dengan membuat kerangka API, menguji kasus dan sebagainya untuk setiap proyek baru.
dan juga
- Rekomendasi produk . Yang saya tahu sejauh ini adalah phing / semut untuk membangun, dan phpUnderControl atau Hudson untuk bagian pelaporan. Saya suka semuanya sejauh yang saya bisa lihat, tapi tentu saja saya tidak punya pengalaman mendetail dengan mereka.
Saya dibanjiri pekerjaan, jadi saya memiliki kecenderungan kuat terhadap solusi sederhana. Di sisi lain, jika fitur hilang, saya akan menangis karena terlalu terbatas. :) Solusi point-and-click dipersilahkan juga. Saya juga merekomendasikan produk komersial yang dapat bekerja dengan proyek PHP.
Pengaturan saya
Saya bekerja pada Windows secara lokal (7, tepatnya) dan sebagian besar proyek klien dijalankan pada LAMP stack, seringkali pada shared hosting (= tidak ada SSH jarak jauh). Saya mencari solusi yang dapat saya jalankan di lingkungan saya sendiri. Saya siap mengatur VM Linux untuk ini, tidak ada masalah. Solusi yang dihosting menarik bagi saya hanya jika mereka menyediakan semua aspek yang dijelaskan, atau cukup fleksibel untuk berinteraksi dengan bagian lain dari proses.
Bounty saya menerima jawaban yang saya rasa akan memberi saya jarak tempuh paling besar. Ada banyak masukan bagus di sini, saya berharap saya bisa menerima lebih dari satu jawaban. Terimakasih semuanya!