Full Release Validation هو الإطار الجامع للإصدار: نقطة الدخول اليدوية الوحيدة
لإثبات ما قبل الإصدار. يجري معظم العمل في مهام سير عمل فرعية، بحيث يمكن
إعادة تشغيل بيئة فاشلة دون إعادة بدء الإصدار بالكامل.
شغّله من مرجع موثوق لمهمة سير العمل، وعادةً ما يكون main، ومرّر فرع الإصدار
أو الوسم أو SHA الكامل للالتزام بوصفه ref:
provider أيضًا anthropic أو minimax للإعداد الأولي عبر أنظمة التشغيل
المختلفة ودورة الوكيل المتكاملة. تحل المهام الفرعية القابلة لإعادة الاستخدام
أداة مهمة سير العمل المستدعاة من job.workflow_repository وjob.workflow_sha،
بينما يحدد الإدخال ref المرشح الخاضع للاختبار. يتيح ذلك استخدام منطق التحقق
الموثوق الحالي عند التحقق من فرع إصدار أو وسم أقدم.
يجب أن تبلغ كل مهمة فرعية مُرسلة عن SHA مهمة سير العمل نفسه الخاص بتشغيل
Full Release Validation الأب. إذا تحرك main بين عمليات إرسال الأب والمهام
الفرعية، يفشل الإطار الجامع بصورة مغلقة حتى إذا نجحت المهمة الفرعية نفسها.
للحصول على إثبات غير قابل للتغيير لالتزام محدد بدقة، استخدم
pnpm ci:full-release --sha <target-sha>. ينشئ المساعد مرجعًا مؤقتًا
release-ci/* مثبتًا على origin/main الموثوق الحالي، ويمرر SHA الهدف بوصفه
ref المرشح فقط، ويعيد استخدام أدلة الهدف الدقيق الصارمة عند توفرها، ويحذف
المرجع بعد التحقق. مرّر -f reuse_evidence=false لفرض تشغيل جديد أو
--workflow-sha <trusted-main-sha> لاختيار التزام أقدم لمهمة سير العمل لا يزال
يمكن الوصول إليه من origin/main الحالي. لا تنشئ مهمة سير العمل مراجع المستودع
ولا تحدّثها بنفسها أبدًا.
يشغّل release_profile=stable وrelease_profile=full دائمًا اختبار التحمل
الشامل المباشر/عبر Docker. مرّر run_release_soak=true لتضمين مسارات اختبار
التحمل نفسها مع ملف beta. يرفض النشر المستقر بيان تحقق لا يتضمن اختبار
التحمل هذا وأدلة أداء المنتج المانعة.
يبني قبول الحزمة عادةً حزمة tarball المرشحة من ref المحلول، بما في ذلك
عمليات SHA الكامل المُرسلة باستخدام pnpm ci:full-release. بعد نشر إصدار
تجريبي، مرّر release_package_spec=openclaw@YYYY.M.PATCH-beta.N لإعادة استخدام
حزمة npm المنشورة عبر فحوص الإصدار وقبول الحزمة وأنظمة التشغيل المختلفة ومسار
الإصدار عبر Docker وحزمة Telegram. استخدم package_acceptance_package_spec
فقط عندما ينبغي لقبول الحزمة أن يثبت حزمة مختلفة عمدًا. يتبع مسار الحزمة
المباشر لـ Plugin Codex الحالة نفسها: تستمد قيم release_package_spec
المنشورة codex_plugin_spec=npm:@openclaw/codex@<version>؛ وتحزم عمليات
SHA/الأثر extensions/codex من المرجع المحدد؛ ويمكن للمشغّلين تعيين
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 أو من مرجع release-ci/* أساسي مثبت بـ SHA يظل
التزام مهمة سير العمل الخاص به ضمن سلسلة main الموثوقة؛ أما مراجع مهام سير
العمل الأخرى فتشغّل المسارات المحددة من جديد.
كذلك عند rerun_group=all، تبني مهمة Verify Docker runtime image assets
هدف Docker المسمى runtime-assets باستخدام
OPENCLAW_EXTENSIONS=diagnostics-otel,codex. تعمل بالتوازي مع المراحل الأخرى
ويفرضها مدقق الإطار الجامع؛ ولم تعد المسارات تنتظرها قبل الإرسال. يتخطى
rerun_group الأضيق هذا الفحص التمهيدي.
يرسل الإطار الجامع أداء المنتج دائمًا في وضع الأثر فقط.
تسمح
OpenClaw Performance بنشر التقارير فقط لعمليات التشغيل المجدولة أو
للإرسال اليدوي الذي يعيّن publish_reports=true صراحةً. يجب أن يكتمل حارس
وضع الأثر فقط بنجاح، بما يثبت أن مهمة الناشر ظلت متخطاة. تسجل الأدلة الجديدة
والمعاد استخدامها
controls.performanceReportPublication=artifact-only؛ ويرفض المدقق ومحدد
إعادة الاستخدام الأدلة التي لا تحتوي على إثبات المهمة الفرعية للأداء
المطبّع والمطابق.
يرفع المدقق البيان الأساسي باسم
full-release-validation-<run-id>-<run-attempt>. تتحقق أدوات الأدلة من معرّف
الأثر وملخصه وعملية التشغيل المنتجة ومحاولة التشغيل قبل تنزيل معرّف الأثر
المحدد بدقة. وتفرض حدًا أقصى على ملف ZIP المنزّل، وتتحقق من وحدات بايته مقابل
ملخص REST من النوع sha256:، وتبث مدخل البيان المحدود الوحيد المسموح به دون
استخراج الأرشيف. يبقى اسم مستعار ثابت مؤقتًا لمستهلكي النشر الأقدم. يفضّل
المدقق دائمًا الأثر المؤهل بمحاولة التشغيل؛ وكإجراء انتقالي، يقبل الاسم الثابت
فقط لمنتج بيان v2 من المحاولة الأولى. ويرفض ذلك الاسم القديم للمحاولات اللاحقة
ولبيان v3.
عند ref=main مع rerun_group=all، ولمراجع release/*، ولمراجع Tideclaw
alpha، يحل تشغيل أحدث للإطار الجامع محل تشغيل أقدم له المرجع ومجموعة إعادة
التشغيل نفسيهما. عند إلغاء الأب، تلغي أداة مراقبته أي مهمة سير عمل فرعية سبق
أن أرسلها. لا تلغي عمليات التحقق الخاصة بالوسوم وSHA المثبت بعضها بعضًا.
مراحل فحوص الإصدار
تُعدOpenClaw Release Checks أكبر مهمة سير عمل فرعية. تحل الهدف مرة واحدة
وتجهّز أثرًا مشتركًا باسم release-package-under-test عندما تحتاج إليه المراحل
المتعلقة بالحزمة أو Docker.
أجزاء مسار إصدار Docker
تشغّل مرحلة مسار إصدار Docker هذه الأجزاء عندما يكونlive_suite_filter
فارغًا:
استخدم
docker_lanes=<lane[,lane]> الموجّه في سير العمل الحي/E2E القابل لإعادة الاستخدام عندما
يفشل مسار Docker واحد فقط. تتضمن أدوات الإصدار أوامر إعادة تشغيل خاصة بكل مسار
مع مدخلات لإعادة استخدام أداة الحزمة والصورة عند توفرها.
ملفات تعريف الإصدار
يتحكمrelease_profile أساسًا في نطاق الاختبارات المباشرة/المزوّدين ضمن فحوصات الإصدار.
ولا يلغي CI الكامل المعتاد، أو الإصدار التجريبي المسبق للـ Plugin، أو اختبار التثبيت السريع، أو
قبول الحزمة، أو مختبر ضمان الجودة. تُشغّل ملفات التعريف المستقرة والكاملة دائمًا تغطية شاملة
لاختبارات E2E للمستودع/الاختبارات المباشرة واختبارات التحمّل لمسار إصدار Docker. ويمكن لملف
التعريف التجريبي الاشتراك عبر run_release_soak=true. يوفّر قبول الحزمة اختبار Telegram E2E
القياسي للحزمة لكل إصدار كامل مرشّح، لذلك لا تكرر المظلة أداة الاستطلاع المباشر هذه.
إضافات الملف الكامل فقط
يتخطىstable مجموعات الاختبارات التالية، بينما يضمّنها full:
يتضمن
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 لتجنب تكرار بيئات إصدار غير مرتبطة:
استخدم
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 لكي يظهر التحديث العالق قبل انتهاء مهلة المهمة.
تمنع إخفاقات فحوصات إصدار ضمان الجودة التحقق المعتاد من الإصدار. كما يمنع فحص تغطية أدوات
وقت تشغيل ضمان الجودة (الانحراف الديناميكي للأدوات بين openclaw وcodex في المستوى
القياسي) مدقق فحوصات الإصدار، رغم أن مسار تكافؤ وقت تشغيل ضمان الجودة الأساسي استشاري.
وقد تظل عمليات Tideclaw alpha تعامل مسارات فحوصات الإصدار غير المرتبطة بسلامة الحزمة
على أنها استشارية. عند استخدام release_profile=beta، تكون مجموعات اختبارات المزوّدين
المباشرة ضمن Run repo/live E2E validation استشارية: إذ تتغير عمليات نشر نماذج الجهات
الخارجية أثناء الإصدار، ولذلك يعرض الإصدار التجريبي إخفاقاتها كتحذيرات، بينما تبقي ملفات
التعريف المستقرة والكاملة عليها كعوامل مانعة. عندما يطلب
live_suite_filter صراحةً مسار ضمان جودة مباشرًا مشروطًا مثل Discord أو
WhatsApp أو Slack، يجب تمكين متغير المستودع المطابق OPENCLAW_RELEASE_QA_*_LIVE_CI_ENABLED؛
وإلا يفشل التقاط الإدخال بدلًا من تخطي المسار بصمت.
أعد التشغيل باستخدام rerun_group=qa أو qa-parity أو qa-live عندما
تحتاج إلى أدلة حديثة لضمان الجودة.
الأدلة الواجب الاحتفاظ بها
احتفظ بملخصFull Release Validation بوصفه فهرسًا على مستوى الإصدار. فهو يربط
معرّفات العمليات الفرعية ويتضمن جداول بأبطأ المهام. عند حدوث إخفاقات، افحص سير العمل
الفرعي أولًا، ثم أعد تشغيل أصغر معرّف مطابق أعلاه.
العناصر المفيدة:
release-package-under-testمنOpenClaw Release Checks- عناصر مسار إصدار Docker ضمن
.artifacts/docker-tests/ package-under-testالخاص بقبول الحزمة وعناصر قبول Docker- عناصر فحوصات الإصدار عبر أنظمة التشغيل لكل نظام تشغيل ومجموعة اختبارات
- عناصر تكافؤ ضمان الجودة، وتكافؤ وقت التشغيل، و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