Saya telah membaca banyak akhir-akhir ini tentang berbagai proses penyebaran aplikasi web menggunakan SVN atau GIT, dengan maksud untuk mendesain ulang bagaimana kami saat ini menyebarkan tempat saya bekerja.
Seperti halnya dengan banyak rasa Agile, diasumsikan bahwa apa pun yang berkomitmen untuk dikuasai atau bagasi sudah siap produksi. Baik GitHub dan Etsy, http://codeascraft.etsy.com/2010/05/20/quantum-of-deployment/ mengatakan bahwa mereka bekerja atas dasar ini (walaupun Etsy sebenarnya memiliki lingkungan pementasan).
Proses ini mengasumsikan semua tes unit dan uji CI telah dijalankan. Anda menjalankan tes secara lokal dan CI dan kemudian berkomitmen untuk trunk. JADI, pada titik ini kode Anda secara teknis bagus.
Kode Anda mungkin benar secara teknis, tetapi pengujian pengguna / fungsional dapat menemukan lebih banyak bug, terutama ketika datang ke pengujian ujung depan.
Pertanyaan saya adalah ini. Di mana pemilik QA dan Bisnis menguji perubahan fitur yang telah Anda terapkan? Pada mesin pengembangan lokal Anda sebelum Anda berkomitmen untuk trunk, atau pada mesin QA / staging?
Jika Anda memiliki mesin pementasan yang menjalankan trunk, dan Anda menganggap bahwa semua kode yang dikomit ke trunk adalah produksi siap ... eh .. maka pada titik mana kode ditandatangani dan bagus untuk masuk ke produksi dari kedua teknis dan bisnis perspektif? Jika Anda hanya memiliki satu mesin pementasan, banyak pengembang dan di situlah kode harus QA, maka bagaimana Anda dapat menggunakan dari bagasi karena banyak perubahan pengembang bisa menunggu keluar.
Saya tertarik mendengar bagaimana orang lain mendekati ini?
sumber
Kami memiliki tes penerimaan otomatis pada cabang fitur yang sama. Ketika Anda membuat kandidat rilis, itu termasuk tes otomatis yang Anda jalankan untuk melihat apakah fitur tersebut lolos. Anda juga menguji kandidat rilis. Ketika semuanya berlalu, Anda mempromosikannya kemudian dengan bergabung menjadi master.
Lebih lanjut tentang proses ini di sini:
https://plus.google.com/109096274754593704906/posts/R4qkeyRadLR
Lakukan checkout komentar juga.
Semoga ini membantu,
Adam
sumber
Sebagai aturan umum, menunggu untuk melakukan sebelum kode sempurna adalah separuh waktu mengambil kembali keuntungan dari sistem kontrol versi. (Tanpa banyak perincian, saya akan mengatakan bahwa kecuali seseorang diperbolehkan multiple check-in ke VCS, seseorang tidak memiliki cara untuk mengembalikan pekerjaan saya sendiri!) Jadi sebagai praktik kami selalu meminta orang untuk tetap check-in (dalam cabang mereka untuk SVN atau dapat berupa komitmen lokal jika GIT) sebanyak yang mereka inginkan. Bahkan semakin banyak semakin baik.
Namun, ketika titik tiba di mana semuanya tampaknya dilakukan dan diuji - kami menyebutnya rilis dan kemudian digabung dengan trunk. Pada dasarnya, QA dapat mensertifikasi RC dengan mengambil check out baru di
HEAD
cabang dan jika dia setuju, hal yang sama digabung kembali dengan trunk.Jadi intinya kami menggunakan konsep task-branch atau private-branch sehingga orang bebas membuat lapor masuk sebanyak yang mereka butuhkan. Pada saat yang sama, bagasi relatif bebas dari semua check-in yang rusak .
sumber