مُدقّق وصيغة ملفات YAML لـ GitHub Actions
مرشد
مُدقّق وصيغة ملفات YAML لـ GitHub Actions
اللصق ملف عمل GitHub Actions وتحديد بسرعة البنية المُكسورة، أو السلوك المُستَبعد، أو الأنماط الخطرة قبل فشل تشغيل CI. يتحقق المُدقق من ملفك وفقًا لخطة مُدمجة للتشغيل، المهام، الخطوات، المُشغلين، الصلاحيات، والاستدعاءات المُعاد استخدامها، ثم يُعيد تنسيق ملف YAML بترتيب مُدرك للعمل بحيث يُظهر كل ملف في مخزنك نفس الشكل.
كيفية استخدام
- ألصق
.github/workflows/*.ymlاللصق الملف في مربع الإدخال، أو النقر على أحد روابط الأمثلة لتحميل مثال CI أو إصدار أو سلوك مُستَبعد. - تبديل تسلسل المفاتيح لإعادة ترتيب الحقول باستخدام الترتيب القياسي لـ GitHub Actions (الاسم، التفعيل، الصلاحيات، المهام، ثم تشغيل المهام لكل مهمة).
- الاحتفاظ التحقق من مخطط GitHub Actions مُفعّل لتحديد الحقول المطلوبة المفقودة، أنواع الحدث غير المعروفة، العلامات غير الصالحة للمشغل، والروابط المُكسورة
needsالمرجعية. - الاحتفاظ إظهار نصائح أفضل الممارسات مُفعّل للنصائح المتعلقة بالسلسلة والموثوقية (إبقاء المُعاملات الخارجية على شكل SHA، إضافة
timeout-minutes، استبدال الأوامر المُستَبعدة). - النسخ المُعاد تشكيله للـ YAML أو تنزيله كملف
.ymlمُعد للإدخال.
خصائص
- التحقق من المخطط – الحقول الضرورية على مستوى الأعلى (
on,jobs)، أسماء الحدث المسموح بها، مفاتيح المهام والخطوات المسموح بها، والمساحات المسموحة للصلاحيات. - قواعد العمل المُعاد استخدامه – يكتشف عندما يختلط المُهمة بين
usesالمسائل الشائعة التي يجب مراقبتهاruns-onأوsteps، والتي سيعترف بها GitHub عند التشغيل. - مُراجعة رسم المهام – يُظهر التناقضات الذاتية والاعتماد على مهام لا توجد في الملف.
- مُحلل مرجع العمل – يُكتشف القيم المفقودة
uses:أو غير موجودة في@refالشكل.owner/repoمُستبعد السياق - – يُحذر من البيئات القديمة مع الاستبدال الحديث.
::set-env,::set-output,::save-stateو، وnode12/node16نصائح أفضل الممارسات - – يقترح إبقاء المُعاملات الخارجية على شكل SHA للإبقاء على التثبيت، وإضافة لمنع المهام المُتسلسلة.
timeout-minutesمُراجعة الساعات - – يتحقق من أن مدخلات الساعات تحتوي على خمسة حقول فقط. مُعدّل مُدرك للعمل
on.schedule– يُعيد ترتيب المفاتيح على مستوى العمل، مستوى المهمة، ومستوى الخطوة إلى الترتيب القياسي لـ GitHub Actions لضمان التغييرات المتسقة. - – لا يتم إرسال أي محتوى للعمل إلى خادم. لماذا يُعاني مُخططات GitHub Actions من أخطاء هيكلية؟
- يُشغل بالكامل في المتصفح الخاص بك يُتبع مخطط YAML لـ GitHub Actions خطة صارمة تحتوي على مفاتيح ضرورية على مستوى الأعلى، أسماء حدث محددة، وقواعد المفاتيح على مستوى المهمة التي تختلف حسب ما إذا كانت المهمة عادية أو استدعاء لعمل مُعاد استخدامه. يتم تحليل الملف فقط عند تفعيله على GitHub، لذا فإن خطأ في اسم المفتاح أو حدث غير معروف يبقى في المخزن حتى يفشل التحديث أو الطلب التالي. يُكتشف هذه الأنواع من الأخطاء قبل أن تصل إلى المُشغل من خلال التحقق من المخطط.
التعليمات
-
ما الذي يحمي من خلال تثبيت العمل على شكل SHA للإطلاق؟
يُحلل GitHub Actions
-
إلى أي مُستوى يشير إليه
عند تشغيله. لأن العلامات قابلة للتعديل، يمكن أن يُحرك مُحافظ (أو مُهاجم يُسيطر على حساب المُحافظ) العلامة إلى مُستوى خبيث، مما سيؤدي إلى تشغيل الكود الجديد في كل مرة يتم فيها التشغيل. تثبيت المُستوى الكامل المكون من 40 حرف يُجمد محتوى المصدر للعمل على نسخة معروفة، لذا لا يمكن تغيير السلوك في المستقبل.
uses: owner/action@v1لماذا تم إلغاء استخدام ::set-env، ::set-output، و::save-state؟v1أوامر العمل القديمة كتبت متغيرات البيئة، مخرجات الخطوة، وحالة محفوظة من خلال إرسال سلسلات مُحددة على خرج المُشغل. أي أداة يتم تشغيلها على المُشغل يمكن أن تُظهر نفس الشكل وتحدد قيمًا عشوائية فيv1أو مخرجات الخطوة، بما في ذلك تجاوز -
أو السرّات التي يعتمد عليها الخطوة التالية. تُستخدم الاستبدالات ملفات مُحددة وقابلة للإضافة (
) التي لا يمكن للبرامج الفرعية أن تقرأها أو تُعدلها بعد ذلك.
GITHUB_ENVلماذا يطلب المُدقق قيمة دقيقة للوقت لكل مهمة؟PATHبدون$GITHUB_ENV,$GITHUB_OUTPUT,$GITHUB_STATEسيستمر تشغيل المهمة المُستضاف على GitHub حتى 360 دقيقة (ساعتين) قبل أن يُلغى من قبل المنصة. يمكن أن يستهلك عملية مُجمدة أو تكوين خاطئ أو اختبار مُتسلسل كامل النطاق، مما يُعيق الطابور ويُستهلك دقائق من خطة عملك. تعيين حد أعلى محدد لكل مهمة يحوّل هذا الحالة الأسوأ إلى فشل سريع يُظهر المشكلة فورًا. -
اللصق محتوى ملف .github/workflows/*.yml هنا
تنزيل كـ .yml
timeout-minutesمُدقق ومحوّل YAML لـ GitHub Actions 1
تثبيت ملحقاتنا
أضف أدوات IO إلى متصفحك المفضل للوصول الفوري والبحث بشكل أسرع
恵 وصلت لوحة النتائج!
لوحة النتائج هي طريقة ممتعة لتتبع ألعابك، يتم تخزين جميع البيانات في متصفحك. المزيد من الميزات قريبا!
