Window.pipedriveLeadboosterConfig = { القاعدة: 'leadbooster-chat.pipedrive.com', companyId: 11580370, playbookUuid: '22236db1-6d50-40c4-b48f-8b11262155be', الإصدار: 2, } ؛(الدالة () { var w = نافذة إذا كان (w.LeadBooster) { console.warn('LeadBooster موجود بالفعل') } وإلا { { w.LeadBooster = { q: [], على: دالة (ن، ح) { { هذا.q.push({ t: 'o'، n: n، n: n، h: h }) }, الزناد: الدالة (n) { هذا.q.push({ t: 't'، n: n: n }) }, } } })() سيركل سي آي - The Codest
The Codest
  • نبذة عنا
  • الخدمات
    • تطوير البرمجيات
      • تطوير الواجهة الأمامية
      • تطوير الواجهة الخلفية
    • Staff Augmentation
      • مطورو الواجهة الأمامية
      • مطورو الواجهة الخلفية
      • مهندسو البيانات
      • مهندسو السحابة
      • مهندسو ضمان الجودة
      • أخرى
    • استشاري
      • التدقيق والاستشارات
  • الصناعات
    • التكنولوجيا المالية والمصرفية
    • E-commerce
    • أدتك
    • التكنولوجيا الصحية
    • التصنيع
    • الخدمات اللوجستية
    • السيارات
    • إنترنت الأشياء
  • القيمة مقابل
    • CEO
    • CTO
    • مدير التوصيل
  • فريقنا
  • دراسات الحالة
  • اعرف كيف
    • المدونة
    • اللقاءات
    • ندوات عبر الإنترنت
    • الموارد
الوظائف تواصل معنا
  • نبذة عنا
  • الخدمات
    • تطوير البرمجيات
      • تطوير الواجهة الأمامية
      • تطوير الواجهة الخلفية
    • Staff Augmentation
      • مطورو الواجهة الأمامية
      • مطورو الواجهة الخلفية
      • مهندسو البيانات
      • مهندسو السحابة
      • مهندسو ضمان الجودة
      • أخرى
    • استشاري
      • التدقيق والاستشارات
  • القيمة مقابل
    • CEO
    • CTO
    • مدير التوصيل
  • فريقنا
  • دراسات الحالة
  • اعرف كيف
    • المدونة
    • اللقاءات
    • ندوات عبر الإنترنت
    • الموارد
الوظائف تواصل معنا
السهم الخلفي العودة إلى الوراء
2019-07-23
تطوير البرمجيات

سيركلسي

The Codest

داميان واتروبا

Software Engineer

CircleCI هي أداة بسيطة للغاية تم تكوينها بشكل جيد كمشرف على مشاريعنا. لكن هل التكوين نفسه بسيط؟ هذا بالطبع يعتمد على مدى تعقيد المشروع. في حالتنا (الريبو الأحادي) اتضح أنه أكثر صعوبة مما كان متوقعًا.

إن التكوين لمشاريع Ruby on Rails ليس معقدًا، و الوثائق يصف بدقة كل عنصر من عناصر config.yml. ومع ذلك، أود أن أركّز على أدوات Circci التي تُستخدم لمساعدتنا في الحفاظ على الكود النظافة وضمان الممارسة الجيدة.

روبوكوب

من المرجح أن RuboCope غني عن التعريف، ومع ذلك، بالنسبة لأولئك الذين ليسوا على دراية به، فهو محلل كود روبي الثابت ومُنسق الشيفرة. إذا كنت تستخدم بالفعل روبوكوب في المشروع، ببساطة أضف CircleCI إلى ملف التكوين:

 تشغيل:
    الاسم روبوكوب
    الأمر: bundle exec rubocop

ESLINT

ESLint هي أداة لتحديد الأنماط الموجودة في ECMAScript أو ECMAScript والإبلاغ عنها. JavaScript الكود، من أجل جعل الكود أكثر اتساقًا وتجنب الأخطاء.

أركض
    الاسم: Eslint
    الأمر: npm run eslint

RSPEC

في RSpec، الاختبارات ليست مجرد نصوص برمجية تتحقق من شيفرة التطبيق، بل هي أيضاً شروح مفصلة لكيفية تصرف التطبيق، معبراً عنها بلغة إنجليزية بسيطة:

تشغيل:
    الاسم: RSpec
    أمر: |
      mkdir /tmp/tmp/test-results
      TEST_FILES="$(circleci tests glob "spec/spec.rb" |
        انقسام اختبارات circleci - تقسيم حسب=التوقيتات)"
      حزمة تنفيذ حزمة rspec
        --تنسيق التقدم
        --تنسيق RspecJunitFormatter
        --خارج /tmp/tmp/test-results/rspec.xml
        --تنسيق التقدم
        $test_files

- تخزين_نتائج_الاختبار:
    المسار: /tmp/test-results

في حالة RSpec، نقوم بحفظ نتيجة الاختبار في كتالوج تم إنشاؤه مسبقًا /tmp/test-results في ملف rspec.xml، ثم باستخدام المتجرالاختبارالنتائج مفتاح نقوم بتخزين كتالوج معين. ستمنحنا علامة التبويب Insights الآن إمكانية الوصول إلى معلومات مثل متوسط وقت التجميع أو وقت آخر تجميع أو معدل النجاح. يمكنك قراءة المزيد حول علامة التبويب Insights هنا. إذا أردنا تخزين ملف rspec.xml كـ "قطعة أثرية" نحتاج إلى إضافة تخزين_التحف الفنية في ملف التكوين الخاص بنا.

 تخزين_التحف:
    المسار: /tmp/test-results

براكيمان

Brakeman هي أداة تحليل ثابت تقوم بفحص تطبيقات Ruby on Rails بحثاً عن الثغرات الأمنية. بشكل افتراضي، يقوم Brakeman بإرجاع رمز خروج غير صفري في حالة اكتشاف تحذيرات أمنية أو مواجهة أخطاء في الفحص. لذلك، ركزنا فقط على الأخطاء الحرجة وتم إيقاف تشغيل التحذيرات.

أركض
    الاسم: Brakeman
    الأمر: bundle exec brakeman --لا خروج عند التحذير

إذا أردنا أيضًا تخزين نتيجة المسح بنفس طريقة RSpec، سيبدو التكوين الخاص بنا بهذا الشكل، وسيكون لدينا إمكانية الوصول إلى ملفنا في علامة التبويب "القطع الأثرية".

 أركض
    الاسم: براكمان
    الأمر: | |
      mkdir /tmp/brakeman
      bundle exec brakeman --no-exit-on-warn -o /tmp/brakeman/output.json

- تخزين_التحف:
    المسار: /tmp/brakeman

روبي كريتيك

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'
  • راكيفيل
    يتطلب '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

علينا الآن إنشاء مفتاحين:

رمز_التغطية_المراسل_الدائري_الرمزي

رمز واجهة برمجة التطبيقات (API)

قسم 'الإعدادات' من مشروعنا. بعد اختيار 'إنشاء رمز مميز' قم بتغيير النطاق لـ 'الكل' واملأ تسمية الرمز المميز. سيتم إنشاء الرمز المميز لواجهة برمجة التطبيقات بعد النقر على

الرمز المميز للتغطية_المراسل_vcs_token

الرمز المميز

نطاق مفتاح إعادة الشراء

بعد إنشاء المفاتيح، يجب أن نضيفها إلى متغيرات البيئة في الإعدادات:

متغير البيئة
إضافة متغير

تكوين العينة:

الوظائف:
  بناء:
    docker:
      - الصورة: circleci/ruby: 2.5.1.1node-browsers
      البيئة:
        إصدار_إصدار_الحزمة: 2.0.1
        مسار_الحزمة: / حزمة
        BUNDLE_JOBS: 4
        RAILS_ENV: اختبار
    - الصورة: circleci/postgres:10.1-alpine
      البيئة:
        POSTGRES_USER: Postgres
        POSTGRES_DB: example_test
        POSTGRES_PASSWORD: مثال
    - الصورة: circleci/redis:4.0.8alpine
    دليل_العمل: ~/رؤى
    البيئة:
        المنطقة: أوروبا/وارسو
    خطوات
      - الخروج
      - تشغيل:
          الاسم: تثبيت الإصدار 2.0.1 من برنامج bundler
          الأمر: gem install bundler -v 2.0.1
      - استعادة_ذاكرة التخزين المؤقت:
          المفاتيح:
            - v1-ruby-dependencies-(( المجموع الاختباري "Gemfile.lock"))
            - v1-ruby-dependencies-
      - تشغيل:
          الاسم: تثبيت الحزمة
          الأمر: التحقق من الحزمة || تثبيت الحزمة
      - حفظ_ذاكرة التخزين المؤقت:
          المفتاح: v1-ruby-dependencies-(( المجموع الاختباري "Gemfile.lock"))
          المسارات:
            - بائع/حزمة
      - استعادة_ذاكرة التخزين المؤقت:
          مفاتيح:
            - v1-npm-dependependencies-(( المجموع الاختباري "package.json" )))
            - v1-npm-dependencies-
      - تشغيل:
          الاسم: Npm Install
          الأمر: npm install
      - حفظ_ذاكرة التخزين المؤقت:
          المفتاح: v1-npm-dependencies-(( المجموع الاختباري "package.json"))
          المسارات:
            - ~/INSights/node_modules
      - تشغيل:
        الاسم: إعداد قاعدة البيانات
        الأمر: | |
          حزمة تنفيذ حزمة أشعل النار أشعل النار: إنشاء
          حزمة تنفيذ الحزمة: |حزمة تنفيذ أشعل النار على قاعدة البيانات: تحميل
      - تشغيل:
          اسم: روبوكوب
          الأمر: حزمة تنفيذ حزمة روبوكوب
      - تشغيل:
          الاسم: Eslint
          الأمر: npm تشغيل eslint
      - تشغيل:
          الاسم: إسلينت RSpec
          أمر: |
            mkdir /tmp/tmp/test-results
            TEST_FILES="$(circleci tests glob "spec/spec.rb" |
              انقسام اختبارات circleci - تقسيم حسب=التوقيتات)"
            حزمة تنفيذ حزمة rspec
              --تنسيق التقدم
              --تنسيق RspecJunitFormatter
              --خارج /tmp/tmp/test-results/rspec.xml
              --تنسيق التقدم
              $test_files
      - تشغيل:
          الاسم: Brakeman
          الأمر: bundle exec brakeman --لا خروج عند التحذير
      - تخزين_نتائج_الاختبار:
          المسار: المسار: /tmp/test-results: /tmp/test-results
  روبي كريتيك:
    docker:
      - الصورة: circleci/روبي: 2.5.1.1node-browsers
        البيئة:
          إصدار_إصدار_الحزمة: 2.0.1
          BUNDLE_PATH: / حزمة
          BUNDLE_JOBS: 4
          RAILS_ENV: اختبار
          دائرة_التحف: /tmp
    دليل_العمل: ~/رؤى
    الخطوات:
      - الخروج
      - تشغيل:
          الاسم: تثبيت الإصدار 2.0.1 من برنامج bundler
          الأمر: gem install bundler -v 2.0.1
      - استعادة_ذاكرة التخزين المؤقت:
          المفاتيح:
            - v1-rubycritic-dependencies-(( المجموع الاختباري "Gemfile.lock"))
            - v1-rubycritic-dependependencies-
      - تشغيل:
          الاسم: تثبيت الحزمة
          الأمر: فحص الحزمة || تثبيت الحزمة
      - حفظ_ذاكرة التخزين المؤقت:
          المفتاح: v1-rubycritic-dependencies-(( المجموع الاختباري "Gemfile.lock"))
          المسارات
            - بائع/حزمة
      - تشغيل:
          اسم: تشغيل روبيكريتيك
          الأمر: bundle exec rubycritic ./app -p /tmp/rubycritic -f json -f html --no-browser
      - تخزين_التحف:
          المسار: /tmp/rubycritic
      - تشغيل:
          الاسم: إشعار روبيكريتيك
          الأمر: حزمة تنفيذ الحزمة rake circleci:report_coverage

