คำถามติดแท็ก continuous-integration

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

4
ฉันจะเรียนรู้วิธีที่ถูกต้องในการใช้คุณสมบัติครึ่งหนึ่งได้อย่างไร [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน4 ปีที่แล้ว ฉันเป็นผู้นำทีมพัฒนาและฉันต้องการเผยแพร่ผลิตภัณฑ์ของเราบ่อยที่สุดเท่าที่จะเป็นไปได้ (การจัดส่งอย่างต่อเนื่อง) ในหลายกรณีเราต้องใช้คุณลักษณะที่ใช้เวลานานกว่าการนำไปใช้ในช่วงเวลาระหว่างการเผยแพร่ ฉันยังต้องการให้ผู้คนยอมรับรหัสของพวกเขาในชีวิตประจำวัน (Integration Integration) การใช้คุณลักษณะใหม่หลายครั้งต้องมีการเปลี่ยนแปลงคุณสมบัติที่มีอยู่และแน่นอนว่าคุณสมบัติที่มีอยู่ยังคงต้องทำงานแม้ว่าคุณสมบัติใหม่จะยังไม่เสร็จสิ้น หากผู้พัฒนาใช้วิธีการที่ถูกต้องพวกเขาสามารถปรับคุณสมบัติที่มีอยู่อย่างระมัดระวังและทั้งหมดข้างต้นไม่ใช่ปัญหา อย่างไรก็ตามวิธีการที่เหมาะสมคืออะไรจริง? ใจความพร้อมของฉันในการเขียนโปรแกรมบอกฉันว่าจะทำอย่างไรในแต่ละกรณี แต่ฉันต้องเรียนรู้เพิ่มเติมและฉันต้องการสื่อการอ่านที่ฉันสามารถอ่านและอ้างอิงสมาชิกในทีมเพื่ออ่าน หรือวิธีอื่นใดในการเรียนรู้วิธีที่ถูกต้องในการเรียนรู้วิธีนี้จะทำ นั่นคือคำถาม ฉันจะแน่ใจได้อย่างไรว่าสมาชิกในทีมเรียนรู้วิธีที่ถูกต้องในการนำคุณลักษณะครึ่งหนึ่งไปใช้ ฉันค้นหาคนที่อ้างว่ามีกลยุทธ์เกี่ยวกับเรื่องนี้ แต่ยังไม่พบยกเว้นคนที่เขียนความคิดแบบสุ่มเล็กน้อยในหัวข้อ บางทีฉันอาจไม่ได้ใช้คำค้นหาที่ถูกต้องหรืออาจไม่มีใครทำแนวทางที่เชื่อถือได้เกี่ยวกับเรื่องนี้

1
ความรับผิดชอบของ Build Script และ Build Server
ฉันต้องการคำชี้แจงเกี่ยวกับความรับผิดชอบของ Build Script และ Build Server ฉันอ่านบทความหลายเรื่องบนอินเทอร์เน็ตเกี่ยวกับการรวมและสร้าง รวมไปถึง รหัส F5 ไม่ใช่กระบวนการสร้าง The Build Server: Heart Monitor ของโครงการของคุณ งานสร้างรายวันเป็นเพื่อนของคุณ และฉันได้สนทนากับที่ปรึกษาเกี่ยวกับกระบวนการสร้างซอฟต์แวร์ของเรา เพราะเขามีประสบการณ์มากฉันเชื่อในคำพูดของเขา แต่ฉันถูกทิ้งให้สับสน ตามที่ฉันเข้าใจจากการวิจัยของฉัน (และโปรดแก้ไขให้ฉันที่นี่ด้วยเนื่องจากเป็นสิ่งที่ฉันถาม) อุดมคติควรเป็นดังนี้: ทุกโครงการมีสคริปต์การสร้าง สคริปต์นี้สร้างโครงการ สคริปต์นี้ทำให้แน่ใจว่ามีการสร้างการอ้างอิงก่อนหน้านี้ เนื่องจากการขึ้นต่อกันอาจเป็นโครงการอื่น ๆ ด้วยสคริปต์การสร้างของตัวเองลำดับชั้นที่มีลักษณะคล้ายต้นไม้เพิ่มขึ้น อาจมีสคริปต์สร้างชั้นนำที่สร้างโครงการและแอปพลิเคชันทั้งหมด อย่างไรก็ตามความรับผิดชอบของ Build Server คือ: ตรวจสอบพื้นที่เก็บข้อมูล ทริกเกอร์การสร้าง การทดสอบทริกเกอร์และเครื่องมือ QA อื่น ๆ ทำให้สิ่งประดิษฐ์พร้อมใช้งาน สิ่งนี้อาจถูกทริกเกอร์ด้วยตนเองทุกคืนหรือทุกครั้งที่มีการเปลี่ยนแปลงที่เก็บ วัตถุประสงค์ของที่ปรึกษาของฉันคือตามที่ฉันเข้าใจพวกเขาว่าหนึ่งสคริปต์สร้างเป็นวิธีที่ยืดหยุ่นและไม่สามารถบำรุงรักษาได้ (นอกเหนือจากความจริงที่ว่ามันจะใช้เวลานานมากจากการสร้างหนึ่งสำหรับฐานรหัสดั้งเดิมของเรา) นอกจากนี้ Build Server ควรรักษาการอ้างอิงเช่นการใช้การอ้างอิงแบบเก่าเมื่อสร้างล้มเหลวใหม่ และโดยเฉพาะอย่างยิ่งสำหรับAntมันเป็นเรื่องที่เป็นรูปธรรมไม่สามารถสร้างเทคโนโลยีที่แตกต่างกันทุกชนิดที่ใช้ในรหัสฐานและไม่สามารถรักษาความไว้วางใจได้ …

3
รูปแบบสำหรับการรวมอย่างต่อเนื่องและ DVCS
ขณะนี้เราใช้การโค่นล้มและ TeamCity เราจะย้ายไปใช้ Mercurial (โดยเฉพาะ Kiln เนื่องจากเราเป็นผู้ใช้ FogBugz) เห็นได้ชัดว่าสิ่งนี้จะส่งผลให้เกิดการเปลี่ยนแปลง - หวังว่าจะได้รับการปรับปรุง - ในรูปแบบการพัฒนาของเรา (เราสองคน!) แต่สิ่งหนึ่งที่ฉันพยายามแก้ไขคือการจัดโครงสร้างสิ่งต่าง ๆ เพื่อให้เรายังคงได้รับประโยชน์ ว่ามีและจะยังคงได้รับประโยชน์เป็นการสนทนาที่อยู่นอกขอบเขตของคำถามนี้ ) ด้วย SVN เราให้บริการพื้นที่เก็บข้อมูลส่วนกลางจำนวน จำกัด - มีประสิทธิภาพต่อหนึ่งโครงการ (หนึ่งหรือน้อยกว่าหนึ่งโซลูชัน Visual Studio) ดังนั้นจึงง่ายต่อการเปิดใช้งานบิลด์และรับความมั่นใจว่าไฟล์ทั้งหมดได้รับการยอมรับและไม่มี Stray dependencies ฯลฯ แต่ถ้าเราจะใช้ความได้เปรียบ Mercurial ที่เหมาะสมเราจะต้องการที่เก็บอินสแตนซ์ที่มากขึ้น - ที่ซึ่งฉันคาดว่าการเปลี่ยนแปลงจะไหลไปสู่ ​​repo "live" ที่ชัดเจน ปัญหาที่ฉันดิ้นรนคือ repo สดดูเหมือนว่าฉันจะ "สาย" เกินกว่าที่จะกระตุ้นให้ CI ของฉันสร้าง OTOH หนึ่ง CI …

