Jenkins Paramerized Trigger + Copy Artifact


9

ฉันกำลังทำงานเพื่อจัดตั้งเจนกินส์เพื่อจัดการงานสร้างของเรา บิลด์ประกอบประกอบด้วยตัวติดตั้ง Windows ที่มีไบนารีบางตัวที่ต้องสร้างบน Linux

นี่คือสิ่งที่ฉันมี:

  • ส่วน Windows และ Linux ถูกตั้งค่าเป็นโครงการแยกเจนกินส์
  • โครงการ Windows ได้รับการกำหนดพารามิเตอร์โดยใช้แท็ก Subversion เพื่อสร้างและปล่อย
  • ในฐานะส่วนหนึ่งของการสร้างโครงการ Windows จะเรียกใช้บิลด์ของ Subversion แท็กเดียวกันสำหรับโครงการ Linux (โดยใช้ปลั๊กอินParameterized Trigger ) จากนั้นคัดลอกส่วนจากโครงการ Linux (ใช้ปลั๊กอินCopy Artifact ) ไปยังพื้นที่ทำงานของโครงการ Windows เพื่อให้ สามารถรวมไว้ในตัวติดตั้ง Windows ได้

จุดที่ฉันติดอยู่: ตอนนี้ Copy Artifact ได้รับการตั้งค่าเพื่อคัดลอกงานสร้างที่สำเร็จครั้งล่าสุด ดูเหมือนว่าจะมีประสิทธิภาพมากกว่าในการกำหนดค่า Copy Artifact เพื่อคัดลอกจากบิลด์ที่แน่นอนที่ทริกเกอร์ Parameterized ทริกเกอร์ แต่ฉันมีปัญหาในการหาวิธีการทำงาน มีตัวเลือกสำหรับพารามิเตอร์ "build selector" ที่ฉันคิดว่ามีจุดประสงค์เพื่อช่วยในเรื่องนี้ แต่ฉันไม่สามารถเข้าใจได้ว่าควรจะตั้งค่าอย่างไร (และการทดลองแบบสุ่มกับความเป็นไปได้ต่าง ๆ นั้นค่อนข้างเจ็บปวดเมื่อสร้างใช้เวลาหนึ่งชั่วโมง) หรือสองเพื่อค้นหาความสำเร็จหรือล้มเหลว)

ฉันจะตั้งค่านี้ได้อย่างไร build selector ทำงานอย่างไร

คำตอบ:


11

หลังจากที่คุณสร้างทริกเกอร์ให้เสร็จคุณจะมีตัวแปร env ใหม่ตั้งเป็นหมายเลขบิลด์ของบิลด์ที่ถูกทริกเกอร์ที่เรียกว่า TRIGGERED_BUILD_NUMBER_ <ชื่องาน> คุณสามารถใช้สิ่งนั้นเพื่อคัดลอกสิ่งประดิษฐ์โดยเฉพาะ:

  1. Windows build (เรียกว่า " WindowsBuild ") เรียกใช้ Linux build (เรียกว่า " LinuxBuild ") โดยใช้ปลั๊กอิน Parameterized Trigger

    คุณได้รับส่วนนี้แล้วตรวจสอบให้แน่ใจว่าได้ตรวจสอบBlock จนกว่าโครงการที่ถูกทริกเกอร์จะเสร็จสิ้นการสร้างและล้มเหลวในการสร้างแน่นอนหากการสร้าง Linux ล้มเหลว

  2. ถัดไปในCopy Artifactของคุณจากขั้นตอนโครงการอื่น :

    ชื่อโครงการ: LinuxBuild

    รุ่นใด: รุ่นเฉพาะ

    หมายเลขบิลด์: $ TRIGGERED_BUILD_NUMBER_LinuxBuild (ชื่อโปรเจ็กต์ทั้งหมดมีอักขระที่ไม่ใช่ a-zA-Z หรือ 0-9 แทนที่ด้วย _; อักขระหลายตัวย่อลงใน _ เดียว)


ควรตั้งค่าตัวแปรสภาพแวดล้อม "$ TRIGGERED_BUILD_NUMBER_ <downstreamjob>" ด้วยตนเองหรือไม่ ฉันไม่พบในตัวแปรสภาพแวดล้อมต้นน้ำหรือปลายน้ำอย่างใดอย่างหนึ่ง
harish

1
พบได้จากปลั๊กอิน wiki ที่ $ TRIGGERED_BUILD_NUMBER_ <downstreamjob> ถูกตั้งค่าโดยอัตโนมัติหาก "บล็อกจนกว่าโครงการที่ทริกเกอร์จะเสร็จสิ้นการสร้าง"
harish
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.