سير العمل:
  الإصدار: 2
  build_and_rubycritic:
    الوظائف
      - بناء
      - روبي كريتيك:
          يتطلب:
            - بناء

المصادر:

  • قائمة بصور docker المتاحة لـ CircleCi

    • صور Docker
  • سيركلسي

    • التهيئة CircleCi

      • تكوين العينة
      • جمع بيانات الاختبار
      • استخدام الرؤى
      • تخزين مصنوعات البناء
  • الأحجار الكريمة أو الأدوات المستعملة

    • روبوكوب

      • إسلينت
      • آر إس بيك
      • رجل المكابح
      • روبي كتريتيك
      • تقرير تغطية الدائرة

اقرأ المزيد:

  • ممارسات Codest الجيدة لبناء البرمجيات: وثائق المشروع
  • كيف تكتب كودًا جيدًا وعالي الجودة؟
  • مبدأ الفتح المغلق. هل يجب أن أستخدمه؟

مقالات ذات صلة

تطوير البرمجيات

إنشاء تطبيقات ويب مستقبلية: رؤى من فريق خبراء The Codest

اكتشف كيف تتفوق شركة The Codest في إنشاء تطبيقات ويب تفاعلية قابلة للتطوير باستخدام أحدث التقنيات، وتقديم تجارب مستخدم سلسة عبر جميع المنصات. اكتشف كيف تقود خبرتنا التحول الرقمي والأعمال التجارية...

