Penerapan Capistrano tanpa perintah git di host bersama?

  • Pengembang A - Repositori Lokal --> tarik/dorong ---> github
  • Pengembang B - Repositori Lokal --> tarik/dorong ---> github
  • Capistrano akan tetap berada di mesin pengembang kami, namun kami akan mendefinisikan :repository untuk menunjuk ke proyek GitHub kami: set :repository, "[email protected]:myuser/myproject.git" # Url kloning saya
  • Pengembang A ATAU Pengembang B harus diizinkan untuk menyebarkan file yang dikomit ke mesin produksi.

Saya tidak yakin dengan poin ketiga di sini, apakah mungkin?

Saya telah diberitahu oleh ctcherry di sini Pada alur kerja ini, apakah perintah git perlu diinstal di server produksi? bahwa:

1) Secara default Capistrano akan disebarkan dari repositori, sehingga file yang disebarkan akan berasal dari kode yang diperiksa ke github. Anda dapat mengonfigurasi Capistrano untuk menerapkannya dari mesin lokal pengembang dengan menggunakan "strategi penerapan" yang berbeda Lihat di sini: http://rubydoc.info/gems/capistrano/2.5.19/Capistrano/Deploy/Strategy/Salin

Tapi saya masih ragu di sini.

Jika kita menggunakan pendekatan ini, tepatnya alur kerja apa yang akan terjadi di sini?

  • Dari mesin pengembang A - Kami mengambil file yang dikomit dari github menggunakan Capistrano.
  • Dari mesin pengembang A yang sama - Kami menyebarkan file tersebut ke host bersama melalui SSH dan file akan ditempatkan di tempat yang benar?

Itu saja?

Pembaruan: Tolong, saya belum pernah menggunakan Git atau Capistrano Deploy, namun saya melakukan yang terbaik untuk mencoba memahami cara kerja semua ini, agar memungkinkan proses pengembangan alur kerja yang baik untuk ZF saya aplikasi berbasis.

Jadi pertanyaan saya sangat mendasar.

Jika saya harus memberikan informasi tambahan, harap beri tahu saya.

Terima kasih banyak.


person MEM    schedule 16.03.2011    source sumber
comment
Tim mendapatkannya tepat di bawah, dengan zip/unzip. Maaf saya tidak melihat pesan Anda di postingan lain sebelumnya.   -  person ctcherry    schedule 16.03.2011
comment
@ctcherry - Oh tolong. Jangan khawatir. Anda sudah 5 kali mulai membantu saya. :) Terima kasih semuanya! Sungguh. :)   -  person MEM    schedule 16.03.2011


Jawaban (1)


Alur kerjanya sama. Apa yang terjadi adalah, setiap kali salah satu pengembang mencoba menerapkan proyek, Capistrano pertama-tama akan memeriksa salinan baru proyek tersebut ke direktori sementara di mesin mereka, meng-zip-nya, dan mengunggahnya ke server jarak jauh. Di server jarak jauh, arsip kemudian akan didekompresi dan semuanya berfungsi seperti biasa.

Perhatikan bahwa pendekatan ini jauh lebih lambat dibandingkan penerapan 'normal', terutama jika koneksi Internet Anda lambat, karena seluruh proyek disalin setiap saat.

person Tim Fountain    schedule 16.03.2011
comment
Koneksi internet saya baik-baik saja. Alasan untuk semua pertanyaan itu hanyalah: Haruskah saya meninggalkan perusahaan host bersama saya yang tidak mengizinkan perintah git dan mengadopsi cara ini, atau ini bisa menjadi berantakan, dan saya harus melakukannya dengan cara yang benar? Katakanlah perusahaan host bersama saya mengizinkan saya menginstal perintah git yang sangat spesifik, (bukan perintah git itu sendiri), pertanyaan saya adalah: perintah atau perintah git spesifik apa yang akan digunakan capistrano pada skenario ini? (JIKA YANG DI ATAS tidak masuk akal, tolong beri tahu saya dan alasannya). Terima kasih banyak. Dan saya benar-benar minta maaf karena telah menyita waktu Anda sekali lagi... Salam. - person MEM; 16.03.2011
comment
Jika host Anda tidak mengizinkan git dipasang, pendekatan ini baik-baik saja. Waktu yang dibutuhkan untuk penerapan adalah satu-satunya kelemahannya, jadi jika ini bukan masalah maka saya akan tetap melakukannya. - person Tim Fountain; 16.03.2011
comment
@MEM juga memungkinkan untuk menggunakan strategi penerapan khusus, misalnya menggunakan Rsync untuk membuat penerapan tersebut lebih cepat, berikut adalah strategi yang dibuat seseorang yang melakukan hal seperti itu: github.com/vigetlabs/capistrano_rsync_with_remote_cache/tree Catatan: Saya belum mengujinya. - person ctcherry; 16.03.2011