GitLab CI/CD

الترجمة بالذكاء الاصطناعي مع GitLab CI/CD وLingo.dev CI/CD

ما هو GitLab CI/CD؟

GitLab CI/CD هي منصة للتكامل المستمر والنشر المستمر مدمجة في GitLab. تتيح للمستخدمين تعريف خطوط الأنابيب في ملفات YAML لبناء واختبار ونشر الكود أو أتمتة المهام التي يتم تشغيلها بواسطة أحداث المستودع.

ما هو Lingo.dev CI/CD؟

Lingo.dev CI/CD هي أداة مدعومة بالذكاء الاصطناعي لتوطين التطبيقات والمحتوى في CI/CD، مما يضمن عدم تقادم الترجمات أبدًا. تم بناؤها على أساس Lingo.dev CLI ومتاحة عبر الأمر ci:

npx lingo.dev@latest ci --help

حول هذا الدليل

يشرح هذا الدليل كيفية إعداد Lingo.dev CI/CD مع GitLab CI/CD وLingo.dev Engine.

الخطوة 1. إعداد Lingo.dev CLI

للبدء، اتبع دليل البدء السريع لـ Lingo.dev CLI.

يجب أن ينتهي بك الأمر بـ:

  • مفتاح API لـ Lingo.dev
  • ملف i18n.json يقوم بتكوين سلوك خط أنابيب الترجمة
  • القدرة على ترجمة المحتوى باستخدام npx lingo.dev@latest run

الخطوة 2. الحصول على رمز وصول

في GitLab CI/CD، يلزم وجود رمز وصول لتنفيذ إجراءات معينة ضمن خط الأنابيب.

هناك نوعان من رموز الوصول:

يمكن استخدام أي منهما، ولكن رموز الوصول الشخصية فقط متاحة للمستخدمين غير المدفوعين في GitLab.

رموز الوصول الشخصية

  1. في الشريط الجانبي الأيسر، حدد صورتك الرمزية.

  2. حدد تعديل الملف الشخصي.

  3. في الشريط الجانبي الأيسر، حدد رموز الوصول.

  4. حدد إضافة رمز جديد.

  5. في اسم الرمز، أدخل اسمًا للرمز (مثل "Lingo.dev").

  6. قم بتفعيل النطاقات التالية.

    • api
    • read_repository
    • write_repository
  7. حدد إنشاء رمز وصول شخصي.

رموز وصول المشروع

  1. انتقل إلى مشروع في GitLab.

  2. حدد الإعدادات > رموز الوصول.

  3. حدد إضافة رمز جديد.

  4. في اسم الرمز، أدخل اسمًا.

  5. حدد دورًا للرمز.

  6. قم بتفعيل النطاقات التالية.

    • api
    • read_repository
    • write_repository
  7. حدد إنشاء رمز وصول المشروع.

الخطوة 2. تكوين متغيرات CI/CD

في GitLab، تتيح متغيرات CI/CD لخطوط الأنابيب الوصول إلى القيم الحساسة. لاستخدام Lingo.dev في GitLab CI/CD، يجب أن يكون كل من مفتاح API الخاص بـ Lingo.dev ورمز وصول GitLab متاحين كمتغيرات.

تحذير: بشكل افتراضي، تكون متغيرات CI/CD متاحة فقط على الفروع المحمية. إذا كنت لا تستخدم الفروع المحمية، قم بتعطيل خيار حماية المتغير عند إنشاء المتغيرات.

مفتاح API الخاص بـ Lingo.dev

  1. انتقل إلى الإعدادات > CI/CD.
  2. قم بتوسيع قسم المتغيرات.
  3. انقر على إضافة متغير.
  4. في حقل المفتاح، أدخل LINGODOTDEV_API_KEY.
  5. في حقل القيمة، أدخل مفتاح API الخاص بـ Lingo.dev.
  6. حدد الرؤية > مقنع.
  7. انقر على إضافة متغير.

رمز وصول GitLab

  1. انتقل إلى الإعدادات > CI/CD.
  2. قم بتوسيع قسم المتغيرات.
  3. انقر على إضافة متغير.
  4. في حقل المفتاح، أدخل GL_TOKEN.
  5. في حقل القيمة، أدخل رمز وصول GitLab.
  6. حدد الرؤية > مقنع.
  7. انقر على إضافة متغير.

الخطوة 3. اختر سير عمل

يمكنك إعداد Lingo.dev CI/CD بطرق مختلفة لدعم سير عمل مختلف. هذه بعض سير العمل التي نوصي بها (ونقدم أمثلة عليها):

  • عندما يتم دمج المحتوى في main، قم بالالتزام بالترجمات إلى main
  • عندما يتم دمج المحتوى في main، قم بإنشاء طلب دمج من main
  • عندما يتم دمج المحتوى في فرع ميزة، قم بالالتزام بالترجمات إلى الفرع
  • عندما يتم دمج المحتوى في فرع ميزة، قم بإنشاء طلب دمج من الفرع

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

الخطوة 4. إعداد خط الأنابيب

  1. في جذر المستودع، قم بإنشاء ملف .gitlab-ci.yml:

    touch .gitlab-ci.yml
    
  2. انسخ أحد أمثلة خطوط الأنابيب في الملف.

  3. قم بإجراء التغييرات ودفعها إلى فرع main:

    git add .gitlab-ci.yml
    git commit -m "feat: GitLab CI pipeline for Lingo.dev"
    git push
    

(اختياري) الخطوة 5. تخصيص خط الأنابيب

يحتوي Lingo.dev CI/CD على قيم افتراضية لا تحتاج في معظم الحالات إلى تخصيص. يمكنك، مع ذلك، تجاوزها باستخدام أعلام CLI الخاصة بأمر ci،

npx lingo.dev@latest ci --api-key "$LINGODOTDEV_API_KEY" --commit-message "My custom commit message!"

لعرض جميع الخيارات المتاحة، راجع أوامر CLI.

أمثلة خطوط الأنابيب

الإجراء إلى main

عندما يتم دمج المحتوى في main، قم بإجراء الترجمات إلى main.

image:
  name: lingodotdev/ci-action:latest
  entrypoint: [""]

stages: [translate]

translate:
  stage: translate
  script:
    - npx lingo.dev@latest ci --api-key "$LINGODOTDEV_API_KEY"
  only:
    - main

طلب دمج من main

عندما يتم دمج المحتوى في main، قم بإنشاء طلب دمج من main.

image:
  name: lingodotdev/ci-action:latest
  entrypoint: [""]

stages: [translate]

translate:
  stage: translate
  script:
    - npx lingo.dev@latest ci --pull-request --api-key "$LINGODOTDEV_API_KEY"
  only:
    - main

الإجراء إلى فرع الميزة

عندما يتم دمج المحتوى في فرع الميزة، قم بإجراء الترجمات إلى الفرع.

image:
  name: lingodotdev/ci-action:latest
  entrypoint: [""]

stages: [translate]

translate:
  stage: translate
  script:
    - npx lingo.dev@latest ci --api-key "$LINGODOTDEV_API_KEY"
  only:
    - branches
  except:
    - main

طلب دمج من فرع الميزة

عندما يتم دمج المحتوى في فرع الميزة، قم بإنشاء طلب دمج من الفرع.

image:
  name: lingodotdev/ci-action:latest
  entrypoint: [""]

stages: [translate]

translate:
  stage: translate
  script:
    - npx lingo.dev@latest ci --pull-request --api-key "$LINGODOTDEV_API_KEY"
  except:
    - main