ذا كوديست
تطوير البرمجيات

أفضل 10 شركات لتطوير البرمجيات في لاتفيا

تعرّف على أفضل شركات تطوير البرمجيات في لاتفيا وحلولها المبتكرة في أحدث مقالاتنا. اكتشف كيف يمكن لهذه الشركات الرائدة في مجال التكنولوجيا المساعدة في الارتقاء بأعمالك.

thecodest
الحلول المؤسسية وحلول التوسعة

أساسيات تطوير برمجيات جافا: دليل للاستعانة بمصادر خارجية بنجاح

استكشف هذا الدليل الأساسي حول تطوير برمجيات جافا outsourcing بنجاح لتعزيز الكفاءة والوصول إلى الخبرة وتحقيق نجاح المشروع باستخدام The Codest.

thecodest
تطوير البرمجيات

الدليل الشامل للاستعانة بمصادر خارجية في بولندا

إن الطفرة في outsourcing في بولندا مدفوعة بالتقدم الاقتصادي والتعليمي والتكنولوجي، مما يعزز نمو تكنولوجيا المعلومات والمناخ الملائم للأعمال.

ذا كوديست
الحلول المؤسسية وحلول التوسعة

الدليل الكامل لأدوات وتقنيات تدقيق تكنولوجيا المعلومات

