ฉันจะโคลนงานในเจนกินส์ได้อย่างไร


231

JenkinsมีGerritปลั๊กอินในสถานที่เพื่อที่ว่าเมื่อเราทำเช็คอินเพื่อGerrit, Jenkinsดำเนินการสร้างและถ้ามันประสบความสำเร็จแล้วการปรับเปลี่ยนในGerritที่มีการยืนยัน หากบิลด์ล้มเหลวก็ไม่ได้ Jenkinsความเข้าใจของฉันอยู่ที่นี้สามารถทำได้โดยใช้งานการตั้งค่าใน ตอนนี้เราได้สร้างสาขาใหม่ ( git) และฉันคิดว่าฉันต้องโคลนงานที่มีอยู่ที่ชี้ไปยังสาขาอื่นเพื่อให้เวิร์กโฟลว์เดียวกันนี้เกิดขึ้นและการสร้างจะดำเนินการทุกการกระทำ ใครสามารถอธิบายได้ว่าฉันจะโคลนงานเหล่านี้ได้อย่างไร ฉันดูเหมือนจะไม่เห็นวิธีการที่จะทำผ่าน UI และฉันยังสามารถดูวิธีการแสดงรายการงานผ่าน UI


7
คุณควรจะสามารถ "คัดลอกงานที่มีอยู่" เป็นหนึ่งในตัวเลือกในหน้างานใหม่ ดูstackoverflow.com/questions/3133537/…
nofinator

คำตอบ:


180

หากต้องการคัดลอกงานที่มีอยู่ไปที่http://your-jenkins/newJobและใช้ตัวเลือก "คัดลอกงานที่มีอยู่" ป้อนชื่อของงานที่มีอยู่ - เจนกินส์จะตรวจสอบว่ามีอยู่จริงหรือไม่

แท็บเริ่มต้นในหน้าแรกของเจนกินส์ควรแสดงรายการงานที่มีอยู่ทั้งหมด แต่บางทีบรรพบุรุษของคุณอาจลบแท็บ คุณสามารถสร้างแท็บใหม่ที่แสดงรายการงานทั้งหมดจากhttp://your-jenkins/newView.


ระวังว่าในขณะที่คัดลอกงานที่มีอยู่คุณจะต้องให้ชื่อ (ไม่เข้ารหัสเช่นเดียวกับ url ในขณะที่เข้าถึงงาน) ดังนั้นหากชื่องานมีช่องว่างพวกเขาจะถูกเก็บไว้ สั้น ๆ ให้ใส่ชื่อดั้งเดิมของงานเท่านั้นไม่มีอะไรอื่น
เหยาเห

ด้วยการติดตั้งปลั๊กอิน ez-template "คัดลอกงานที่มีอยู่" นำไปใช้กับแม่แบบหรืองานที่ใช้แม่แบบสร้างงานใหม่ขึ้นอยู่กับแม่แบบ หากคุณต้องการคัดลอกอิสระจริง ๆ แล้วคุณสามารถลบการUse another job as a templateกำหนดค่า
user598656

146

คุณสามารถโคลนงาน:

  1. คลิกที่ลิงค์ 'รายการใหม่'
  2. ตั้งชื่อใหม่ให้กับงานของคุณ
  3. เลือกปุ่มตัวเลือก 'คัดลอกรายการที่มีอยู่'
  4. ตั้งชื่องานที่คุณต้องการโคลน
  5. คลิก 'ตกลง'

ในที่สุดคุณก็มีงานใหม่ของคุณซึ่งสะท้อนให้เห็นถึงคุณสมบัติทั้งหมดของโคลนของคุณ


117

เจนกินส์ 2.9

  1. เจนกินส์> ไอเท็มใหม่

    รายการใหม่ของเจนกินส์

  2. ป้อนชื่อรายการเช่น "MY_CLONE"

    ป้อนชื่อรายการ

  3. ระบุงานต้นฉบับ ( คัดลอกจาก )> ตกลง

    เมื่อคุณเริ่มพิมพ์ชื่อจะพบค่าที่มีอยู่ โปรดสังเกตว่านี่เป็นกรณี ๆ ไป

    คัดลอกจากตกลง

  4. คลิกที่บันทึกหากคุณต้องการเก็บค่าเริ่มต้น

  5. ขณะนี้งานทั้งสองอยู่ในตำแหน่งเดียวกัน:

    ดูงาน


3
รูปภาพมีค่าหนึ่งพันคำ ไม่พบการลดลงเล็กน้อยสำหรับชีวิตของฉัน Mulțumiri
michaelok

34

New Item> Project Name= abc> แทนที่จะFreestyle jobเลือกCopy from job name of already existing jobs

../ถ้าคุณอยู่ในโฟลเดอร์ที่คุณต้องการคัดลอกจากไดเรกทอรีแล้วใช้


ขอบคุณที่พูดถึง../
Satevg

14

หากคุณต้องการคัดลอกใน Jenkins เดียวกัน แต่ในโฟลเดอร์ย่อยต่าง ๆ ให้สร้างรายการใหม่ -> ใช้การคัดลอกจาก งานใหม่จะถูกโคลนในไดเรกทอรีเดียวกัน จากนั้นใช้ตัวเลือกย้ายเพื่อย้ายในไดเรกทอรีที่ต้องการ


