Jenkins vs Travis-CI คุณจะใช้อันไหนกับโครงการโอเพ่นซอร์ส [ปิด]


270

สำหรับโครงการของฉันฉันต้องเลือกระหว่าง Jenkins และ Travis-CI ฉันใช้ Jenkins มาหลายปีแล้ว แต่ฉันก็อ่านบทวิจารณ์ที่ดีเกี่ยวกับ Travis-CI ด้วย

คุณจะใช้อันไหนกับโครงการโอเพ่นซอร์ส ประโยชน์หรือข้อดีหลักของทั้งคู่คืออะไร

คำตอบ:


293

Travis-ci และ Jenkins ในขณะที่ทั้งสองเป็นเครื่องมือสำหรับการรวมอย่างต่อเนื่องจะแตกต่างกันมาก

Travis เป็นบริการโฮสต์ (ฟรีสำหรับโอเพ่นซอร์ส) ในขณะที่คุณต้องโฮสต์ติดตั้งและกำหนดค่า Jenkins

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

คุณสามารถมีคุณสมบัติที่คล้ายกันกับเจนกินส์ถ้าคุณใช้หนึ่งในปลั๊กอินต่อไปนี้:

  • Travis YML Plugin - คำเตือน: ดูเหมือนจะไม่เป็นที่นิยมอาจไม่สมบูรณ์เมื่อเทียบกับเทรวิสจริง
  • Jervis - การดัดแปลงของ Jenkins เพื่อให้อ่านสร้างงานจาก.jervis.ymlไฟล์ที่พบที่รากของรหัสโครงการ หาก.jervis.ymlไม่มีอยู่ก็จะกลับไปใช้.travis.ymlไฟล์แทน

มีบริการโฮสต์อื่น ๆ ที่คุณอาจพิจารณาสำหรับการรวมอย่างต่อเนื่อง (รายการที่ไม่ครบถ้วน):


วิธีการเลือก

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

ฉันจะเลือกตัวเลือกต่อไปนี้ขึ้นอยู่กับที่ที่เก็บรหัสของคุณอยู่:

  • ในบ้าน→เจนกินส์หรือ gitlab-ci
  • Github.com → Travis-CI

ในการตั้งค่า Travis-CI ในโครงการ github สิ่งที่คุณต้องทำคือ:

  • เพิ่มไฟล์. travis.ymlที่รากของโครงการของคุณ
  • สร้างบัญชีที่ travis-ci.com และเปิดใช้งานโครงการของคุณ

คุณสมบัติที่คุณได้รับคือ:

  • เทรวิสจะทำการทดสอบของคุณทุกครั้งที่ทำใน repo ของคุณ
  • เทรวิสจะเรียกใช้การทดสอบของคุณกับผู้ให้การร้องขอแบบดึงทุกราย

25
จากประสบการณ์ของฉันการใช้เจนกินส์มากกว่าเทรวิสจะช่วยให้คุณประหยัดได้มาก ( .travis.yml!) ฉันมีโครงการ github หลายอย่างที่ฉันใช้เจนกินส์เป็นของตัวเองและฉันก็ไม่เสียใจเลย หากคุณมีความสามารถในการจัดการเจนกินส์ของคุณเองฉันขอแนะนำให้ใช้ตัวเลือกนั้น ยินดีที่ได้ควบคุม 100% สภาพแวดล้อม CI ของคุณ
Simon Forsberg

21
ปลั๊กอิน Jenkins Pipeline (ซึ่งมีไว้เพื่อแทนที่โครงการฟรีสไตล์ในสถานการณ์ส่วนใหญ่) อนุญาตให้วางสคริปต์ groovy ไปป์ไว้ในไฟล์ (โดยปกติจะเรียกว่า "Jenkinsfile") ในโครงการของคุณทำให้มีคุณสมบัติเดียวกับที่กล่าวถึงใน Travis-CI ด้านบนพร้อมโบนัสเพิ่มเติมจากการได้รับการสนับสนุนจากทีมเจนกินส์
KhainTCore

