ข้ามไปยังเนื้อหาหลัก

Upload Build Artifact (อัปโหลดผลลัพธ์ Build Artifact)

เผยแพร่ผลลัพธ์ build ขึ้นสู่ระบบจัดเก็บ Artifact ของ Loha เป็นไฟล์ให้ผู้คนดาวน์โหลด

การอ้างอิง (Reference): loha/upload-artifact@v1

หมวดหมู่: Build (การสร้างอิมเมจและแคช)

รันไทม์ (Runtime): curlimages/curl:8.5.0 (รันแบบ non-root, ตรึงด้วย digest)

สัญญาอนุญาต (License): Apache-2.0

ควรใช้เมื่อ​

ใช้เผยแพร่ไฟล์ที่ต้องการให้ผู้คนดาวน์โหลดหลัง build เสร็จ เช่น ไฟล์ binary สำหรับ release, ไฟล์ ZIP หรือรายงานผลทดสอบ task นี้ไม่ใช่วิธีส่งไฟล์ระหว่าง job ในกลุ่ม build เดียวกัน หากต้องการส่งไฟล์ให้ job ถัดไป ให้ประกาศ artifacts: { paths: [...] } ที่ job ผู้สร้างไฟล์ แล้วให้ job ที่ต้องการใช้ไฟล์ระบุ job นั้นไว้ใน needs: Loha จะบันทึกและกู้คืนไฟล์ให้โดยอัตโนมัติ

พารามิเตอร์​

พารามิเตอร์ชนิดค่าเริ่มต้นจำเป็นคำอธิบาย
PATHstring—ใช่เส้นทาง (path) ของไฟล์หรือโฟลเดอร์ที่จะเผยแพร่ โดยคิดเทียบจาก WORKING_DIRECTORY
NAMEstring—ใช่ชื่อทางตรรกะที่คงที่สำหรับระบุ artifact เพื่อให้การสั่ง retry ทำงานซ้ำได้อย่างถูกต้อง (idempotent)
KINDenum: archive, binary, report, filefileไม่ประเภทของ artifact ได้แก่ archive, binary, report หรือ file
CONTENT_TYPEstringapplication/octet-streamไม่MIME type ของไฟล์สำหรับใช้ระบุเมื่อดาวน์โหลด artifact
WORKING_DIRECTORYstring.ไม่ไดเรกทอรีทำงานของ task โดยคิดเทียบจาก root ของ workspace

พื้นที่ทำงาน (Workspaces)​

  • source (จำเป็น): เชื่อมโยงจาก pipeline workspace source

ผลลัพธ์ (Results)​

ผลลัพธ์ (Result)คำอธิบาย
ARTIFACT_IDรหัสประจำตัว (ID) ของ artifact ที่ได้รับการเผยแพร่เรียบร้อยแล้ว

การทำงาน​

task จะอ่านไฟล์จาก PATH ภายใต้ไดเรกทอรี WORKING_DIRECTORY แล้วเผยแพร่ขึ้นระบบด้วยชื่อระบุทางตรรกะ NAME ที่คงที่ เพื่อให้การรันซ้ำ (retry) ทำงานได้อย่างปลอดภัยและไม่สร้างข้อมูลซ้ำซ้อน (idempotent) พร้อมทั้งระบุ KIND และ CONTENT_TYPE เพื่อให้อธิบายชนิดของไฟล์ได้อย่างถูกต้อง โดยจะได้ค่า ARTIFACT_ID สำหรับใช้อ้างอิงไฟล์ผลลัพธ์ในลำดับถัดไป ไฟล์ที่เผยแพร่จะนับรวมในโควตาพื้นที่จัดเก็บ artifact ของ workspace และถูกเก็บไว้ตามระยะเวลาที่ระบบกำหนด (ค่าเริ่มต้น 14 วัน)

การแก้ปัญหา​

ปัญหา: พบข้อความ "build artifact storage is not available for this run"

วิธีแก้: deployment นี้ยังไม่ได้ตั้งค่าระบบจัดเก็บ artifact จึงไม่สามารถเผยแพร่ไฟล์ได้ โปรดแจ้งผู้ดูแลระบบ Loha ให้เปิดใช้งาน


ปัญหา: พบข้อความ "artifact file not found"

วิธีแก้: ตรวจสอบว่า PATH มีอยู่จริงเมื่อเทียบกับ WORKING_DIRECTORY ณ เวลาที่ step ทำงาน ไฟล์ต้องถูกสร้างโดย step ก่อนหน้าใน job เดียวกัน หรือถูกกู้คืนด้วย artifacts: จาก job ที่ job นี้ระบุไว้ใน needs:


ปัญหา: job ถัดไปหาไฟล์ที่อัปโหลดไว้ไม่พบ

วิธีแก้: task นี้เผยแพร่ไฟล์สำหรับดาวน์โหลด ไม่ได้ส่งไฟล์ให้ job ถัดไป ให้ประกาศ artifacts: { paths: [...] } ที่ job ผู้สร้างไฟล์ และเพิ่ม job นั้นไว้ใน needs: ของ job ที่ต้องใช้ไฟล์