ฉันจะตั้งค่าเครื่อง C # build ได้อย่างไรและทำไม? [ปิด]


144

ฉันทำงานกับทีมพัฒนาขนาดเล็ก (4 คน) ในโครงการ C # ฉันได้เสนอการตั้งค่าเครื่องสร้างซึ่งจะทำการสร้างและทดสอบทุกคืนของโครงการเพราะฉันเข้าใจว่านี่เป็นสิ่งที่ดี ปัญหาคือเราไม่มีงบประมาณจำนวนมากที่นี่ดังนั้นฉันต้องพิสูจน์ค่าใช้จ่ายให้กับพลังที่เป็น ดังนั้นฉันต้องการทราบ:

  • ฉันจะต้องมีเครื่องมือ / ใบอนุญาตประเภทใด ตอนนี้เราใช้ Visual Studio และ Smart Assembly เพื่อสร้างและบังคับใช้สำหรับการควบคุมแหล่งที่มา ฉันจะต้องการสิ่งอื่นหรือมีงาน cron ที่เทียบเท่าสำหรับการเรียกใช้สคริปต์อัตโนมัติหรือไม่
  • สิ่งนี้จะได้รับฉันอย่างแน่นอนนอกเหนือจากสิ่งบ่งบอกถึงโครงสร้างที่เสียหายหรือไม่? ฉันควรตั้งค่าโครงการทดสอบในโซลูชันนี้ (ไฟล์ sln) ที่จะเรียกใช้โดยสคริปต์เหล่านี้ดังนั้นฉันจึงสามารถทดสอบฟังก์ชั่นบางอย่างได้หรือไม่ ขณะนี้เรามีการทดสอบสองแบบเนื่องจากเรายังไม่มีเวลา (หรือประสบการณ์ที่ตรงไปตรงมา) เพื่อทำการทดสอบหน่วยที่ดี
  • ฉันจะต้องใช้ฮาร์ดแวร์ชนิดใดสำหรับสิ่งนี้
  • เมื่อสร้างบิลด์เสร็จสิ้นแล้วและผ่านการทดสอบแล้วมันเป็นวิธีปฏิบัติทั่วไปหรือไม่ที่จะสร้างบิวด์ในไซต์ ftp หรือมีวิธีอื่นในการเข้าถึงภายใน แนวคิดคือเครื่องจักรนี้สร้างการสร้างและเราทุกคนไปที่มัน แต่สามารถแก้ไขข้อบกพร่องการสร้างถ้าเราต้อง
  • เราควรสร้างสิ่งนี้บ่อยแค่ไหน?
  • มีการจัดการพื้นที่อย่างไร หากเราสร้างงานยามค่ำคืนเราควรเก็บงานสร้างเก่า ๆ ไว้ทั้งหมดหรือเริ่มทิ้งงานพวกมันหลังจากผ่านไปประมาณหนึ่งสัปดาห์หรือมากกว่านั้น?
  • มีอะไรอีกที่ฉันไม่เห็นที่นี่หรือ

    ฉันรู้ว่านี่เป็นหัวข้อที่มีขนาดใหญ่มากและฉันเพิ่งจะเริ่ม ฉันไม่พบคำถามนี้ซ้ำซ้อนที่นี่และหากมีหนังสือเล่มหนึ่งที่ฉันควรจะได้รับโปรดแจ้งให้เราทราบ

    แก้ไข: ในที่สุดฉันก็ไปทำงาน! ฮัดสันนั้นยอดเยี่ยมมากและ FxCop กำลังแสดงให้เห็นว่าคุณสมบัติบางอย่างที่เราคิดว่าถูกนำไปใช้งานนั้นไม่สมบูรณ์จริง ๆ เราต้องเปลี่ยนประเภทของตัวติดตั้งจาก Old-And-Busted vdproj เป็น New Hotness WiX

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


  • 5
    ยอดเยี่ยมดีใจที่ได้ยินว่าคุณรักฮัดสัน :) มันไม่ยากเลยหรือที่จะจินตนาการถึงชีวิตด้วยแพลตฟอร์ม CI ตอนนี้?
    อัลเลนไรซ์

    2
    มันยากมาก. การเปลี่ยนแปลงนั้นคุ้มค่ามาก
    mmr

    คำตอบ:


    147

    อัปเดต: Jenkinsเป็นรุ่นล่าสุดของฮัดสัน ทุกคนควรใช้เจนกินส์ตอนนี้ ฉันจะอัปเดตลิงก์ตาม

    ฮัดสันนั้นฟรีและง่ายมากในการกำหนดค่าและจะทำงานบน VM ได้อย่างง่ายดาย

    ส่วนหนึ่งจากโพสต์เก่าของฉัน:

    เราใช้มันเพื่อ

    • ปรับใช้บริการ Windows
    • ปรับใช้บริการเว็บ
    • เรียกใช้ MSTests และแสดงข้อมูลมากเท่ากับการทดสอบ Junit
    • ติดตามงานต่ำ med งานสูง
    • คำเตือนและข้อผิดพลาดของเทรนด์กราฟ

    นี่คือบางส่วนของสิ่ง. net ที่ฮัดสันให้การสนับสนุน

    นอกจากนี้พระเจ้าห้ามคุณกำลังใช้ปลอดภัยแหล่งที่มาภาพจะสนับสนุนด้วยเช่นกันว่า ฉันขอแนะนำให้คุณดูที่บทความของ Redsolo ในการสร้างโครงการ. net โดยใช้ Hudson

    คำถามของคุณ

    • ถาม : ฉันจะต้องใช้เครื่องมือ / ใบอนุญาตประเภทใด ตอนนี้เราใช้ Visual Studio และ Smart Assembly เพื่อสร้างและบังคับใช้สำหรับการควบคุมแหล่งที่มา ฉันจะต้องการสิ่งอื่นหรือมีงาน cron ที่เทียบเท่าสำหรับการเรียกใช้สคริปต์อัตโนมัติหรือไม่

    • ตอบ:ฉันเพิ่งติดตั้ง visual Studio บนสำเนาใหม่ของ VM ที่ใช้ระบบปฏิบัติการ Windows Server ที่เพิ่งได้รับการติดตั้งใหม่ ดังนั้นคุณต้องมีใบอนุญาตในการจัดการ ฮัดสันจะติดตั้งตัวเองเป็นบริการ windows และทำงานบนพอร์ต 8080 และคุณจะกำหนดความถี่ที่คุณต้องการให้มันสแกนที่เก็บรหัสของคุณสำหรับรหัสที่อัพเดทหรือคุณสามารถบอกให้มันสร้างในเวลาที่กำหนด กำหนดค่าทั้งหมดผ่านเบราว์เซอร์

    • ถาม:สิ่งนี้จะได้รับฉันอย่างแน่นอนนอกเหนือจากสิ่งบ่งบอกถึงโครงสร้างที่เสียหายหรือไม่? ฉันควรตั้งค่าโครงการทดสอบในโซลูชันนี้ (ไฟล์ sln) ที่จะเรียกใช้โดยสคริปต์เหล่านี้ดังนั้นฉันจึงสามารถทดสอบฟังก์ชั่นบางอย่างได้หรือไม่ ขณะนี้เรามีการทดสอบสองแบบเนื่องจากเรายังไม่มีเวลา (หรือประสบการณ์ที่ตรงไปตรงมา) เพื่อทำการทดสอบหน่วยที่ดี

      ตอบ:คุณจะได้รับอีเมลในครั้งแรกที่บิลด์ล้มเหลวหรือไม่เสถียร บิลด์ไม่เสถียรหากการทดสอบหน่วยล้มเหลวหรือสามารถทำเครื่องหมายว่าไม่เสถียรผ่านเกณฑ์จำนวนเท่าใดก็ได้ที่คุณตั้งไว้ เมื่อการทดสอบหน่วยหรือการสร้างล้มเหลวคุณจะได้รับอีเมลและจะแจ้งให้คุณทราบสาเหตุและวิธีการล้มเหลว ด้วยการกำหนดค่าของฉันเราจะได้รับ:

      • รายการของการกระทำทั้งหมดตั้งแต่งานสร้างล่าสุด
      • กระทำการจดบันทึกของการกระทำเหล่านั้น
      • รายการของไฟล์ที่เปลี่ยนแปลงในคอมมิท
      • เอาต์พุตคอนโซลจาก build เองแสดงข้อผิดพลาดหรือทดสอบความล้มเหลว
    • ถาม:ฮาร์ดแวร์ประเภทใดที่ฉันต้องการสำหรับสิ่งนี้

      ตอบ: VM จะพอเพียง

    • ถาม:เมื่อสร้างบิลด์เสร็จแล้วและผ่านการทดสอบแล้วมันเป็นวิธีปฏิบัติทั่วไปหรือไม่ที่จะสร้างบิวด์นั้นบนไซต์ ftp หรือมีวิธีอื่นในการเข้าถึงภายใน แนวคิดคือเครื่องจักรนี้สร้างการสร้างและเราทุกคนไปที่มัน แต่สามารถแก้ไขข้อบกพร่องการสร้างถ้าเราต้อง

      ตอบ:ฮัดสันสามารถทำทุกสิ่งที่คุณต้องการด้วยการรวม ID ด้วยการแฮช md5 อัปโหลดคัดลอกเก็บถาวรและอื่น ๆ มันทำสิ่งนี้โดยอัตโนมัติและให้คุณมีประวัติการสร้างสิ่งประดิษฐ์ในระยะยาว

    • ถาม:เราควรสร้างสิ่งนี้บ่อยแค่ไหน?

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

    • ถาม: มีการจัดการพื้นที่อย่างไร หากเราสร้างงานยามค่ำคืนเราควรเก็บงานสร้างเก่าไว้ทั้งหมดหรือเริ่มทิ้งงานพวกมันหลังจากผ่านไปประมาณหนึ่งสัปดาห์หรือมากกว่านั้น?

      ตอบ:ขึ้นอยู่กับคุณหลังจากนั้นฉันย้ายสิ่งประดิษฐ์สร้างของเราไปยังที่เก็บข้อมูลระยะยาวหรือลบทิ้ง แต่ข้อมูลทั้งหมดที่เก็บไว้ในไฟล์ข้อความ / ไฟล์ xml ที่ฉันเก็บไว้จะทำให้ฉันเก็บ changelog กราฟแนวโน้ม ฯลฯ บนเซิร์ฟเวอร์ด้วย verrrry ใช้พื้นที่น้อย นอกจากนี้คุณสามารถตั้งค่าฮัดสันให้เก็บเฉพาะสิ่งประดิษฐ์จากส่วนท้าย # ของงานสร้าง

    • ถาม:มีอะไรอีกที่ฉันไม่ได้เห็นที่นี่บ้าง

      ตอบ:ไม่ได้ไปรับฮัดสันแล้วคุณจะไม่ผิดหวัง!


    1
    คำตอบที่ดี! ฉันใช้เพียงแค่ CruiseControl แต่คุณขายดีสำหรับฮัดสัน
    Ben S

    1
    ขอบคุณสำหรับคำแนะนำ - ฮัดสันดูเหมือนเครื่องมือที่เหมาะสม
    mmr

    1
    คุณช่วยใส่ลิงก์ในคำแรกได้ไหม
    Jhonny D. Cano -Leftware-

    คุณขอลิงค์ไปยังฮัดสันที่ไหน ถ้าเป็นเช่นนั้นผมเพิ่มก็โทรดี :)
    อัลเลนข้าว

    5
    ในกรณีที่ทุกคนพลาดมันฮัดสันถูกแยก / เปลี่ยนชื่อเป็นเจนกินส์โดยผู้พัฒนาดั้งเดิม ตอนนี้คุณเลือกที่ดีที่สุดสำหรับเจนกินส์แล้วเนื่องจากคำถามนี้จะทำให้คุณมั่นใจ
    Jonik

    26

    เราโชคดีมากกับคอมโบต่อไปนี้:

    1. Visual Studio (โดยเฉพาะการใช้เครื่องมือบรรทัดคำสั่ง MSBuild.exe และส่งผ่านไฟล์โซลูชันของเราลบความต้องการสคริปต์ msbuild)
    2. NAnt (เช่นไวยากรณ์ XML / ไลบรารีงานดีกว่า MSBuild นอกจากนี้ยังมีตัวเลือกสำหรับการดำเนินการควบคุม P4 src)
    3. CruiseControl.net - สร้างขึ้นในเว็บแดชบอร์ดสำหรับการตรวจสอบ / เริ่มสร้าง

    CCNet มีตัวแจ้งเตือนในตัวเพื่อส่งอีเมลเมื่อสร้างสำเร็จ / ล้มเหลว

    ในการให้เหตุผล: สิ่งนี้จะช่วยให้นักพัฒนาทำการโหลดคู่มือการสร้างและทำหลายอย่างเพื่อกำจัดข้อผิดพลาดของมนุษย์ออกจากสมการ มันยากมากที่จะหาจำนวนผลกระทบนี้ แต่เมื่อคุณทำคุณจะไม่กลับไป การมีกระบวนการทำซ้ำเพื่อสร้างและปล่อยซอฟต์แวร์ถือเป็นสิ่งสำคัญยิ่ง ฉันแน่ใจว่าคุณได้รับสถานที่ที่พวกเขาสร้างซอฟต์แวร์ด้วยมือและมันออกไปในป่าเพียงเพื่อให้คนสร้างของคุณพูดว่า "อ๊ะฉันต้องลืมที่จะรวม DLL ใหม่!"

    เกี่ยวกับฮาร์ดแวร์: ทรงพลังเท่าที่คุณจะได้รับ พลังงาน / หน่วยความจำเพิ่มเติม = เวลาสร้างเร็วขึ้น หากคุณสามารถซื้อได้คุณจะไม่มีวันเสียใจที่จะได้เครื่องจักรที่ยอดเยี่ยมไม่ว่าจะเป็นกลุ่มเล็ก ๆ

    บนพื้นที่ว่าง: ช่วยให้มีพื้นที่ว่างบนฮาร์ดดิสก์มากมาย คุณสามารถสร้างสคริปต์ NAnt เพื่อลบไฟล์ระดับกลางทุกครั้งที่บิลด์เริ่มต้นดังนั้นปัญหาที่แท้จริงคือการเก็บประวัติบันทึกและตัวติดตั้งแอปพลิเคชันเก่า เรามีซอฟต์แวร์ที่ตรวจสอบพื้นที่ดิสก์และส่งการแจ้งเตือน จากนั้นเราทำความสะอาดไดรฟ์ด้วยตนเอง โดยปกติจะต้องทำทุก 3-4 เดือน

    ในการแจ้งเตือนการสร้าง: สิ่งนี้ถูกสร้างไว้ใน CCNet แต่ถ้าคุณกำลังจะเพิ่มการทดสอบอัตโนมัติเป็นขั้นตอนเพิ่มเติมให้สร้างสิ่งนี้ในโครงการจากการไป มันยากมากที่จะทำการทดสอบกลับหลังเมื่อโครงการมีขนาดใหญ่ มีกรอบข้อมูลมากมายในกรอบการทดสอบ (อาจเป็นข้อมูลมากมายเกี่ยวกับ SO เช่นกัน) ดังนั้นฉันจะเลื่อนการตั้งชื่อเครื่องมือเฉพาะใด ๆ


    ใช่ฉันมีประสบการณ์ที่ยอดเยี่ยมกับ CC.NET เช่นกัน :)
    cwap

    คำตอบที่ดียกเว้นข้อกำหนดของฮาร์ดแวร์ เขากำลังสร้างทุกคืนดังนั้นฉันสงสัยว่าเขาจะสนใจถ้าใช้เวลาสองสามชั่วโมงในการรวบรวมและทดสอบ ฉันยังแนะนำให้ตั้งค่าสิ่งทั้งหมดใน VM บนฮาร์ดแวร์ที่มีอยู่แล้ว
    Ben S

    ขอบคุณสำหรับเคล็ดลับ ฉันจะใช้สิ่งนั้นในการให้เหตุผล
    mmr

    1
    เราใช้เครื่องสร้างที่นี่กับ NAnt / Subversion / CC.Net สำหรับการสร้าง C # และ C ++ และเป็นเครื่องมือที่ยอดเยี่ยมจริง ๆ เพื่อให้แน่ใจว่าคุณยังไม่ได้ทำลายโครงการอื่นใด มันลบความกลัวมากที่จะทำลายโครงการอื่นเมื่อเปลี่ยนห้องสมุดเพราะคุณจะเห็นมันในไม่ช้าถ้ามันทำลายทุกอย่าง
    Julien Roncaglia

    11

    ในสถานที่ทำงานของฉันก่อนหน้าเราใช้TeamCity มันใช้งานง่ายและทรงพลัง สามารถใช้งานได้ฟรีโดยมีข้อ จำกัด บางประการ นอกจากนี้ยังมีการสอนเกี่ยวกับค่าเล็กน้อยปลดเปลื้อง เหตุผลที่เราไม่ได้ใช้ CruiseControl.NET ก็คือเรามีโครงการขนาดเล็กจำนวนมากและมันค่อนข้างเจ็บปวดในการตั้งค่าแต่ละรายการใน CC.NET ฉันอยากจะแนะนำ TeamCity เพื่อสรุปว่าคุณไปสู่โอเพนซอร์สหรือไม่ CC.NET คือพ่อที่ยิ่งใหญ่ที่มีช่วงการเรียนรู้ที่สูงขึ้นเล็กน้อย หากงบประมาณของคุณอนุญาตให้คุณไปกับ TeamCity หรือดูรุ่นฟรี


    10

    อย่างไร? มีลักษณะที่ Carel Lotz ของบล็อก

    ทำไม? มีสาเหตุหลายประการที่ฉันสามารถคิดได้:

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

    บทความของ Martin Fowler เกี่ยวกับการรวมอย่างต่อเนื่องยังคงเป็นข้อความที่ชัดเจน ลองดูสิ!


    5

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

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

    คุณควรสร้างเครื่องสร้างใหม่ทุกครั้งที่เช็คอินตลอดทั้งวัน ด้วย Cruise Control คุณสามารถรับไอคอนบนทาสก์บาร์ที่เปลี่ยนเป็นสีแดง (และพูดกับคุณได้!) เมื่อบิลด์เสีย

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

    เป็นการดีที่คุณควรมีเว็บไซต์ภายในที่สามารถดาวน์โหลดบิลด์และมีปุ่มที่คุณสามารถคลิกเพื่อเผยแพร่บิลด์บิลด์ก่อนหน้านี้


    1
    จะสนใจฟังเหตุผลจากผู้ลงคะแนนเสียงมาก!
    Daniel Earwicker

    1
    อย่างที่ฉันจะเป็นคำตอบที่ดีสำหรับคำถาม ฉันชอบประเด็นเกี่ยวกับการตีพิมพ์และการกำหนดเวอร์ชันเป็นพิเศษ
    mmr

    5

    แค่พยายามสร้างสิ่งที่ mjmarsh พูดเพราะเขาวางรากฐานที่ดี ...

    • Visual Studio MSBuild ทำงานได้ดี
    • NAnt
    • NantContrib สิ่งนี้จะจัดเตรียมงานเพิ่มเติมเช่นการดำเนินการแบบบังคับ
    • CruiseControl.net นี่เป็นพื้นอีกครั้ง "สร้างแดชบอร์ด" ของคุณ

    ทั้งหมดข้างต้น (บันทึกสำหรับ VS) เป็นโอเพ่นซอร์สดังนั้นคุณจึงไม่ได้ดูใบอนุญาตเพิ่มเติมใด ๆ

    ดังที่ Earwicker พูดถึงสร้างเร็วสร้างบ่อย ๆ การรู้สิ่งที่ยากจนและคุณสามารถสร้างสิ่งที่ส่งมอบได้นั้นมีประโยชน์สำหรับการจับสิ่งต่าง ๆ ก่อน

    ไม่รวมงานสำหรับnunit / nunit2ด้วยดังนั้นคุณสามารถทำการทดสอบหน่วยของคุณได้โดยอัตโนมัติ จากนั้นคุณสามารถใช้สไตล์ชีทกับผลลัพธ์และด้วยความช่วยเหลือของเฟรมเวิร์กที่ได้รับจาก CruiseControl.net มีผลการทดสอบหน่วยที่สามารถอ่านได้และสามารถพิมพ์ได้สำหรับทุกบิลด์

    เช่นเดียวกับงานndoc จัดทำเอกสารของคุณพร้อมใช้งานสำหรับทุกบิลด์

    คุณสามารถใช้งานexecเพื่อรันคำสั่งอื่น ๆ เช่นสร้าง Windows Installer โดยใช้ InstallShield


    ความคิดคือการสร้างให้มากที่สุดโดยอัตโนมัติเพราะมนุษย์ทำผิดพลาด เวลาที่ใช้ไปข้างหน้าจะช่วยประหยัดเวลาบนถนน ผู้คนไม่ต้องดูแลการสร้างโดยผ่านกระบวนการสร้าง ระบุขั้นตอนทั้งหมดของการสร้างของคุณสร้างสคริปต์ NAnt สำหรับแต่ละงานและสร้างสคริปต์ NAnt ของคุณทีละคนจนกว่าคุณจะทำกระบวนการสร้างทั้งหมดโดยอัตโนมัติ นอกจากนี้ยังทำให้งานสร้างทั้งหมดของคุณอยู่ในที่เดียวซึ่งเหมาะสำหรับการเปรียบเทียบ มีข้อผิดพลาดใน Build 426 ที่ทำงานได้ดีใน Build 380 หรือไม่ มีของที่พร้อมส่งสำหรับการทดสอบ - คว้ามันมาและทดสอบ


    ฉันลืมเกี่ยวกับ NDOC เอกสารเป็นลูกบอลที่เต็มไปด้วยแว็กซ์ที่เราจะต้องจัดการ - ขอบคุณสำหรับคำเตือน
    mmr

    4
    • ไม่ต้องมีใบอนุญาต CruiseControl.net สามารถใช้งานได้อย่างอิสระและต้องการ. NET sdk เท่านั้นในการสร้าง
    • บิลด์เซิร์ฟเวอร์แม้ไม่มีการทดสอบหน่วยอัตโนมัติยังคงมีสภาพแวดล้อมที่มีการควบคุมสำหรับการสร้างรีลีส ไม่มีอีกแล้ว "จอห์นมักจะสร้างเครื่องจักรของเขา แต่เขาก็ไม่สบายด้วยเหตุผลบางอย่างที่ฉันไม่สามารถสร้างบนเครื่องของฉัน"
    • ตอนนี้ฉันมีหนึ่งการตั้งค่าในเซสชันพีซีแบบเสมือน
    • ใช่. บิลด์จะต้องถูกทิ้งในที่ที่สามารถเข้าถึงได้ การสร้างการพัฒนาควรเปิดการดีบัก รุ่นที่วางจำหน่ายควรปิดใช้งานแล้ว
    • บ่อยแค่ไหนขึ้นอยู่กับคุณ หากตั้งค่าอย่างถูกต้องคุณสามารถสร้างหลังจากเช็คอินแต่ละครั้งจะมีค่าใช้จ่ายน้อยมาก นี่เป็นความคิดที่ดีถ้าคุณมีการทดสอบหน่วย (หรือกำลังวางแผนว่าจะมี)
    • เก็บเหตุการณ์สำคัญและเผยแพร่ตราบเท่าที่จำเป็น มีอะไรอีกบ้างที่ขึ้นอยู่กับว่าคุณสร้างบ่อยแค่ไหน: ต่อเนื่อง? ทิ้ง ทุกวัน? รักษามูลค่าหนึ่งสัปดาห์ สัปดาห์ละครั้ง รักษามูลค่าสองเดือน

    ยิ่งโครงการของคุณใหญ่ขึ้นเท่าไหร่คุณก็จะยิ่งเห็นประโยชน์ของเครื่องจักรสร้างอัตโนมัติ


    3

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

    แน่นอนว่าคุณตั้งค่าให้สร้างในทุกการเช็คอิน (รวมอย่างต่อเนื่อง)

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


    1

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

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

    อย่างไร: สำหรับวิธีการที่ฉัน blogged เกี่ยวกับเรื่องนี้สักครู่ที่ผ่านมา: [ คลิกที่นี่ ]

    โพสต์มากกว่า 8 โพสต์ไปทีละขั้นตอนเกี่ยวกับวิธีการตั้งค่าเซิร์ฟเวอร์เจนกินส์ในสภาพแวดล้อมหน้าต่างสำหรับการแก้ปัญหา. NET


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

    สิ่งนี้ไม่ได้ให้คำตอบสำหรับคำถาม จะวิจารณ์หรือการร้องขอคำชี้แจงจากผู้เขียนแสดงความคิดเห็นด้านล่างโพสต์ของพวกเขา - คุณสามารถแสดงความคิดเห็นในโพสต์ของคุณเองและเมื่อคุณมีเพียงพอชื่อเสียงคุณจะสามารถที่จะแสดงความคิดเห็นในโพสต์ใด
    Danilo Valente

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