การดำเนินการที่ดาวน์โหลดและแยกอาร์ติแฟกต์ที่อัปโหลดซึ่งเกี่ยวข้องกับเวิร์กโฟลว์ที่กำหนดและคอมมิตหรือเกณฑ์อื่นๆ
สมมติว่าคุณมีเวิร์กโฟลว์ที่มีงานที่ในตอนท้ายอัปโหลดอาร์ติแฟกต์โดยใช้ actions/upload-artifact
และคุณต้องการดาวน์โหลดอาร์ติแฟกต์นี้ในเวิร์กโฟลว์อื่นที่รันหลังจากเวิร์กโฟลว์แรก actions/download-artifact
ไม่อนุญาตสิ่งนี้ นั่นเป็นเหตุผลที่ฉันตัดสินใจสร้างการกระทำนี้ เมื่อทราบเพียงชื่อเวิร์กโฟลว์และคอมมิต SHA หรือรายละเอียดอื่น ๆ คุณสามารถดาวน์โหลดอาร์ติแฟกต์ที่อัปโหลดก่อนหน้านี้จากเวิร์กโฟลว์อื่นที่เกี่ยวข้องกับคอมมิตนั้นหรือเกณฑ์อื่น ๆ และใช้งานได้
หากไม่ได้ระบุ
commit
หรือpr
หรือbranch
หรือrun_id
หรือworkflow_conclusion
ระบบจะดาวน์โหลดส่วนจากการรันเวิร์กโฟลว์ที่เสร็จสมบูรณ์ล่าสุด
อย่าระบุ pr
, commit
, branch
, run_id
พร้อมกันหรือ workflow_conclusion
และ run_id
พร้อมกัน เลือกเพียงหนึ่งอย่างหรือไม่มีเลย
- ชื่อ: ดาวน์โหลด artifact id: download-artifact ใช้: dawidd6/action-download-artifact@v6 พร้อมด้วย: # ตัวเลือกเสริม, โทเค็น GitHub, โทเค็นการเข้าถึงส่วนบุคคลที่มีขอบเขต `public_repo` หากจำเป็น # จำเป็น ถ้าสิ่งประดิษฐ์มาจากที่อื่น repo # จำเป็น หาก repo เป็นส่วนตัว โทเค็นการเข้าถึงส่วนบุคคลที่มีขอบเขต `repo` เป็นสิ่งจำเป็นหรือโทเค็น GitHub ในงานที่ขอบเขตการอนุญาต `การกระทำ` ตั้งค่าเป็น `อ่าน` github_token: ${{secrets.GITHUB_TOKEN}} # ตัวเลือก , ชื่อไฟล์เวิร์กโฟลว์หรือ ID # หากไม่ได้ระบุ จะถูกอนุมานจาก run_id (หากระบุ run_id) หรือจะเป็นเวิร์กโฟลว์ปัจจุบัน: workflow_name.yml # หากไม่มีการตั้งค่าเวิร์กโฟลว์และ workflow_search ตั้งค่าเป็นจริง ดังนั้นไฟล์ล่าสุด การจับคู่เวิร์กโฟลว์ # เกณฑ์อื่นๆ ทั้งหมดจะถูกค้นหาแทนการใช้เวิร์กโฟลว์ปัจจุบัน workflow_search: false # ตัวเลือก สถานะหรือข้อสรุปของเวิร์กโฟลว์ที่เสร็จสมบูรณ์เพื่อค้นหา # สามารถเป็นหนึ่งในข้อสรุปเวิร์กโฟลว์: # "ความล้มเหลว", "ความสำเร็จ" , "เป็นกลาง", "ยกเลิก", "ข้าม", "timed_out", "action_required" # หรือสถานะเวิร์กโฟลว์: # "เสร็จสมบูรณ์", "in_progress", "เข้าคิว" # ใช้สตริงว่าง ("") เพื่อละเว้นสถานะ หรือข้อสรุปในการค้นหา workflow_conclusion: ความสำเร็จ # ทางเลือก จะได้รับ head commit SHA pr: ${{github.event.pull_request.number}} # ทางเลือก ไม่จำเป็นต้องระบุว่า PR กระทำหรือไม่: ${{github.event.pull_request .head.sha}} # ไม่บังคับ จะใช้สาขาที่ระบุ ค่าเริ่มต้นสำหรับสาขาทั้งหมด: master # ตัวเลือก, ค่าเริ่มต้นสำหรับทุกประเภท เหตุการณ์: push # ทางเลือก, จะใช้เวิร์กโฟลว์ที่ระบุ วิ่ง # ใช้ ${{ github.event.workflow_run.id }} เมื่อการกระทำของคุณรันในเหตุการณ์ workflow_run # และต้องการ เพื่อดาวน์โหลดจากเวิร์กโฟลว์ที่เรียกใช้ run_id: 1122334455 # ตัวเลือก หมายเลขรันจากเวิร์กโฟลว์ run_number: 34 # ตัวเลือก ชื่อสิ่งประดิษฐ์ที่อัปโหลด # จะดาวน์โหลดสิ่งประดิษฐ์ทั้งหมดหากไม่ได้ระบุ # และแตกไฟล์เหล่านั้นลงในไดเร็กทอรีย่อยที่เกี่ยวข้อง # https://github com/actions/download-artifact#download-all-artifacts # จะถือเป็นนิพจน์ทั่วไปหากอินพุต name_is_regexp เป็นจริง # จะดาวน์โหลดเฉพาะสิ่งประดิษฐ์เหล่านั้นที่มีชื่อที่ตรงกับนิพจน์ทั่วไปนี้ # https://developer.mozilla.org/ en-US/docs/Web/JavaScript/Guide/Regular_expressions name: artifact_name # ตัวเลือกเสริม ชื่อจะถือเป็นนิพจน์ทั่วไปหากตั้งค่าเป็น true name_is_regexp: true # ตัวเลือก ไดเร็กทอรีที่จะแยกสิ่งประดิษฐ์ ค่าเริ่มต้นเป็นไดเร็กทอรีปัจจุบัน path: extract_here # ตัวเลือกเสริม, ค่าเริ่มต้นเป็น repo repo ปัจจุบัน: ${{ github.repository }} # ตัวเลือก, ตรวจสอบเวิร์กโฟลว์ที่ทำงานเพื่อดูว่ามีอาร์ติแฟกต์หรือไม่ # จากนั้นจะได้รับอาร์ติแฟกต์ล่าสุดที่มีอยู่จากเวิร์กโฟลว์ก่อนหน้า # ค่าเริ่มต้นเป็นเท็จ เพียง ลองดาวน์โหลดจากอันสุดท้าย check_artifacts: false # ทางเลือก ค้นหาเวิร์กโฟลว์ล่าสุดที่จัดเก็บสิ่งประดิษฐ์ที่มีชื่ออยู่ใน `ชื่อ` อินพุต # เริ่มต้น false search_artifacts: false # ทางเลือก เลือกที่จะข้ามการคลายแพ็กสิ่งประดิษฐ์ที่ดาวน์โหลด # ค่าเริ่มต้น false skip_unpack: false # ตัวเลือก เลือกวิธีออกจากการดำเนินการหากไม่พบสิ่งประดิษฐ์ # สามารถเป็นหนึ่งใน: # "ล้มเหลว", "เตือน", "ละเว้น" # เริ่มต้นล้มเหลว if_no_artifact_found: ล้มเหลว # ทางเลือก รวมส้อมเมื่อค้นหา สำหรับสิ่งประดิษฐ์ # ค่าเริ่มต้น false Allow_forks: true
การดำเนินการนี้รุ่น v3
เปลี่ยนจาก node16
เป็น node20
เป็นรันไทม์ โหนด 20 ต้องใช้ glibc>=2.28
หากนักวิ่งที่คุณโฮสต์เองมี glibc
รุ่นเก่า ให้ปักหมุดไปที่เวอร์ชัน v2
แต่โปรดทราบว่านักวิ่งจะไม่ได้รับการอัปเดตใดๆ