2
การรวมกลุ่มอย่างต่อเนื่องเป็นอย่างไรใน บริษัท ขนาดใหญ่
ใน บริษัท ของฉันเป็นเรื่องปกติที่จะไม่ทำบิลด์ขั้นกลางใด ๆ เพื่อตรวจสอบว่าแต่ละฟีเจอร์ / สาขาแก้ไขข้อผิดพลาดรวมอยู่ใน dev มีบิลด์รายวันเท่านั้นซึ่งจะทำให้การทดสอบล้มเหลวและสร้างข้อผิดพลาดได้เสมอ ฉันได้รับการบอกว่ามันไม่สมเหตุสมผลที่จะสร้างสำหรับการผสานแต่ละครั้งสำหรับนักพัฒนามากกว่า 1,000 คน ดังนั้นฉันจึงค้นหาวิธีการจัดระเบียบ CI ใน บริษัท ที่มีนักพัฒนาจำนวนมากหรือมากกว่านั้น (Microsoft, Facebook) และไม่พบอะไรเลย บางทีคนวงในสามารถบอกฉันได้?

3
การทดสอบการรวมเข้าด้วยกันควรรวมอยู่ในการรวมอย่างต่อเนื่อง (CI) หรือไม่
สมมติว่าเรากำลังพัฒนาเว็บแอปพลิเคชันและฮัดสันทำงานทั่วไปเช่นคอมไพล์การทดสอบหน่วยและการวิเคราะห์โค้ดแบบคงที่ แต่ส่วนที่ยุ่งยากคือ: ฮัดสันปรับใช้และเริ่มต้นเซิร์ฟเวอร์แอปพลิเคชันเพื่อทำการทดสอบการรวมเมื่องานก่อนหน้านี้เสร็จสิ้น นั่นหมายถึงบางสิ่งที่ยากเช่นการเชื่อมต่อฐานข้อมูลการเชื่อมต่อแอพพลิเคชั่นส่วนที่ 3 ฟังพอร์ตซ็อกเก็ตตัวแปรสภาพแวดล้อมเซิร์ฟเวอร์เริ่มต้นส่งข้อผิดพลาด ฯลฯ เราต้องตั้งค่าและทำลายสิ่งเหล่านี้อย่างถูกต้องทุกครั้ง ที่แย่กว่านั้นการทดสอบการรวมสามารถทำลายการทดสอบการรวมได้อย่างง่ายดาย คุณคิดว่าควรรวมการทดสอบการรวมเข้ากับการรวมเข้าด้วยกันอย่างต่อเนื่อง (CI) หรือไม่ เป็นด้วยตนเองได้ไหม หรือลดความซับซ้อนของการทดสอบการรวม?

