CircleCI هي أداة بسيطة للغاية تم تكوينها بشكل جيد كمشرف على مشاريعنا. لكن هل التكوين نفسه بسيط؟ هذا بالطبع يعتمد على مدى تعقيد المشروع. في حالتنا (الريبو الأحادي) اتضح أنه أكثر صعوبة مما كان متوقعًا.
إن التكوين لمشاريع Ruby on Rails ليس معقدًا، و الوثائق يصف بدقة كل عنصر من عناصر config.yml. ومع ذلك، أود أن أركّز على أدوات Circci التي تُستخدم لمساعدتنا في الحفاظ على الكود النظافة وضمان الممارسة الجيدة.
من المرجح أن RuboCope غني عن التعريف، ومع ذلك، بالنسبة لأولئك الذين ليسوا على دراية به، فهو محلل كود روبي الثابت ومُنسق الشيفرة. إذا كنت تستخدم بالفعل روبوكوب في المشروع، ببساطة أضف CircleCI إلى ملف التكوين:
في حالة RSpec، نقوم بحفظ نتيجة الاختبار في كتالوج تم إنشاؤه مسبقًا /tmp/test-results في ملف rspec.xml، ثم باستخدام المتجرالاختبارالنتائج مفتاح نقوم بتخزين كتالوج معين. ستمنحنا علامة التبويب Insights الآن إمكانية الوصول إلى معلومات مثل متوسط وقت التجميع أو وقت آخر تجميع أو معدل النجاح. يمكنك قراءة المزيد حول علامة التبويب Insights هنا. إذا أردنا تخزين ملف rspec.xml كـ "قطعة أثرية" نحتاج إلى إضافة تخزين_التحف الفنية في ملف التكوين الخاص بنا.
Brakeman هي أداة تحليل ثابت تقوم بفحص تطبيقات Ruby on Rails بحثاً عن الثغرات الأمنية. بشكل افتراضي، يقوم Brakeman بإرجاع رمز خروج غير صفري في حالة اكتشاف تحذيرات أمنية أو مواجهة أخطاء في الفحص. لذلك، ركزنا فقط على الأخطاء الحرجة وتم إيقاف تشغيل التحذيرات.
إذا أردنا أيضًا تخزين نتيجة المسح بنفس طريقة RSpec، سيبدو التكوين الخاص بنا بهذا الشكل، وسيكون لدينا إمكانية الوصول إلى ملفنا في علامة التبويب "القطع الأثرية".
RubyCritic هو جوهرة تستخدم الأحجار الكريمة للتحليل الثابت، مثل Reek و Flay و Flog، لتقديم تقرير عن جودة الشيفرة البرمجية الخاصة بك. يحتوي التقرير على تصنيف A / B / C / D / F، وكل ملف في مشروعنا نريد فحصه بدقة والأماكن التي تحتاج إلى تحسين، وتوثيق مع كل تنبيه (على سبيل المثال: طرق كثيرة جدًا). تعمل هذه الأداة كمستشار في المشروع. وبناءً على التقرير الوارد، يعتمد القرار النهائي بشأن ما إذا كان الكود الخاص بنا يحتاج بالفعل إلى تصحيح على المطور. في تكوين Circci الخاص بنا، يتم تعيين مهمة منفصلة تكون مسؤولة عن إعداد التقرير وإرسال تعليق خاص بالنتيجة على github.
لا يختلف التكوين الأساسي لـ rubycritic عن سابقيه.
تشغيل:
الاسم روبيكريتيك
الأمر: bundle exec rubycritic ./app -p /tmp/rubycritic -f json -f html --no-browser
- تخزين_التحف:
المسار: /tmp/rubycritic
كما هو معتاد، نقوم بتشغيل الحزمة مع معلومات عن الدليل الذي نريد فحصه ./التطبيق، والمكان الذي نريد حفظ النتيجة فيه -p /tmp/rubycritic (يقوم rubycritic تلقائيًا بإنشاء دليل نخزن فيه تقريرنا)، وبأي تنسيق -f json وخيار -no- المتصفح. نستخدم أيضًا الجوهرة دائرة_تغطية_الدائرةوالتي بعد الفحص، تضع تعليقًا على github في طلب السحب الخاص بنا مع رابط للتقرير ونسبة مئوية لتقييم الملفات التي تم فحصها.
لكي تعمل الأحجار الكريمة المذكورة أعلاه بشكل صحيح مع circleci، يجب علينا إضافتها إلى مشروعنا وإنشاء مفتاحين (أحدهما هو circleci، والثاني هو github).
راكيفيل يتطلب 'circleci/coverage_reporter/rake_task_task' إذا كانت ENV['CIRCLECI']
.config.yml
تشغيل:
الاسم: تشغيل روبيكريتيك
الأمر: bundle exec rubycritic./app -p /tmp/rubycritic -f json -f html --no-browser
تخزين_التحف:
المسار: /tmp/rubycritic
تشغيل:
الاسم: إشعار روبيكريتيك
الأمر: حزمة تنفيذ الحزمة rake circleci:report_coverage
علينا الآن إنشاء مفتاحين:
رمز_التغطية_المراسل_الدائري_الرمزي
قسم 'الإعدادات' من مشروعنا. بعد اختيار 'إنشاء رمز مميز' قم بتغيير النطاق لـ 'الكل' واملأ تسمية الرمز المميز. سيتم إنشاء الرمز المميز لواجهة برمجة التطبيقات بعد النقر على
الرمز المميز للتغطية_المراسل_vcs_token
نطاق مفتاح إعادة الشراء
بعد إنشاء المفاتيح، يجب أن نضيفها إلى متغيرات البيئة في الإعدادات: