أول workflow
من بنية مجلدات الملف إلى قراءة سجل الفشل.
يفشل أول workflow في أي مشروع تقريبًا دائمًا، ونادرًا ما يكون السبب هو ما تظنه. قد يُرفض الملف لأنه موجود في .github/workflow/ بصيغة المفرد. وقد يخبرك الأمر npm test بأن الملف package.json غير موجود، لأن المستودع لم يُجلب أصلًا. وقد يعمل كل شيء، ثم تكتشف أن الاختبارات تستغرق ثلاثين ثانية بدل ثلاث، لأن شيئًا لا يُخزَّن مؤقتًا. هذه العقبات الثلاث تنبع من نقطة عمياء واحدة: الـ runner آلة فارغة لا تعرف شيئًا عن مشروعك.
يبني هذا الدرس workflow اختبارات صالحًا للاستخدام الفعلي، سطرًا بعد سطر، مع شرح ما ينكسر عند حذف كل سطر. وينتهي بقراءة سجل تنفيذ، لأن المهارة التي توفّر الوقت على المدى الطويل ليست كتابة الملف، بل أن تعرف في ثلاثين ثانية هل يعود الفشل إلى شيفرتك أم إلى إعداداتك.
موقع الملف
لا يكتشف GitHub إلا ملفات .yml أو .yaml الموجودة مباشرةً في .github/workflows/ عند جذر المستودع.
mon-projet/
├── .github/
│ └── workflows/
│ ├── tests.yml
│ └── publication.yml
├── src/
└── package.json
تتكرر ثلاثة أخطاء باستمرار: المجلد workflow بصيغة المفرد، ومجلد فرعي (الملف .github/workflows/ci/tests.yml يُتجاهل)، وملف أُنشئ على فرع عمل بينما المشغّل (trigger) لا يخص إلا الفرع الرئيسي. في الحالات الثلاث لا يعرض GitHub أي خطأ: تبقى علامة التبويب Actions فارغة ببساطة، وهذا أكثر الأعراض إرباكًا عند التشخيص.
التعليقات
التعليقات مدعومة عبر GitHub Discussions
سجّل الدخول باستخدام GitHub للمشاركة في النقاش