48

ฉันทำงานกับทั้ง Travis และ Jenkins: ฉันจะทำรายการคุณสมบัติของทั้งสอง:

ตั้งค่า CI สำหรับโครงการ

เทรวิสมาในสถานที่แรก มันง่ายมากที่จะติดตั้ง ใช้เวลาน้อยกว่าหนึ่งนาทีในการตั้งค่าด้วย GitHub

  1. เข้าสู่ระบบ GitHub
  2. สร้าง Web Hook สำหรับ Travis ( แก้ไข:
  3. กลับไปที่ Travis และลงชื่อเข้าใช้ด้วยข้อมูลรับรอง GitHub ของคุณ
  4. ซิงค์ GitHub repo ของคุณและเปิดใช้งานคำขอพุชและดึง

เจนกินส์:

  1. สร้างสภาพแวดล้อม (Master Jenkins)
  2. สร้างเว็บ hooks
  3. กำหนดค่าแต่ละงาน (ใช้เวลาเปรียบเทียบกับเทรวิส)

เรียกใช้งานบิลด์ใหม่

เทรวิส:ทุกคนที่มีสิทธิ์การเขียนบน GitHub สามารถเรียกใช้งานบิลด์ใหม่ได้โดยคลิกที่ `เริ่มสร้างใหม่

Jenkins:เรียกใช้งานบิลด์ใหม่โดยอ้างอิงจากวลี คุณให้ข้อความวลีใน PR / commit reverify jenkinsคำอธิบายเช่น

สภาพแวดล้อมการควบคุม

Travis: Travis จัดเตรียมสภาพแวดล้อมที่โฮสต์ มันติดตั้งซอฟต์แวร์ที่จำเป็นสำหรับทุกรุ่น มันเป็นกระบวนการที่ใช้เวลานาน

Jenkins:ตั้งค่าครั้งเดียว ติดตั้งซอฟต์แวร์ที่จำเป็นทั้งหมดบนเครื่องโหนด / บ่าวจากนั้นสร้าง / ทดสอบบนสภาพแวดล้อมที่ติดตั้งไว้ล่วงหน้า

สร้างบันทึก:

เทรวิส:รองรับการสร้างบันทึกเพื่อวางใน Amazon S3

Jenkins:ติดตั้งง่ายด้วยปลั๊กอิน build วัตถุ


คุณช่วยบอกได้ไหมว่า S3 คืออะไร
Pooja

@Pooja Amazon S3
adrianN

30

ฉันจะแนะนำ Travis สำหรับโครงการโอเพ่นซอร์ส ง่ายเพียงกำหนดค่าและใช้งาน

ขั้นตอนการตั้งค่าง่าย ๆ :

  1. ควรมีบัญชีGITHUBและลงทะเบียนในเว็บไซต์Travis CIโดยใช้บัญชี GITHUB ของคุณ
  2. เพิ่ม.travis.ymlไฟล์ในรูทของโครงการของคุณ เพิ่ม Travis เป็นบริการในหน้าการตั้งค่าที่เก็บของคุณ

ตอนนี้ทุกครั้งที่คุณยอมรับในพื้นที่เก็บข้อมูลของคุณเทรวิสจะสร้างโครงการของคุณ คุณสามารถทำตามขั้นตอนง่าย ๆ เพื่อเริ่มต้นกับ Travis CI


7
ข้อแม้สำหรับการใช้ Travis CI สำหรับโอเพ่นซอร์ส: มันรันบิลด์และทดสอบบน Linux หรือ OSX ไม่ใช่ Windows ดังนั้นหากโครงการของคุณคือพูดว่า. NET หรือ PowerShell จะต้องมีการเขียนในเวอร์ชันข้ามแพลตฟอร์มของ. NET (โมโนหรือ. NET Core) หรือ PowerShell (PowerShell Core) เพื่อให้คุณสามารถใช้ Travis CI . ขึ้นของ Windows ง่ายเครื่องมือ CI จัดเป็นAppveyor ..
ไซมอน Tewsi
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.