Release and CI
การตรวจสอบความถูกต้องของรุ่นเผยแพร่ฉบับเต็ม
Full Release Validation เป็นกรอบรวมของการเผยแพร่: จุดเริ่มต้นแบบแมนนวลเพียงจุดเดียว
สำหรับการพิสูจน์ก่อนเผยแพร่ งานส่วนใหญ่ดำเนินการในเวิร์กโฟลว์ลูก เพื่อให้สามารถ
รันส่วนที่ล้มเหลวใหม่ได้โดยไม่ต้องเริ่มกระบวนการเผยแพร่ทั้งหมดใหม่
เรียกใช้งานจาก workflow ref ที่เชื่อถือได้ ซึ่งโดยปกติคือ main และส่งสาขาการเผยแพร่
แท็ก หรือ commit SHA แบบเต็มเป็น ref:
gh workflow run full-release-validation.yml \ --ref main \ -f ref=release/YYYY.M.PATCH \ -f provider=openai \ -f mode=both \ -f release_profile=stableprovider ยังยอมรับ anthropic หรือ minimax สำหรับการเริ่มต้นใช้งานข้ามระบบปฏิบัติการ
และรอบการทำงานของเอเจนต์แบบต้นทางถึงปลายทาง งานลูกที่นำกลับมาใช้ซ้ำได้จะระบุ harness
ของเวิร์กโฟลว์ที่ถูกเรียกจาก job.workflow_repository และ job.workflow_sha ส่วนอินพุต
ref จะเลือกตัวเลือกที่จะทดสอบ วิธีนี้ทำให้ตรรกะการตรวจสอบปัจจุบันที่เชื่อถือได้
ยังคงพร้อมใช้งานเมื่อตรวจสอบสาขาหรือแท็กการเผยแพร่รุ่นเก่า
เวิร์กโฟลว์ลูกทุกตัวที่ถูกสั่งให้ทำงานต้องรายงาน workflow SHA เดียวกับการรันแม่
Full Release Validation หาก main เปลี่ยนแปลงระหว่างการสั่งให้เวิร์กโฟลว์แม่และลูก
ทำงาน กรอบรวมจะล้มเหลวแบบปิดแม้ว่าเวิร์กโฟลว์ลูกจะสำเร็จก็ตาม สำหรับการพิสูจน์ด้วย
commit ที่แน่นอนและเปลี่ยนแปลงไม่ได้ ให้ใช้
pnpm ci:full-release --sha <target-sha> ตัวช่วยจะสร้าง ref ชั่วคราว
release-ci/* ที่ตรึงไว้กับ origin/main ปัจจุบันซึ่งเชื่อถือได้ ส่ง SHA เป้าหมาย
เป็น ref ของตัวเลือกเท่านั้น นำหลักฐานแบบเป้าหมายตรงกันอย่างเคร่งครัดกลับมาใช้ใหม่
เมื่อมี และลบ ref หลังการตรวจสอบ ส่ง
-f reuse_evidence=false เพื่อบังคับให้รันใหม่ หรือ
--workflow-sha <trusted-main-sha> เพื่อเลือก commit ของเวิร์กโฟลว์รุ่นเก่าที่ยังคง
เข้าถึงได้จาก origin/main ปัจจุบัน ตัวเวิร์กโฟลว์เองจะไม่สร้างหรืออัปเดต ref
ของที่เก็บโค้ด
release_profile=stable และ release_profile=full จะรันการทดสอบต่อเนื่องแบบ
live/Docker อย่างละเอียดครบถ้วนเสมอ ส่ง run_release_soak=true เพื่อรวมชุดการทดสอบ
ต่อเนื่องเดียวกันไว้ในโปรไฟล์ beta การเผยแพร่แบบเสถียรจะปฏิเสธ manifest การตรวจสอบ
ที่ไม่มีการทดสอบต่อเนื่องนี้และหลักฐานประสิทธิภาพผลิตภัณฑ์แบบบังคับ
โดยปกติ Package Acceptance จะสร้าง tarball ของตัวเลือกจาก ref ที่ระบุแล้ว
รวมถึงการรันด้วย SHA แบบเต็มที่สั่งด้วย pnpm ci:full-release หลังเผยแพร่รุ่นเบตา
ให้ส่ง release_package_spec=openclaw@YYYY.M.PATCH-beta.N เพื่อนำแพ็กเกจ npm
ที่เผยแพร่แล้วกลับมาใช้ในชุดตรวจสอบการเผยแพร่, Package Acceptance, การทดสอบ
ข้ามระบบปฏิบัติการ, Docker ในเส้นทางการเผยแพร่ และแพ็กเกจ Telegram ใช้
package_acceptance_package_spec เฉพาะเมื่อ Package Acceptance ต้องตั้งใจพิสูจน์
แพ็กเกจอื่น ชุดแพ็กเกจแบบ live ของ Plugin Codex ใช้สถานะเดียวกัน: ค่า
release_package_spec ที่เผยแพร่แล้วจะสร้าง
codex_plugin_spec=npm:@openclaw/codex@<version>; การรันด้วย SHA/อาร์ติแฟกต์
จะแพ็ก extensions/codex จาก ref ที่เลือก และผู้ปฏิบัติงานสามารถตั้งค่า
codex_plugin_spec โดยตรงสำหรับแหล่ง Plugin แบบ npm:, npm-pack: หรือ git:
ชุดการทดสอบนี้มอบการอนุมัติการติดตั้ง Codex CLI อย่างชัดเจนตามที่ Plugin นั้นกำหนด
จากนั้นจึงรันการตรวจสอบเบื้องต้นของ Codex CLI และรอบการทำงานของเอเจนต์ OpenAI
ภายในเซสชันเดียวกัน
ขั้นตอนระดับบนสุด
สำหรับ rerun_group=all งาน Check for reusable validation evidence จะทำงานก่อน:
งานนี้ค้นหาการตรวจสอบเต็มรูปแบบครั้งก่อนล่าสุดที่สำเร็จ สำหรับ SHA เป้าหมาย
โปรไฟล์การเผยแพร่ การตั้งค่าการทดสอบต่อเนื่องที่มีผล และอินพุตการตรวจสอบที่ตรงกัน
ทุกประการ เมื่อมีหลักฐานดังกล่าว ระบบจะข้ามทุกชุดการทดสอบ และตัวตรวจสอบกรอบรวม
จะตรวจสอบอาร์ติแฟกต์แม่ที่เปลี่ยนแปลงไม่ได้ การรันเวิร์กโฟลว์ลูก และบันทึกการสั่งงาน
อีกครั้ง กลไกนี้มีไว้เพื่อกู้คืนการรันซ้ำของตัวเลือกเดียวกันเท่านั้น ไม่อนุญาตให้นำ
หลักฐานข้าม SHA มาใช้ใหม่ สำหรับตัวเลือกที่เปลี่ยนแปลง ให้รันเกตของแพ็กเกจ
อาร์ติแฟกต์ การติดตั้ง Docker หรือผู้ให้บริการทั้งหมดที่ได้รับผลกระทบจากความแตกต่างนั้น
ใหม่ ส่ง reuse_evidence=false เพื่อบังคับให้รันเต็มรูปแบบใหม่ การนำหลักฐานกลับมา
ใช้ใหม่จะทำงานเฉพาะจาก main หรือ ref release-ci/* มาตรฐานที่ตรึงด้วย SHA
ซึ่ง commit ของเวิร์กโฟลว์ยังคงอยู่ในสายประวัติของ main ที่เชื่อถือได้ ส่วน workflow ref
อื่นจะรันชุดการทดสอบที่เลือกใหม่
นอกจากนี้ สำหรับ rerun_group=all งาน Verify Docker runtime image assets จะสร้าง
เป้าหมาย Docker runtime-assets โดยใช้
OPENCLAW_EXTENSIONS=diagnostics-otel,codex งานนี้ทำงานขนานกับขั้นตอนอื่น
และถูกบังคับใช้โดยตัวตรวจสอบกรอบรวม ชุดการทดสอบจะไม่รอให้งานนี้เสร็จก่อนเริ่มสั่งงาน
อีกต่อไป rerun_group ที่แคบกว่าจะข้ามการตรวจสอบเบื้องต้นนี้
| ขั้นตอน | รายละเอียด |
|---|---|
| การระบุเป้าหมาย | งาน: Resolve target ref |
| เวิร์กโฟลว์ลูก: ไม่มี | |
| พิสูจน์ว่า: ระบุสาขาการเผยแพร่ แท็ก หรือ commit SHA แบบเต็ม และบันทึกอินพุตที่เลือกไว้ | |
| การรันใหม่: รันกรอบรวมใหม่หากขั้นตอนนี้ล้มเหลว | |
| การตรวจสอบเบื้องต้นของอาร์ติแฟกต์ Docker | งาน: Verify Docker runtime image assets |
| เวิร์กโฟลว์ลูก: ไม่มี | |
พิสูจน์ว่า: เป้าหมายการสร้าง Docker runtime-assets ยังคงสำเร็จก่อนสั่งให้ขั้นตอนอื่นทำงาน ทำงานเฉพาะเมื่อ rerun_group=all |
|
การรันใหม่: รันกรอบรวมใหม่โดยใช้ rerun_group=all |
|
| Vitest และ CI ปกติ | งาน: Run normal full CI |
เวิร์กโฟลว์ลูก: CI |
|
พิสูจน์ว่า: กราฟ CI เต็มรูปแบบแบบแมนนวลทำงานกับ ref เป้าหมาย รวมถึงชุดการทดสอบ Linux Node, ส่วนแบ่ง Plugin ที่รวมมาให้, ส่วนแบ่งสัญญาของ Plugin และช่องทาง, ความเข้ากันได้กับ Node 22, check-*, check-additional-*, การตรวจสอบเบื้องต้นของอาร์ติแฟกต์ที่สร้างแล้ว, การตรวจสอบเอกสาร, Skills ของ Python, Windows, macOS, การรองรับหลายภาษาของ Control UI และ Android ผ่านกรอบรวม |
|
การรันใหม่: rerun_group=ci |
|
| การตรวจสอบ Plugin ก่อนเผยแพร่ | งาน: Run plugin prerelease validation |
เวิร์กโฟลว์ลูก: Plugin Prerelease |
|
พิสูจน์ว่า: การตรวจสอบแบบสแตติกของ Plugin เฉพาะช่วงเผยแพร่ ความครอบคลุมของ Plugin แบบเอเจนต์ ส่วนแบ่งชุดการทดสอบ Plugin เต็มรูปแบบ ชุดการทดสอบ Docker ก่อนเผยแพร่สำหรับ Plugin และอาร์ติแฟกต์ plugin-inspector-advisory แบบไม่บังคับสำหรับการคัดแยกปัญหาความเข้ากันได้ |
|
การรันใหม่: rerun_group=plugin-prerelease |
|
| การตรวจสอบการเผยแพร่ | งาน: Run release/live/Docker/QA validation |
เวิร์กโฟลว์ลูก: OpenClaw Release Checks |
|
พิสูจน์ว่า: การตรวจสอบเบื้องต้นของการติดตั้ง การตรวจสอบแพ็กเกจข้ามระบบปฏิบัติการ Package Acceptance ความสอดคล้องกับ QA Lab, Matrix แบบ live และ Telegram แบบ live โปรไฟล์เสถียรและเต็มรูปแบบยังรันชุดการทดสอบ live/E2E อย่างละเอียดครบถ้วนและส่วนย่อยของ Docker ในเส้นทางการเผยแพร่ ส่วนเบตาสามารถเลือกเข้าร่วมด้วย run_release_soak=true |
|
การรันใหม่: rerun_group=release-checks หรือแฮนเดิล release-checks ที่แคบกว่า |
|
| แพ็กเกจ Telegram | งาน: Run package Telegram E2E |
เวิร์กโฟลว์ลูก: NPM Telegram Beta E2E |
|
พิสูจน์ว่า: การทดสอบ Telegram E2E ที่เน้นเฉพาะแพ็กเกจที่เผยแพร่แล้ว เมื่อกำหนด release_package_spec หรือ npm_telegram_package_spec การตรวจสอบตัวเลือกเต็มรูปแบบจะใช้การทดสอบ Telegram E2E มาตรฐานของ Package Acceptance แทน |
|
การรันใหม่: rerun_group=npm-telegram พร้อม release_package_spec หรือ npm_telegram_package_spec |
|
| ประสิทธิภาพผลิตภัณฑ์ | งาน: Run product performance evidence |
เวิร์กโฟลว์ลูก: OpenClaw Performance |
|
พิสูจน์ว่า: การรันประสิทธิภาพตามโปรไฟล์การเผยแพร่ (profile=release, repeat=3, fail_on_regression=true, publish_reports=false) กับ SHA เป้าหมาย เอาต์พุต Kova จะคงอยู่ในอาร์ติแฟกต์ของเวิร์กโฟลว์ และเวิร์กโฟลว์ลูกต้องพิสูจน์ว่างานเผยแพร่รายงานถูกข้าม จำเป็นและเป็นเงื่อนไขบังคับเฉพาะสำหรับ rerun_group=all หรือ rerun_group=performance; ไม่จำเป็นสำหรับกลุ่มการรันใหม่ที่แคบกว่า |
|
การรันใหม่: rerun_group=performance |
|
| ตัวตรวจสอบกรอบรวม | งาน: Verify full validation |
| เวิร์กโฟลว์ลูก: ไม่มี | |
| พิสูจน์ว่า: ตรวจสอบผลลัพธ์ที่บันทึกไว้ของการรันเวิร์กโฟลว์ลูกอีกครั้ง และเพิ่มตารางงานที่ใช้เวลานานที่สุดจากเวิร์กโฟลว์ลูก | |
| การรันใหม่: หลังรันเวิร์กโฟลว์ลูกที่ล้มเหลวใหม่จนสำเร็จแล้ว ให้รันใหม่เฉพาะงานนี้ |
กรอบรวมจะสั่งให้การทดสอบประสิทธิภาพผลิตภัณฑ์ทำงานในโหมดอาร์ติแฟกต์เท่านั้นเสมอ
OpenClaw Performance อนุญาตให้เผยแพร่รายงานเฉพาะการรันตามกำหนดเวลา หรือการสั่งงาน
แบบแมนนวลที่ตั้งค่า publish_reports=true อย่างชัดเจน เกตสำหรับโหมดอาร์ติแฟกต์เท่านั้น
ต้องทำงานสำเร็จ เพื่อพิสูจน์ว่างานผู้เผยแพร่ยังคงถูกข้าม หลักฐานทั้งแบบใหม่และแบบ
นำกลับมาใช้ใหม่จะบันทึก
controls.performanceReportPublication=artifact-only; ตัวตรวจสอบและตัวเลือก
การนำหลักฐานกลับมาใช้ใหม่จะปฏิเสธหลักฐานที่ไม่มีการพิสูจน์จากเวิร์กโฟลว์ลูกด้าน
ประสิทธิภาพที่ผ่านการปรับรูปแบบและตรงกัน
ตัวตรวจสอบจะอัปโหลด manifest มาตรฐานเป็น
full-release-validation-<run-id>-<run-attempt> เครื่องมือหลักฐานจะตรวจสอบ
รหัสอาร์ติแฟกต์ ค่าไดเจสต์ การรันที่สร้าง และความพยายาม ก่อนดาวน์โหลดอาร์ติแฟกต์
ตามรหัสที่แน่นอนนั้น เครื่องมือจะจำกัดขนาด ZIP ที่ดาวน์โหลด ตรวจสอบไบต์ของไฟล์กับ
ค่าไดเจสต์ REST sha256: และสตรีมรายการ manifest แบบมีขอบเขตเพียงรายการเดียว
ที่อนุญาต โดยไม่แตกไฟล์เก็บถาวร นามแฝงชื่อคงที่จะยังคงอยู่ชั่วคราวสำหรับผู้ใช้
การเผยแพร่รุ่นเก่า ตัวตรวจสอบจะเลือกอาร์ติแฟกต์ที่มีข้อมูลความพยายามกำกับก่อนเสมอ
ในช่วงเปลี่ยนผ่าน ระบบจะยอมรับชื่อคงที่เฉพาะสำหรับผู้สร้าง manifest v2 ในความพยายาม
ครั้งที่ 1 เท่านั้น และจะปฏิเสธชื่อแบบเดิมสำหรับความพยายามครั้งหลังและ manifest v3
สำหรับ ref=main ที่ใช้ rerun_group=all, สำหรับ ref release/* และสำหรับ ref
รุ่นอัลฟาของ Tideclaw การรันกรอบรวมที่ใหม่กว่าจะแทนที่การรันเก่าที่มี ref และกลุ่ม
การรันใหม่เดียวกัน เมื่อเวิร์กโฟลว์แม่ถูกยกเลิก ตัวติดตามของมันจะยกเลิกเวิร์กโฟลว์ลูก
ทั้งหมดที่สั่งให้ทำงานไปแล้ว การตรวจสอบด้วยแท็กและ SHA ที่ตรึงไว้จะไม่ยกเลิกกันเอง
ขั้นตอนการตรวจสอบการเผยแพร่
OpenClaw Release Checks เป็นเวิร์กโฟลว์ลูกที่ใหญ่ที่สุด โดยจะระบุเป้าหมายเพียงครั้งเดียว
และเตรียมอาร์ติแฟกต์ release-package-under-test ที่ใช้ร่วมกัน เมื่อขั้นตอนที่เกี่ยวข้อง
กับแพ็กเกจหรือ Docker จำเป็นต้องใช้
| ขั้นตอน | รายละเอียด |
|---|---|
| เป้าหมายการเผยแพร่ | งาน: Resolve target ref |
| เวิร์กโฟลว์รองรับ: ไม่มี | |
| การทดสอบ: ref ที่เลือก, SHA ที่คาดไว้ซึ่งระบุหรือไม่ก็ได้, โปรไฟล์, กลุ่มการรันซ้ำ และตัวกรองชุดทดสอบแบบสดเฉพาะจุด | |
การรันซ้ำ: rerun_group=release-checks |
|
| อาร์ติแฟกต์แพ็กเกจ | งาน: Prepare release package artifact |
| เวิร์กโฟลว์รองรับ: ไม่มี | |
การทดสอบ: แพ็กหรือค้นหา tarball ตัวเลือกหนึ่งรายการ และอัปโหลด release-package-under-test สำหรับการตรวจสอบที่เกี่ยวข้องกับแพ็กเกจในขั้นตอนถัดไป |
|
| การรันซ้ำ: กลุ่มแพ็กเกจ, ข้ามระบบปฏิบัติการ หรือแบบสด/E2E ที่ได้รับผลกระทบ | |
| การทดสอบติดตั้งเบื้องต้น | งาน: Run install smoke |
เวิร์กโฟลว์รองรับ: Install Smoke |
|
| การทดสอบ: เส้นทางการติดตั้งแบบเต็มพร้อมการใช้ smoke image จาก Dockerfile รากซ้ำ, การติดตั้งแพ็กเกจ QR, การทดสอบ Docker เบื้องต้นสำหรับรากและ Gateway, การทดสอบ Docker ของตัวติดตั้ง และการทดสอบเบื้องต้นของผู้ให้บริการอิมเมจผ่านการติดตั้ง Bun แบบโกลบอล | |
การรันซ้ำ: rerun_group=install-smoke |
|
| ข้ามระบบปฏิบัติการ | งาน: cross_os_release_checks |
เวิร์กโฟลว์รองรับ: OpenClaw Cross-OS Release Checks (Reusable) |
|
| การทดสอบ: เลนการติดตั้งใหม่และอัปเกรดบน Linux, Windows และ macOS สำหรับผู้ให้บริการและโหมดที่เลือก โดยใช้ tarball ตัวเลือกพร้อมแพ็กเกจพื้นฐาน | |
การรันซ้ำ: rerun_group=cross-os |
|
| E2E ของที่เก็บและแบบสด | งาน: Run repo/live E2E validation |
เวิร์กโฟลว์รองรับ: OpenClaw Live And E2E Checks (Reusable) |
|
การทดสอบ: E2E ของที่เก็บ, แคชแบบสด, การสตรีม OpenAI ผ่าน websocket, ชาร์ดผู้ให้บริการแบบสดเนทีฟและ Plugin และชุดทดสอบจำลองโมเดล/แบ็กเอนด์/Gateway แบบสดที่รองรับด้วย Docker ซึ่งเลือกโดย release_profile |
|
ทำงานเมื่อ: run_release_soak=true, release_profile=full หรือระบุ rerun_group=live-e2e แบบเฉพาะจุด |
|
การรันซ้ำ: rerun_group=live-e2e พร้อม live_suite_filter หรือไม่ก็ได้ |
|
| เส้นทางเผยแพร่ Docker | งาน: Run Docker release-path validation |
เวิร์กโฟลว์รองรับ: OpenClaw Live And E2E Checks (Reusable) |
|
| การทดสอบ: ส่วนย่อย Docker ของเส้นทางเผยแพร่กับอาร์ติแฟกต์แพ็กเกจที่ใช้ร่วมกัน | |
ทำงานเมื่อ: run_release_soak=true, release_profile=full หรือระบุ rerun_group=live-e2e แบบเฉพาะจุด |
|
การรันซ้ำ: rerun_group=live-e2e |
|
| การยอมรับแพ็กเกจ | งาน: Run package acceptance |
เวิร์กโฟลว์รองรับ: Package Acceptance |
|
การทดสอบ: ฟิกซ์เจอร์แพ็กเกจ Plugin แบบออฟไลน์, การอัปเดต Plugin, E2E แพ็กเกจ Telegram กับ OpenAI จำลองตามมาตรฐาน และการตรวจสอบความอยู่รอดหลังอัปเกรดจากเวอร์ชันที่เผยแพร่โดยใช้ tarball เดียวกัน การตรวจสอบการเผยแพร่ที่มีผลบังคับใช้จะใช้เวอร์ชันพื้นฐานล่าสุดที่เผยแพร่เป็นค่าเริ่มต้น ส่วนการตรวจสอบแบบแช่ (run_release_soak=true) จะขยายไปยังรุ่นเสถียร 4 รุ่นล่าสุดบน npm และเวอร์ชันย้อนหลังที่ปักหมุดไว้ 3 เวอร์ชัน (2026.4.23, 2026.5.2, 2026.4.15) โดยทำงานกับฟิกซ์เจอร์อัปเกรดจากปัญหาที่มีการรายงาน |
|
การรันซ้ำ: rerun_group=package |
|
| สกอร์การ์ดระดับความพร้อม | งาน: Render maturity scorecard release docs |
เวิร์กโฟลว์รองรับ: maturity-scorecard.yml |
|
การทดสอบ: เรนเดอร์เอกสารสกอร์การ์ดระดับความพร้อมเพื่อเป็นคำแนะนำกับ ref เป้าหมาย ทำงานเฉพาะเมื่อส่ง run_maturity_scorecard=true เท่านั้น |
|
การรันซ้ำ: rerun_group=qa พร้อม run_maturity_scorecard=true |
|
| ความเท่าเทียมของ QA | งาน: Run QA Lab parity lane และ Run QA Lab parity report |
| เวิร์กโฟลว์รองรับ: งานโดยตรง | |
| การทดสอบ: ชุดความเท่าเทียมแบบเอเจนต์สำหรับตัวเลือกและเวอร์ชันพื้นฐาน จากนั้นจึงสร้างรายงานความเท่าเทียม | |
การรันซ้ำ: rerun_group=qa-parity หรือ rerun_group=qa |
|
| ความเท่าเทียมของรันไทม์ QA | งาน: Run QA Lab runtime parity lane |
| เวิร์กโฟลว์รองรับ: งานโดยตรง | |
การทดสอบ: เลนความเท่าเทียมแบบเอเจนต์สำหรับคู่รันไทม์ openclaw/codex (pnpm openclaw qa suite --runtime-pair openclaw,codex) ซึ่งรวมระดับมาตรฐาน และเมื่อใช้ run_release_soak=true จะรวมระดับการทดสอบแบบแช่ด้วย เป็นเพียงคำแนะนำ: ความล้มเหลวแต่ละรายการจะไม่ขัดขวางตัวตรวจสอบการเผยแพร่ |
|
การรันซ้ำ: rerun_group=qa-parity หรือ rerun_group=qa |
|
| ความครอบคลุมเครื่องมือรันไทม์ QA | งาน: Enforce QA Lab runtime tool coverage |
| เวิร์กโฟลว์รองรับ: งานโดยตรง | |
การทดสอบ: ความคลาดเคลื่อนของเครื่องมือแบบไดนามิกระหว่าง openclaw และ codex ในระดับความเท่าเทียมของรันไทม์มาตรฐาน (pnpm openclaw qa coverage --tools) โดยใช้ผลลัพธ์จากเลนความเท่าเทียมของรันไทม์ QA มีผลบังคับใช้: งานนี้ไม่สามารถยกเว้นให้เป็นเพียงคำแนะนำได้ |
|
การรันซ้ำ: rerun_group=qa-parity หรือ rerun_group=qa |
|
| Matrix แบบสดของ QA | งาน: Run QA Lab live Matrix lane |
| เวิร์กโฟลว์รองรับ: งานโดยตรง | |
การทดสอบ: โปรไฟล์ QA ของ Matrix แบบสดที่รวดเร็วในสภาพแวดล้อม qa-live-shared |
|
การรันซ้ำ: rerun_group=qa-live หรือ rerun_group=qa |
|
| Telegram แบบสดของ QA | งาน: Run QA Lab live Telegram lane |
| เวิร์กโฟลว์รองรับ: งานโดยตรง | |
| การทดสอบ: QA ของ Telegram แบบสดพร้อมการเช่าข้อมูลประจำตัว Convex CI | |
การรันซ้ำ: rerun_group=qa-live หรือ rerun_group=qa |
|
| ตัวตรวจสอบการเผยแพร่ | งาน: Verify release checks |
| เวิร์กโฟลว์รองรับ: ไม่มี | |
| การทดสอบ: งานตรวจสอบการเผยแพร่ที่จำเป็นสำหรับกลุ่มการรันซ้ำที่เลือก | |
| การรันซ้ำ: รันซ้ำหลังจากงานย่อยเฉพาะจุดผ่านแล้ว |
ส่วนย่อยเส้นทางเผยแพร่ Docker
ขั้นตอนเส้นทางเผยแพร่ Docker จะเรียกใช้ส่วนย่อยเหล่านี้เมื่อ
live_suite_filter ว่างเปล่า:
| ส่วนย่อย | ความครอบคลุม |
|---|---|
core |
เลนทดสอบเบื้องต้นของเส้นทางเผยแพร่ Docker ส่วนแกนหลัก |
package-update-openai |
พฤติกรรมการติดตั้ง/อัปเดตแพ็กเกจ OpenAI, การติดตั้ง Codex ตามความต้องการ, เทิร์นแบบสดของ Plugin Codex และการเรียกใช้เครื่องมือ Chat Completions |
package-update-anthropic |
พฤติกรรมการติดตั้งและอัปเดตแพ็กเกจ Anthropic |
package-update-core |
พฤติกรรมแพ็กเกจและการอัปเดตที่ไม่ขึ้นกับผู้ให้บริการ |
plugins-runtime-plugins |
เลนรันไทม์ Plugin ที่ทดสอบพฤติกรรมของ Plugin |
plugins-runtime-services |
เลนรันไทม์ Plugin ที่รองรับด้วยบริการและแบบสด |
plugins-runtime-install-a ถึง plugins-runtime-install-h |
ชุดการติดตั้ง/รันไทม์ Plugin ที่แบ่งเพื่อให้ตรวจสอบการเผยแพร่แบบขนาน |
openwebui |
การทดสอบความเข้ากันได้กับ OpenWebUI เบื้องต้น ซึ่งแยกทำงานบนรันเนอร์ดิสก์ขนาดใหญ่โดยเฉพาะเมื่อมีการร้องขอ |
ใช้ docker_lanes=<lane[,lane]> แบบเจาะจงบนเวิร์กโฟลว์แบบสด/E2E ที่นำกลับมาใช้ซ้ำได้ เมื่อ
มีเพียงเลน Docker เดียวที่ล้มเหลว อาร์ติแฟกต์การเผยแพร่มีคำสั่งรันซ้ำแยกตามเลน
พร้อมอินพุตสำหรับนำอาร์ติแฟกต์แพ็กเกจและอิมเมจกลับมาใช้ซ้ำเมื่อพร้อมใช้งาน
โปรไฟล์การเผยแพร่
release_profile ควบคุมขอบเขตของการทดสอบสด/ผู้ให้บริการภายในขั้นตอนตรวจสอบรีลีสเป็นหลัก
โดยไม่ได้ตัด CI แบบเต็มตามปกติ, การทดสอบก่อนรีลีสของ Plugin, การทดสอบควันของการติดตั้ง, การยอมรับแพ็กเกจ
หรือ QA Lab ออก โปรไฟล์ stable และ full จะเรียกใช้การทดสอบ E2E ของรีโพซิทอรี/แบบสด
และการทดสอบแช่เส้นทางรีลีสด้วย Docker อย่างครอบคลุมเสมอ ส่วนโปรไฟล์ beta สามารถเลือกเปิดใช้ด้วย
run_release_soak=true การยอมรับแพ็กเกจจัดเตรียมการทดสอบ E2E ของ Telegram สำหรับแพ็กเกจที่เป็นมาตรฐาน
ให้แก่ตัวเลือกแบบเต็มทุกตัว ดังนั้นเวิร์กโฟลว์หลักจึงไม่เรียกใช้ตัวสำรวจแบบสดนั้นซ้ำ
| โปรไฟล์ | การใช้งานที่กำหนดไว้ | ขอบเขตการทดสอบสด/ผู้ให้บริการที่รวมไว้ |
|---|---|---|
beta |
การทดสอบควันที่สำคัญต่อรีลีสและรวดเร็วที่สุด | เส้นทางสดของ OpenAI/แกนหลัก, โมเดลสดบน Docker สำหรับ OpenAI, แกนหลัก Gateway แบบเนทีฟ, โปรไฟล์ Gateway ของ OpenAI แบบเนทีฟ, Plugin OpenAI แบบเนทีฟ และ Gateway สดของ OpenAI บน Docker |
stable |
โปรไฟล์เริ่มต้นสำหรับการอนุมัติรีลีส | beta พร้อมการทดสอบควันของ Anthropic, Google, MiniMax, แบ็กเอนด์, ชุดทดสอบสดแบบเนทีฟ, แบ็กเอนด์ CLI สดบน Docker, การผูก ACP บน Docker, ชุดทดสอบ Codex บน Docker, การประกาศเอเจนต์ย่อยบน Docker และชาร์ดการทดสอบควัน OpenCode Go |
full |
การตรวจสอบเชิงแนะนำในวงกว้าง | stable พร้อมผู้ให้บริการเชิงแนะนำ, ชาร์ดการทดสอบสดของ Plugin และชาร์ดการทดสอบสื่อแบบสด |
ส่วนเพิ่มเติมเฉพาะ full
ชุดทดสอบเหล่านี้จะถูกข้ามโดย stable และรวมไว้ใน full:
| พื้นที่ | ขอบเขตเฉพาะ full |
|---|---|
| โมเดลสดบน Docker | OpenCode Go, OpenRouter, xAI, Z.ai และ Fireworks |
| Gateway สดบน Docker | ผู้ให้บริการเชิงแนะนำที่แบ่งเป็นชาร์ด DeepSeek/Fireworks, OpenCode Go/OpenRouter และ xAI/Z.ai |
| โปรไฟล์ผู้ให้บริการ Gateway แบบเนทีฟ | ชาร์ด Anthropic Opus แบบเต็มและ Sonnet/Haiku, Fireworks, DeepSeek, ชาร์ดโมเดล OpenCode Go แบบเต็ม, OpenRouter, xAI และ Z.ai |
| ชาร์ดการทดสอบสดของ Plugin แบบเนทีฟ | Plugin A-K, L-N, อื่น ๆ ในช่วง O-Z, Moonshot และ xAI |
| ชาร์ดการทดสอบสื่อแบบสดแบบเนทีฟ | เสียง, เพลงของ Google, เพลงของ MiniMax และกลุ่มวิดีโอ A-D |
stable รวม native-live-src-gateway-profiles-anthropic-smoke และ
native-live-src-gateway-profiles-opencode-go-smoke ส่วน full จะใช้ชาร์ดโมเดล
Anthropic และ OpenCode Go ที่ครอบคลุมกว่าแทน การเรียกใช้ซ้ำแบบเจาะจงยังคงใช้แฮนเดิลรวม
native-live-src-gateway-profiles-anthropic หรือ
native-live-src-gateway-profiles-opencode-go ได้
การเรียกใช้ซ้ำแบบเจาะจง
ใช้ rerun_group เพื่อหลีกเลี่ยงการเรียกใช้กล่องรีลีสที่ไม่เกี่ยวข้องซ้ำ:
| แฮนเดิล | ขอบเขต |
|---|---|
all |
ทุกขั้นตอนของการตรวจสอบรีลีสแบบเต็ม |
ci |
เฉพาะเวิร์กโฟลว์ลูก CI แบบเต็มที่เรียกใช้ด้วยตนเอง |
plugin-prerelease |
เฉพาะเวิร์กโฟลว์ลูกสำหรับการทดสอบก่อนรีลีสของ Plugin |
release-checks |
ทุกขั้นตอนการตรวจสอบรีลีสของ OpenClaw |
install-smoke |
การทดสอบควันของการติดตั้งต่อเนื่องไปจนถึงการตรวจสอบรีลีส |
cross-os |
การตรวจสอบรีลีสข้ามระบบปฏิบัติการ |
live-e2e |
การทดสอบ E2E ของรีโพซิทอรี/แบบสด และการตรวจสอบเส้นทางรีลีสด้วย Docker |
package |
การยอมรับแพ็กเกจ |
qa |
ความสอดคล้องของ QA พร้อมเลน QA แบบสด |
qa-parity |
เฉพาะเลนและรายงานความสอดคล้องของ QA |
qa-live |
Matrix/Telegram แบบสดของ QA พร้อมเลน Discord, WhatsApp และ Slack ที่มีการควบคุมเมื่อเปิดใช้งาน |
npm-telegram |
การทดสอบ E2E ของ Telegram สำหรับแพ็กเกจที่เผยแพร่แล้ว ต้องใช้ release_package_spec หรือ npm_telegram_package_spec |
performance |
เฉพาะหลักฐานประสิทธิภาพของผลิตภัณฑ์ |
ใช้ live_suite_filter ร่วมกับ rerun_group=live-e2e เมื่อชุดทดสอบสดชุดใดชุดหนึ่งล้มเหลว
รหัสตัวกรองที่ใช้ได้ถูกกำหนดไว้ในเวิร์กโฟลว์การทดสอบสด/E2E ที่นำกลับมาใช้ใหม่ได้ ซึ่งรวมถึง
docker-live-models, live-gateway-docker,
live-gateway-anthropic-docker, live-gateway-google-docker,
live-gateway-minimax-docker, live-gateway-advisory-docker,
live-cli-backend-docker, live-acp-bind-docker และ
live-codex-harness-docker
แฮนเดิล live-gateway-advisory-docker เป็นแฮนเดิลรวมสำหรับเรียกใช้ซ้ำของ
ชาร์ดผู้ให้บริการทั้งสาม ดังนั้นจึงยังคงกระจายงานไปยังงาน Gateway เชิงแนะนำบน Docker ทั้งหมด
ใช้ cross_os_suite_filter ร่วมกับ rerun_group=cross-os เมื่อเลนข้ามระบบปฏิบัติการ
เลนใดเลนหนึ่งล้มเหลว ตัวกรองยอมรับรหัสระบบปฏิบัติการ รหัสชุดทดสอบ หรือคู่ระบบปฏิบัติการ/ชุดทดสอบ เช่น
windows/packaged-upgrade, windows หรือ packaged-fresh สรุปผลข้ามระบบปฏิบัติการ
จะรวมเวลาของแต่ละระยะสำหรับเลนอัปเกรดแพ็กเกจ และคำสั่งที่ทำงานเป็นเวลานาน
จะแสดงบรรทัด Heartbeat เพื่อให้มองเห็นการอัปเดตที่ติดค้างก่อนงานหมดเวลา
ความล้มเหลวของการตรวจสอบรีลีสของ QA จะขัดขวางการตรวจสอบรีลีสตามปกติ การตรวจสอบขอบเขตเครื่องมือ
รันไทม์ของ QA (ความคลาดเคลื่อนแบบไดนามิกของเครื่องมือระหว่าง openclaw และ codex ใน
ระดับมาตรฐาน) จะขัดขวางตัวตรวจสอบการตรวจสอบรีลีสด้วย แม้ว่าเลนความสอดคล้องของรันไทม์ QA
ที่อยู่เบื้องหลังจะเป็นเพียงเชิงแนะนำก็ตาม การเรียกใช้ Tideclaw alpha อาจยังคง
ถือว่าเลนการตรวจสอบรีลีสที่ไม่เกี่ยวกับความปลอดภัยของแพ็กเกจเป็นเชิงแนะนำ เมื่อใช้
release_profile=beta ชุดทดสอบผู้ให้บริการแบบสดของ Run repo/live E2E validation
จะเป็นเชิงแนะนำ เนื่องจากการติดตั้งใช้งานโมเดลของบุคคลที่สามเปลี่ยนแปลงได้ระหว่างการทำรีลีส
ดังนั้น beta จะแสดงความล้มเหลวเหล่านี้เป็นคำเตือน ขณะที่โปรไฟล์ stable และ full
ยังคงให้ความล้มเหลวดังกล่าวขัดขวางการทำงาน เมื่อ
live_suite_filter ร้องขอเลน QA แบบสดที่มีการควบคุมอย่างชัดเจน เช่น Discord,
WhatsApp หรือ Slack จะต้องเปิดใช้ตัวแปรรีโพซิทอรี
OPENCLAW_RELEASE_QA_*_LIVE_CI_ENABLED ที่ตรงกัน มิฉะนั้นการรับค่าอินพุตจะล้มเหลว
แทนที่จะข้ามเลนนั้นอย่างเงียบ ๆ ให้เรียกใช้ rerun_group=qa, qa-parity หรือ qa-live ซ้ำเมื่อ
ต้องการหลักฐาน QA ชุดใหม่
หลักฐานที่ต้องเก็บไว้
เก็บสรุป Full Release Validation ไว้เป็นดัชนีระดับรีลีส โดยสรุปดังกล่าวจะลิงก์
รหัสการเรียกใช้ของเวิร์กโฟลว์ลูกและรวมตารางงานที่ใช้เวลานานที่สุด สำหรับความล้มเหลว ให้ตรวจสอบเวิร์กโฟลว์ลูก
ก่อน แล้วจึงเรียกใช้แฮนเดิลที่ตรงกันและมีขอบเขตเล็กที่สุดด้านบนซ้ำ
อาร์ติแฟกต์ที่มีประโยชน์:
release-package-under-testจากOpenClaw Release Checks- อาร์ติแฟกต์เส้นทางรีลีสของ Docker ภายใต้
.artifacts/docker-tests/ package-under-testของการยอมรับแพ็กเกจและอาร์ติแฟกต์การยอมรับของ Docker- อาร์ติแฟกต์การตรวจสอบรีลีสข้ามระบบปฏิบัติการสำหรับแต่ละระบบปฏิบัติการและชุดทดสอบ
- อาร์ติแฟกต์ความสอดคล้องของ QA, ความสอดคล้องของรันไทม์, Matrix และ Telegram
ไฟล์เวิร์กโฟลว์
.github/workflows/full-release-validation.yml.github/workflows/openclaw-release-checks.yml.github/workflows/openclaw-live-and-e2e-checks-reusable.yml.github/workflows/plugin-prerelease.yml.github/workflows/install-smoke.yml.github/workflows/install-smoke-reusable.yml.github/workflows/openclaw-cross-os-release-checks-reusable.yml.github/workflows/package-acceptance.yml.github/workflows/openclaw-performance.yml.github/workflows/npm-telegram-beta-e2e.yml