นี่คือสิ่งที่ฉันใช้ การคัดลอกไปที่โฟลเดอร์เดียวกันนั้นมักจะไม่เพียงพอ ขอบคุณ!
donmartin

11

คำตอบทั้งหมดข้างต้นเป็นสิ่งที่ดี แต่ถ้าคุณสร้าง "โฟลเดอร์" สำหรับงานของคุณสิ่งต่าง ๆ จะแตกต่างกันเล็กน้อย

คลิกที่โฟลเดอร์ที่คุณต้องการสร้างงานใหม่ จากนั้นคลิก "รายการใหม่" บนเมนูด้านซ้าย ตอนนี้ URL "งานใหม่" ของคุณจะมีลักษณะเช่นนี้ (สมมติว่าคุณกำลังสร้างงานใหม่ภายใต้ "my-folder"):

http://my-jenkins:8080/job/my-folder/newJob

ภายใต้Enter an item nameป้อนชื่องานใหม่ที่คุณต้องการ จากนั้นใช้Copy fromกล่องข้อความที่ด้านล่าง ป้อนเส้นทางงานของเขาที่มางาน

เช่นหากงานต้นฉบับของคุณอยู่ในโฟลเดอร์src-folderและชื่อของงานนั้นsrc-jobคุณจะต้องป้อนsrc-folder/src-jobในกล่อง "คัดลอกจาก"

หวังว่ามันจะช่วย


ฉันยังคงพยายามหาวิธีในการคัดลอกงานข้ามโครงสร้างโฟลเดอร์: Jenkins เพิ่ม "งาน" ตามตัวอักษรสำหรับรายการใหม่แต่ละรายการที่เป็นโฟลเดอร์เช่นฉันมีงานที่localhost: 8080 / job / x / job / y / job_1ที่ x และ y เป็นโฟลเดอร์ job_1 เป็นงานจริง ฉันสามารถคัดลอกงานนี้ให้localhost: 8080 / งาน / x / งาน / z / job_1 ? ฉันพยายามอ้างอิงถึงงานทั้งหมดโดยไม่มีโชค
ไฮนซ์

1
localhost:8080/job/x/job/y/job_1ไปที่ Full project nameบนหน้าเว็บที่คุณจะเห็น ลองใช้สิ่งนั้นเมื่อคุณระบุแหล่งที่มา
ภูฏาน

ถ้าคุณมี 2 โฟลเดอร์folder1และfolder2ในระดับเดียวกันและคุณต้องการคัดลอกfolder1\job1ไปfolder2\job1คุณสามารถสร้างรายการใหม่ลงในโฟลเดอร์folder2แล้วใช้ที่จะกลับไปในโครงสร้างของโฟลเดอร์และสำเนา.. ../folder1/job1
DRz


10

ในกรณีของฉันฉันต้องคัดลอกงานจากตัวอย่างเจนกินส์หนึ่งไปยังอีกงานหนึ่ง

ดังนั้นก่อนอื่นฉันดูภายใต้โครงสร้างไดเรกทอรีของ Jenkins เก่า (ชื่องาน / ไดเรกทอรี; ยังสังเกตเห็น config.xml) และจากนั้นภายใต้โครงสร้างไดเรกทอรีของเจนกินส์ใหม่ที่ฉันสร้างไดเรกทอรีที่มีชื่อ / งานเดียวกันและคัดลอกไป config.xml ภายใต้ dir ที่สร้างขึ้นใหม่นี้

จากนั้นภายใต้ "จัดการเจนกินส์" ฉันกด "โหลดการกำหนดค่าใหม่จากดิสก์" แค่นั้นแหละ.


ขอบคุณสำหรับเคล็ดลับ "โหลดการกำหนดค่าใหม่จากดิสก์"!
Aliza

1
ใช่การทำเช่นนี้เมื่อฉันมีจำนวนมากคัดลอกหลายรายการก่อนที่จะ "โหลดจากดิสก์" คุณยังสามารถทำต้องมายากลคู่มือการบางอย่างใน CLI เช่นการค้นหา / แทนที่พารามิเตอร์บางชิ้นส่วนของข้อความ ฯลฯ ในconfig.xml โปรดทราบว่าชื่อของไดเรกทอรีที่ตั้งconfig.xmlเป็นชื่อของงานของคุณ (ดังนั้นหากไม่เหมือนกับ Rohit คุณต้องสร้างงานใหม่เพียงแค่ตั้งชื่อใหม่)
RAM237

ในความคิดของฉันเมื่อคุณมีโฟลเดอร์หลายระดับที่มีงานอยู่มากมายนี่เป็นตัวเลือกที่ดีที่สุด
cabreracanal

3

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


1

ฉันไม่สามารถคัดลอกงาน Jenkins จากโฟลเดอร์ย่อย copy fromตัวเลือกไม่ได้แสดงคำแนะนำที่ฉันกำลังมองหาโดยไม่ใช้การคัดลอกคำแนะนำชื่องานไม่ทำงาน

ดังนั้นหากคุณต้องการสร้างงานจากโฟลเดอร์ด้านนอกคุณต้องสร้างงานในโฟลเดอร์ย่อยก่อนแล้วจึงย้ายงานไปยังโฟลเดอร์อื่นที่คุณต้องการวางไว้



0

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

แปลกนะฉันรู้!

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