การปรับใช้ Capistrano โดยไม่มีคำสั่ง git บนโฮสต์ที่ใช้ร่วมกัน?

  • นักพัฒนา A - Local Repository --> pulls/push ---> github
  • นักพัฒนา B - Local Repository --> pulls/push ---> github
  • Capistrano จะยังคงอยู่ในเครื่องของนักพัฒนาของเรา อย่างไรก็ตาม เราจะกำหนด :repository เพื่อชี้ไปที่โปรเจ็กต์ GitHub ของเรา: set :repository, "[email protected]:myuser/myproject.git" # My clone url
  • นักพัฒนา A หรือนักพัฒนา B ต้องได้รับอนุญาตให้ปรับใช้ไฟล์ที่คอมมิตกับเครื่องที่ใช้งานจริง

ฉันไม่แน่ใจเกี่ยวกับประเด็นที่สามที่นี่ เป็นไปได้ไหม

ฉันได้รับแจ้งจาก ctcherry ที่นี่ ในเวิร์กโฟลว์นี้ จำเป็นต้องติดตั้งคำสั่ง git บนเซิร์ฟเวอร์ที่ใช้งานจริงหรือไม่ ที่:

1) ตามค่าเริ่มต้น Capistrano จะปรับใช้จากพื้นที่เก็บข้อมูล ดังนั้นไฟล์ที่ได้รับการปรับใช้จะมาจากโค้ดที่เช็คอินใน GitHub คุณสามารถกำหนดค่า Capistrano เพื่อปรับใช้จากเครื่องภายในของนักพัฒนาได้โดยใช้ "กลยุทธ์การปรับใช้" อื่น ดูที่นี่: http://rubydoc.info/gems/capistrano/2.5.19/Capistrano/Deploy/Strategy/คัดลอก

แต่ฉันยังคงมีข้อสงสัยที่นี่

หากเราใช้แนวทางนี้ ขั้นตอนการทำงานที่แน่นอนจะเป็นอย่างไร

  • จากนักพัฒนาเครื่อง A - เราดึงไฟล์ที่คอมมิตจาก github โดยใช้ Capistrano
  • จากเครื่องนักพัฒนาเดียวกันนั้น A - เราปรับใช้ไฟล์เหล่านั้นในโฮสต์ที่ใช้ร่วมกันผ่าน SSH และไฟล์จะถูกวางไว้ในตำแหน่งที่ถูกต้องหรือไม่

นั่นมันเหรอ?

อัปเดต: ได้โปรด ฉันไม่เคยใช้ Git หรือ Capistrano Deploy เลย อย่างไรก็ตาม ฉันพยายามอย่างเต็มที่เพื่อทำความเข้าใจว่าทั้งหมดนี้ทำงานอย่างไร เพื่อให้มีกระบวนการพัฒนาเวิร์กโฟลว์ที่ดีสำหรับ ZF ของฉัน แอพพลิเคชั่นพื้นฐาน

คำถามของฉันจึงเป็นคำถามพื้นฐานจริงๆ

หากฉันต้องให้ข้อมูลเพิ่มเติมใด ๆ โปรดแจ้งให้เราทราบ

ขอบคุณมาก.


person MEM    schedule 16.03.2011    source แหล่งที่มา
comment
Tim รวบรวมมันไว้ด้านล่าง โดยมีซิป/แตกไฟล์ ขออภัย ฉันไม่เห็นข้อความของคุณในโพสต์อื่นก่อนหน้านี้   -  person ctcherry    schedule 16.03.2011
comment
@ctcherry - โอ้ได้โปรด ไม่ต้องกังวล. คุณได้รับ 5 เริ่มช่วยฉันด้วย :) ขอบคุณทั้งคู่! จริงหรือ. :)   -  person MEM    schedule 16.03.2011


คำตอบ (1)


ขั้นตอนการทำงานก็เหมือนกัน สิ่งที่เกิดขึ้นคือเมื่อใดก็ตามที่นักพัฒนาคนใดคนหนึ่งพยายามปรับใช้โปรเจ็กต์ Capistrano จะชำระเงินสำเนาใหม่ของโปรเจ็กต์ลงในไดเร็กทอรีชั่วคราวบนเครื่องของตน จากนั้นบีบอัดไฟล์แล้วอัปโหลดไปยังเซิร์ฟเวอร์ระยะไกล บนเซิร์ฟเวอร์ระยะไกล ไฟล์เก็บถาวรจะถูกขยายและทุกอย่างจะทำงานได้ตามปกติ

โปรดทราบว่าแนวทางนี้จะช้ากว่าการปรับใช้ 'ปกติ' มาก โดยเฉพาะอย่างยิ่งหากการเชื่อมต่ออินเทอร์เน็ตของคุณช้า เนื่องจากโครงการทั้งหมดจะถูกคัดลอกในแต่ละครั้ง

person Tim Fountain    schedule 16.03.2011
comment
การเชื่อมต่ออินเทอร์เน็ตของฉันใช้ได้ สาเหตุของคำถามเหล่านั้นทั้งหมดเป็นเพียง: ฉันควรออกจากบริษัทโฮสต์ที่ใช้ร่วมกันซึ่งไม่อนุญาตให้ใช้คำสั่ง git และเพิ่มด้วยวิธีนี้ หรือไม่เช่นนั้นอาจทำให้ยุ่งเหยิง และฉันควรทำสิ่งนี้ด้วยวิธีที่ถูกต้องจริงๆ หรือไม่ สมมติว่าบริษัทโฮสต์ที่ใช้ร่วมกันของฉันอนุญาตให้ฉันติดตั้งคำสั่ง git เฉพาะเจาะจงมาก (ไม่ใช่คำสั่ง git เอง) คำถามของฉันคือ: capistrano คำสั่ง git เฉพาะเจาะจงใดที่จะใช้ในสถานการณ์นี้ (หากข้างต้นไม่สมเหตุสมผล โปรดบอกฉันและเหตุผล) ขอบคุณมาก. และฉันเสียใจอย่างยิ่งที่สละเวลาของคุณอีกครั้ง... ขอแสดงความนับถือ - person MEM; 16.03.2011
comment
หากโฮสต์ของคุณไม่อนุญาตให้ติดตั้งคอมไพล์วิธีนี้ก็ใช้ได้อย่างแน่นอน ข้อเสียเพียงอย่างเดียวคือเวลาในการปรับใช้ ดังนั้นหากไม่เป็นปัญหา ฉันก็จะยังคงดำเนินการต่อไป - person Tim Fountain; 16.03.2011
comment
@MEM ยังเป็นไปได้ที่จะใช้กลยุทธ์การปรับใช้แบบกำหนดเอง เช่น การใช้ Rsync เพื่อให้การปรับใช้เร็วขึ้น นี่คือสิ่งที่มีคนทำสิ่งนั้น: github.com/vigetlabs/capistrano_rsync_with_remote_cache/tree หมายเหตุ: ฉันยังไม่ได้ทดสอบ - person ctcherry; 16.03.2011