تضمن عمليات تدقيق تكنولوجيا المعلومات وجود أنظمة آمنة وفعالة ومتوافقة. تعرف على المزيد حول أهميتها من خلال قراءة المقال كاملاً.

The Codest
ياكوب جاكوب جاكوبوفيتش CTO وشريك مؤسس CTO

اشترك في قاعدة معارفنا وابقَ على اطلاع على آخر المستجدات في قطاع تكنولوجيا المعلومات.

    نبذة عنا

    The Codest - شركة دولية لتطوير البرمجيات لها مراكز تقنية في بولندا.

    المملكة المتحدة - المقر الرئيسي

    • المكتب 303 ب، 182-184 شارع هاي ستريت نورث E6 2JA
      لندن، إنجلترا

    بولندا - مراكز التكنولوجيا المحلية

    • مجمع مكاتب فابريتشنا المكتبي، أليجا
      بوكوجو 18، 31-564 كراكوف
    • سفارة الأدمغة، كونستروكتورسكا
      11, 02-673 02-673 وارسو، بولندا

      The Codest

    • الصفحة الرئيسية
    • نبذة عنا
    • الخدمات
    • دراسات الحالة
    • اعرف كيف
    • الوظائف
    • القاموس

      الخدمات

    • استشاري
    • تطوير البرمجيات
    • تطوير الواجهة الخلفية
    • تطوير الواجهة الأمامية
    • Staff Augmentation
    • مطورو الواجهة الخلفية
    • مهندسو السحابة
    • مهندسو البيانات
    • أخرى
    • مهندسو ضمان الجودة

      الموارد

    • حقائق وأساطير حول التعاون مع شريك خارجي لتطوير البرمجيات
    • من الولايات المتحدة الأمريكية إلى أوروبا: لماذا تقرر الشركات الأمريكية الناشئة الانتقال إلى أوروبا؟
    • مقارنة مراكز تطوير التكنولوجيا في الخارج: تك أوفشور أوروبا (بولندا)، آسيان (الفلبين)، أوراسيا (تركيا)
    • ما هي أهم التحديات التي تواجه CTOs ومديري تكنولوجيا المعلومات؟
    • The Codest
    • The Codest
    • The Codest
    • Privacy policy
    • شروط استخدام الموقع الإلكتروني

    جميع الحقوق محفوظة © 2025 بواسطة The Codest. جميع الحقوق محفوظة.

    arArabic
    en_USEnglish de_DEGerman sv_SESwedish da_DKDanish nb_NONorwegian fiFinnish fr_FRFrench pl_PLPolish it_ITItalian jaJapanese ko_KRKorean es_ESSpanish nl_NLDutch etEstonian elGreek arArabic