ปล่อยบิลด์ vs บิลด์บิลด์ต่อคืน


13

วิธีแก้ปัญหาทั่วไปคือการสร้าง CI (การรวมอย่างต่อเนื่อง) ที่ทำงานบนบิลด์เซิร์ฟเวอร์: มันจะวิเคราะห์ซอร์สโค้ด, สร้างบิลด์ (ในการดีบัก) และรันการทดสอบ, ครอบคลุมการทดสอบวัด ฯลฯ

ตอนนี้ชนิดบิลด์อื่นที่มักรู้จักกันคือ "บิลลี่ยามค่ำคืน": ทำสิ่งที่ช้าเช่นสร้างเอกสารรหัสสร้างแพ็คเกจการติดตั้งปรับใช้กับสภาพแวดล้อมการทดสอบและทำการทดสอบอัตโนมัติ (ควันหรือยอมรับ) กับสภาพแวดล้อมการทดสอบเป็นต้น

ตอนนี้คำถาม:

  • จะดีกว่าไหมถ้ามี "build build" แยกกันเป็นสามเป็น build build?
  • หรือ "Nightly build" ในโหมด release และใช้เป็นรีลีส?

คุณใช้อะไรใน บริษัท ของคุณ

(บิลด์รีลีสควรเพิ่มแท็กบางชนิดให้กับแหล่งควบคุมของเวอร์ชันผลิตภัณฑ์ที่มีศักยภาพ)

คำตอบ:


13

กรณีที่มีการเปิดตัวการสร้างเท่ากับยามค่ำคืนสร้างคือคุณต้องการทดสอบว่าสิ่งเดียวกันสิ่งที่คุณปล่อย คุณไม่ต้องการที่จะค้นพบข้อบกพร่องในการผลิตซึ่งสามารถตรวจพบได้ในการทดสอบ dev แล้ว

ความแตกต่างระหว่างการปล่อยและการสร้างทุกคืน:

  • build ในตอนกลางคืนนั้นรันโดยอัตโนมัติทุกคืนในขณะที่ build build ควรทำงานด้วยมือตามเวลาที่กำหนด
  • การสร้างควรปล่อยแท็ก / สาขารหัสแหล่งที่มาและควรปรับใช้การสร้างสิ่งประดิษฐ์ (s) ใน repo ส่วนกลาง (เช่นเมื่อใช้ Maven)

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


7

ฉันอยากให้รุ่นที่วางจำหน่ายใกล้เคียงกับตอนกลางคืนที่สุดเท่าที่จะทำได้! นึกคิดเหมือนกัน แต่มีแท็ก

สิ่งนี้คือถ้าการวางจำหน่ายของคุณและทุกคืนไม่เหมือนกันมีโอกาสที่อะไรก็ตามที่แตกต่างกันอาจทำให้เกิดปัญหาได้


3

ฉันจะมีกระบวนการสร้างเดียวซึ่งจะสร้างทุกอย่างที่ดำเนินการเช็คอินโดยบริการ CI นั่นจะเป็นทั้งการดีบักและปล่อยบิลด์

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


บริษัท ของฉันเป็นแบบนี้มากด้วยกระบวนการสร้าง 4 แบบที่แตกต่างกัน เราจำเป็นต้องเปลี่ยนสิ่งนั้น
แบรนดอน

2

สิ่งหนึ่งที่ฉันกระตือรือร้นที่จะทำคือการสร้าง build ตอนกลางคืนในโหมด release แทนที่จะเป็นโหมด debug ด้วยเฟรมเวิร์กการบันทึกเช่น log4net แทนที่ System.Diagnostics.Debug ความแตกต่างหลักระหว่างโหมด Release และ Debug คืออายุการใช้งานวัตถุและการปรับรหัสให้เหมาะสม

นอกจากว่าคุณกำลังจะแนบดีบักเกอร์กับงานสร้างยามค่ำคืนของคุณแล้วฉันก็ขอแนะนำให้ทำเช่นนี้

กระบวนการที่เราติดตามคือการบิลด์ต่อคืนรันทุกคืนและหากใช้งานได้เราสามารถปรับใช้บิลด์เดียวกันกับเซิร์ฟเวอร์อื่นของเรา (ไม่ต้องสร้างใหม่เพียงนำตัวติดตั้งแบบแพคเกจแล้วใช้งาน) หากเรามีปัญหากับงานสร้างยามค่ำคืนเราตรวจสอบการเปลี่ยนแปลงในสาขาและเรียกใช้งาน 'ตอนกลางคืน' เพื่อสร้างสาขาในระหว่างวัน การทดสอบนั้นสามารถเรียกใช้อีกครั้ง

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.