5
Continous Integration (CI) คืออะไรและมีประโยชน์อย่างไร [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน6 ปีที่ผ่านมา บางคนสามารถอธิบายแนวคิดของการบูรณาการอย่างต่อเนื่องกับฉันได้อย่างไรมันทำงานอย่างไรในวิธีที่เข้าใจง่าย และทำไม บริษัท จึงควรใช้ CI ในขั้นตอนการจัดส่งโค้ด ฉันเป็นนักพัฒนาและ บริษัท ของฉัน (ส่วนใหญ่เป็นทีมงานสร้าง) ใช้ Team City ในฐานะนักพัฒนาฉันทำการเช็คเอาต์อัปเดตและส่งมอบรหัสให้กับ SVN แต่ไม่จำเป็นต้องกังวลเกี่ยวกับ TeamCity หรือ CI โดยทั่วไป ดังนั้นฉันอยากจะเข้าใจว่า CI มีประโยชน์อย่างไร? CI เป็นส่วนหนึ่งของระเบียบวิธี Agile หรือไม่?

2
ใช้ผลลัพธ์การสร้างอย่างต่อเนื่องเป็นส่วนหนึ่งของการตรวจสอบประสิทธิภาพหรือไม่ [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Software Engineering Stack Exchange ปิดให้บริการใน5 ปีที่ผ่านมา เจ้านายของฉันวางแผนที่จะใช้การวัดจากการสร้างอย่างต่อเนื่องของเรา (สร้างและดำเนินการทดสอบในทุกการกระทำ) เป็นส่วนหนึ่งของการตรวจสอบประสิทธิภาพของเรา (ในการวัดคุณภาพของเรา) ดูเหมือนว่าเป็นความคิดที่ไม่ดีจริงๆสำหรับฉัน แต่ฉันอยากจะรู้ว่ามีใครเคยศึกษาหรือเคยเห็นสิ่งนี้มาก่อน ความคิดของฉันคือการที่นักพัฒนาของเราจะไม่ทำการทดสอบมากเท่าที่ควรเพราะกลัวว่าการทดสอบจะล้มเหลว ฉันรู้สึกว่าเขาเปลี่ยนเครื่องมือนักพัฒนาที่มีคุณค่าให้กลายเป็นไม้ตีเพื่อเอาชนะนักพัฒนาซอฟต์แวร์ด้วย ข้อโต้แย้งที่เห็นได้ชัดคือการส่งเสริมให้คนระมัดระวังมากขึ้นก่อนที่พวกเขาจะยอมรับและนำไปสู่คุณภาพที่สูงขึ้น ฉันอยู่ที่นี่หรือไม่ โปรดทิ้งคำถามไว้ว่าเราควรจะทำการตรวจสอบประสิทธิภาพหรือไม่ - ได้รับคำตอบจากที่อื่นแล้ว

5
คุณมีการทดสอบอัตโนมัติเพียงพอที่จะมั่นใจในขั้นตอนการรวมระบบอย่างต่อเนื่องของคุณเมื่อใด
การรวมอย่างต่อเนื่องกับการทดสอบมีประโยชน์สำหรับการตรวจสอบให้แน่ใจว่าคุณได้ตรวจสอบรหัส "shippable" ตลอดเวลา อย่างไรก็ตามมันเป็นเรื่องยากที่จะติดตามชุดการทดสอบที่ครอบคลุมและบ่อยครั้งที่รู้สึกว่างานสร้างนั้นจะต้องมีค่ามาก คุณควรรู้สึกมั่นใจในการทดสอบ CI ของคุณมากแค่ไหน คุณใช้การวัดบางประเภทในการตัดสินใจเมื่อมีการทดสอบเพียงพอหรือไม่

1
กลยุทธ์การส่งเสริมการพึ่งพา: siled หรือ orchestrated
เรามีแอพพลิเคชั่นและบริการบนเว็บมากมาย (ผลิตภัณฑ์สาธารณะบางผลิตภัณฑ์, ภายในและส่วนหนึ่งของ "แบ็กเอนด์" ส่วนตัว) ที่พึ่งพาซึ่งกันและกัน แต่ละองค์ประกอบเหล่านี้มี 4 สภาพแวดล้อม (กลุ่มของเซิร์ฟเวอร์ / โหนดที่ให้บริการตามวัตถุประสงค์เฉพาะ): ที่ไม่ใช่การผลิต DEV- สภาพแวดล้อมการพัฒนาแบบบูรณาการที่ CI สร้างการเปลี่ยนแปลงแบบพุช มีประโยชน์สำหรับวิศวกรในการแก้ปัญหาข้อบกพร่องที่หายากที่ไม่สามารถทำซ้ำได้ QA - แยก QA / สภาพแวดล้อมการทดสอบ DEMO - สภาพแวดล้อมของ UAT ที่เสถียรสำหรับผู้มีส่วนได้เสีย การผลิต LIVE - สภาพแวดล้อมสด / การผลิตของเรา รหัสโปรโมชั่ไป: LOCAL(เครื่องของนักพัฒนา) => DEV=> QA=> =>DEMOLIVE บอกว่าเรามีโปรแกรมที่เรียกว่าmyappที่มีการสนับสนุนจากบริการเว็บ RESTful เรียกว่าmywsที่ตัวเองได้รับการสนับสนุนโดย DB mydbที่เรียกว่า ขณะนี้เรามีสิ่งที่ผมจะเรียกว่า " บงการ " …

3
บูรณาการอย่างต่อเนื่อง (กับโครงการ iOS และ Android) [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Software Engineering Stack Exchange ปิดให้บริการใน4 ปีที่แล้ว ฉันกำลังพยายามเปลี่ยนแปลงในเชิงบวกใน บริษัท ของฉันและหนึ่งในการเปลี่ยนแปลงคือการนำการบูรณาการอย่างต่อเนื่อง เราพัฒนามือถือ (iOS / Android) ดังนั้นฉันต้องการ CI ที่รองรับโครงการทั้งสองประเภท อย่างที่คุณสามารถบอกได้ว่าฉันไม่ค่อยรู้เรื่อง CI มากนัก แต่ฉันก็ลองไปนิดหน่อยแล้วฉันก็คิดว่าเจนกินส์และฮัดสันเป็นที่นิยมที่สุดสองคน ฉันมีคำถามสองส่วน คุณคิดกับเจนกินส์ไหม? มีวิธีใดบ้างที่ CI จะตรวจสอบว่าโปรเจ็กต์กำลังรวบรวม มาตรฐานการเข้ารหัส (เช่นข้อต่อหลวมเป็นต้น) หรือไม่?

4
การบำรุงรักษาโค้ดเบสที่เพิ่มขึ้นและหลากหลายพร้อมการผสานอย่างต่อเนื่อง
ฉันต้องการความช่วยเหลือเกี่ยวกับปรัชญาและการออกแบบการตั้งค่าการรวมระบบอย่างต่อเนื่อง การตั้งค่า CI ปัจจุบันของเราใช้ buildbot เมื่อฉันเริ่มออกแบบมันฉันได้รับมรดก (ก็ไม่ใช่อย่างเคร่งครัดเนื่องจากฉันมีส่วนร่วมในการออกแบบเมื่อหนึ่งปีก่อน) ผู้สร้าง CI ตามความต้องการซึ่งได้รับการปรับแต่งให้ทำงานทั้งตัวในเวลาเดียวกันในชั่วข้ามคืน หลังจากนั้นไม่นานเราตัดสินใจว่าสิ่งนี้ไม่เพียงพอและเริ่มสำรวจกรอบ CI ที่แตกต่างกันในที่สุดก็เลือก buildbot หนึ่งในเป้าหมายของฉันในการเปลี่ยนไปเป็น buildbot (นอกเหนือจากการเพลิดเพลินไปกับความพิเศษทั้งหมดที่หวือ - ปัง) คือการเอาชนะความไม่เพียงพอของผู้สร้างรายต่อคืนที่ไม่หยุดยั้งของเรา ขำขันฉันสักครู่แล้วให้ฉันอธิบายสิ่งที่ฉันได้รับมรดก codebase สำหรับ บริษัท ของฉันเป็นแอพพลิเคชั่น c ++ Windows ที่ไม่ซ้ำกันเกือบ 150 รายการโดยแต่ละรายการมีการพึ่งพาไลบรารีภายในหนึ่งโหลขึ้นไป (และอีกมากมายในไลบรารีของบุคคลที่สามเช่นกัน) บางไลบรารีเหล่านี้มีการพึ่งพาซึ่งกันและกันและมีแอพพลิเคชั่นที่ขึ้นอยู่กับว่า (ในขณะที่พวกเขาไม่มีส่วนเกี่ยวข้อง) จะต้องสร้างด้วยบิลด์เดียวกันของไลบรารีนั้น ครึ่งหนึ่งของแอปพลิเคชันและไลบรารีเหล่านี้ถูกพิจารณาว่าเป็น "ดั้งเดิม" และไม่สามารถถอดออกได้และจะต้องสร้างขึ้นด้วยการกำหนดค่าที่แตกต่างกันหลายอย่างของคอมไพเลอร์ IBM (ซึ่งฉันได้เขียนคลาสย่อยที่ไม่ซ้ำกันCompile) และอีกครึ่งหนึ่งShellCommands เนื่องจากไม่มีการรองรับ VSS) ผู้สร้างรายกลางคืนดั้งเดิมของเราใช้แหล่งข้อมูลทุกอย่างและสร้างสิ่งต่าง ๆ ในลำดับที่แน่นอน ไม่มีวิธีในการสร้างเพียงแอปพลิเคชันเดียวหรือเลือกการแก้ไขหรือการจัดกลุ่มสิ่งต่าง ๆ มันจะเปิดตัวเครื่องเสมือนเพื่อสร้างจำนวนของแอปพลิเคชัน มันไม่ได้แข็งแกร่งมาก …

1
ทำไมคุณต้องสร้างสคริปต์การปรับใช้ใน PowerShell เมื่อคุณมี TFS
ฉันกำลังทดลองใช้การปรับใช้อัตโนมัติ / บูรณาการอย่างต่อเนื่องและได้คุยกับหัวหน้าทีมของฉัน ฉันบอกเขาว่าฉันกำลังตรวจสอบการสร้างสคริปต์สร้าง / ปรับใช้ใน PowerShell และเขากล่าวว่าการปรับใช้อัตโนมัตินั้นง่ายมากในการติดตั้งใน TFS โดยใช้ GUI และฉันควรทำการวิจัยแทน ฉันไม่มีประสบการณ์เกี่ยวกับ TFS ยกเว้นการมุ่งมั่นที่จะควบคุมแหล่งข้อมูลจาก VS TFS จะล้มเหลวในสถานการณ์ใดและคุณจะดีขึ้นด้วย PowerShell สำหรับการปรับใช้อัตโนมัติ? มีเหตุผลและข้อดีอื่น ๆ อีกบ้างในการเลือก PowerShell แทน TFS และอีกอย่าง: ฉันสามารถเรียกใช้เครื่องมือของบุคคลที่สามได้หรือไม่เช่นลบไฟล์ JS จาก TFS หรือไม่ ข้อดีของ PowerShell ที่ฉันสามารถนึกได้: PowerShell มอบความยืดหยุ่นสูงสุด คุณสามารถสลับไปยังระบบควบคุมแหล่งอื่นได้อย่างง่ายดายเช่น Mercurial สคริปต์จะง่ายต่อการดูแลมากกว่าที่ TFS สร้าง PowerShell มีน้ำหนักเบา: คุณสามารถเรียกใช้สคริปต์บนพีซีเครื่องใดก็ได้

4
เซิร์ฟเวอร์รวมอย่างต่อเนื่อง ณ จุดใดที่น่าสนใจ
ฉันอ่านเกี่ยวกับเซิร์ฟเวอร์ CI เช่น Jenkins และฉันสงสัยว่า: มันมีประโยชน์ตรงไหน? เพราะแน่นอนสำหรับโครงการขนาดเล็กที่คุณมีเพียง 5 ชั้นเรียนและการทดสอบ 10 หน่วยไม่มีความต้องการที่แท้จริง ที่นี่เรามีการทดสอบประมาณ 1,500 เครื่องและพวกเขาผ่าน (บนเวิร์กสเตชัน Core 2 Duo เก่า) ในเวลาประมาณ 90 วินาที (เพราะพวกเขากำลังทดสอบ "หน่วย" จริง ๆ และรวดเร็วมาก) กฎที่เรามีคือเราไม่สามารถส่งรหัสเมื่อการทดสอบล้มเหลว ดังนั้นนักพัฒนาซอฟต์แวร์แต่ละคนจึงเปิดการทดสอบทั้งหมดของเขาเพื่อป้องกันการถดถอย เห็นได้ชัดว่าเนื่องจากนักพัฒนาทุกคนเปิดตัวการทดสอบทั้งหมดที่เราพบข้อผิดพลาดเนื่องจากการเปลี่ยนแปลงที่ขัดแย้งกันทันทีที่นักพัฒนารายหนึ่งดึงการเปลี่ยนแปลงของผู้อื่น (เมื่อมี) ยังไม่ชัดเจนสำหรับฉัน: ฉันควรตั้งเซิร์ฟเวอร์ CI เช่น Jenkins หรือไม่ มันจะนำอะไรมา? มันมีประโยชน์สำหรับการเพิ่มความเร็วหรือไม่ (ไม่ใช่ปัญหาในกรณีของเรา) มีประโยชน์หรือไม่เพราะงานสร้างเก่าสามารถสร้างใหม่ได้? (แต่เราสามารถทำเช่นนี้กับ Mercurial โดยตรวจสอบ revs เก่า) โดยทั่วไปฉันเข้าใจว่ามันมีประโยชน์ แต่ฉันก็ไม่เห็นว่าทำไม คำอธิบายใด ๆ …

4
สร้างเซิร์ฟเวอร์อย่างต่อเนื่อง (cc.net, ฮัดสัน, ไผ่, ฯลฯ ... ) ประสบการณ์การสร้างระยะไกล?
ขณะนี้เราใช้เซิร์ฟเวอร์ cc.net เพียงครั้งเดียวสำหรับกระบวนการสร้างซึ่งสร้างทั้ง. net (โดยใช้ msbuild & nant) และ java (โดยใช้ maven และ ant) CC.net ตรวจสอบการควบคุมแหล่งที่มาและทริกเกอร์การสร้างระยะไกลที่ทำงานบนเซิร์ฟเวอร์ที่แยกต่างหาก CC.net จะทำการตรวจสอบผลลัพธ์ เมื่อเราเรียกใช้งานบิลด์ระยะไกลโดยทั่วไปแล้ว: รัน nunit หรือ junit หรือสิ่งที่คล้ายกันโดยใช้ข้อมูลที่เยาะเย้ย เลือกรันสคริปต์ DB เพื่อสร้างอินสแตนซ์ฐานข้อมูลใหม่หรือกู้คืนฐานข้อมูลจากตำแหน่งที่ทราบ ใช้ซีลีเนียมหรือคล้ายกับ UI ทดสอบ รัน emma หรือ ncover เพื่อครอบคลุมรหัส สร้างระบบสำหรับสภาพแวดล้อมการปรับใช้ที่หลากหลาย (ทดสอบยอมรับผลิต) เราอาจมีการสร้างหลายครั้งในเวลาหนึ่งบาง. net และบาง java (จากทีมงานโครงการที่แตกต่างกัน) มันใช้เวลาค่อนข้างนานในการทำให้รีโมตบิลด์ทำงานเมื่อเราตั้งค่าโปรเจ็กต์ใหม่และเรารู้สึกว่าต้องมีบางสิ่งที่เหมาะกับรีโมตบิวด์มากกว่า cc.net ใครบ้างมีประสบการณ์กับการสร้างระยะไกลด้วยระบบการรวมอย่างต่อเนื่อง? ฉันไม่ต้องการรายการคุณสมบัติของเซิร์ฟเวอร์ CI ฉันรู้สึกซาบซึ้งมากขึ้นเกี่ยวกับวิธีที่คุณใช้ในหลาย ๆ ภาษาสภาพแวดล้อมของเซิร์ฟเวอร์หลายตัว
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.