أطلق ستوريبوك

تعلم كيفية إطلاق ستوريبوك أونلاين

عبر هذه الدروس, بنينا مكونات على جهاز التطوير المحلي خاصتنا. في نقطة معينة, سنحتاج لإطلاق عملنا للحصول على ملاحظات الفريق. لإطلاق ستوريبوك أونلاين لنساعد زملائنا على مراجعة تنفيذ واجهة المستخدم.

التصدير كتطبيق ثابت

لإطلاق ستوريبوك سنحتاج أولا لإصداره كتطبيق ويب ثابت. هذه الوظيفة موجودة ومعدة مسبقا في ستوريبوك.

تنفيذ yarn build-storybook سينتج ستوريبوك ثابت في وجهة storybook-static, والتي يمكنها بعد ذلك الإطلاق على أي خدمة استضافة مواقع ثابتة.

نشر ستوريبوك

هذا الدرس يستخدم كروماتك, خدمة نشر مجانية صنعت من مراقبي ستوريبوك. تسمح لنا بإطلاق واستضافة ستوريبوك خاصتنا بشكل أمن في السحابة.

قم بإعداد مستودع في Github

قبل أن نبدأ, يحتاج الكود المحلي ان يتزامن مع خدمة التحكم في الإصدار عن بعد. عندما تم تهيئة مشروعنا في فصل البدأ, قمنا بتهيئة مستودع محلي. في هذه اللحظة لدينا بالفعل مجموعة من التنفيذات (commits) التي يمكننا دفعها إلى مستودع عن بعد.

اذهب إلى GitHub وقم بإنشاء مستودع جديد لمشروعنا هنا. اعط المستودع اسم "taskbox" كما في مشروعنا المحلي.

إعداد Github

في المستودع الجديد, خذ رابط المصدر وأضفه إلى مشروع git خاصتك عن طريق هذا الأمر:

git remote add origin https://github.com/<your username>/taskbox.git

أخيرا, ادفع مستودعك المحلي إلى البعيد في Github عن طريق:

git push -u origin main

إجلب Chromatic

أضف الحزمة إلى تبعيات التطوير.

yarn add -D chromatic

عندما يتم تثبيت الحزمة, سجل دخولك إلى Chromatic باستخدام حسابك في Github (Chromatic سيطلب أذونات خفيفة) ثم سننشئ مشروع جديد اسمه "taskbox" ونزامنه مع مستودع Github الذي أعددناه.

إضغط على Choose GitHub repo تحت خانة المتعاونون واختر مستودعك.

انسخ الرمز الفريد project-token الذي يتم توليده لمشروعك. ثم قم بتنفيذه عن طريق تنفيذ الأمر التالي لبناء وإطلاق ستوريبوك. تأكد من تبديل كلمة project-token برمز مشروعك.

yarn chromatic --project-token=<project-token>

Chromatic يشتغل

عند الإنتهاء ستحصل على رابط https://random-uuid.chromatic.com للستوريبوك المٌنشر. شارك هذا الرابط مع فريقك للحصول على أرائهم.

ستوريبوك نٌشر بحزمة Chromatic

مرحى! لقد قمنا بنشر ستوريبوك باستخدام أمر واحد, ولكن تنفيذ أمر كل مرة نريد فيها الحصول على تعليق حول تنفيذ واجهة المستخدم هو أمر تكراري. من ناحية مثالية, نريد نشر أخر نسخة من المكونات كلما دفعنا الكود. سنتحتاج إلى إطلاق استمراري لستوريبوك.

الإطلاق الاستمراري مع Chromatic

بما أن مشروعنا مستضاف في مستودع Github, يمكننا استخدام خدمة تكامل مستمر (Continious Integration) لإطلاق ستوريبوك خاصتنا أوتوماتيكيا. GitHub Actions هي خدمة تكامل مستمر مجانية مبنية في Github تسهل الإطلاق الأوتوماتيكي.

أضف Github Action لإطلاق ستوريبوك

في المجلد الرئيسي من المشروع, أنشئ وجهة جديدة باسم .github ثم أنشئ وجهة أخرى داخلها باسم workflows

أنشئ ملف جديد باسم chromatic.yml مثل الذي بالأسفل. تأكد من إعادة تسمية CHROMATIC_PROJECT_TOKEN إلى الرمز الفريد لمشروعك.

.github/workflows/chromatic.yml
# Workflow name
name: 'Chromatic Deployment'

# Event for the workflow
on: push

# List of jobs
jobs:
  test:
    # Operating System
    runs-on: ubuntu-latest
    # Job steps
    steps:
      - uses: actions/checkout@v1
      - run: yarn
        #👇 Adds Chromatic as a step in the workflow
      - uses: chromaui/action@v1
        # Options required for Chromatic's GitHub Action
        with:
          #👇 Chromatic projectToken, see https://storybook.js.org/tutorials/intro-to-storybook/react/en/deploy/ to obtain it
          projectToken: ${{ secrets.CHROMATIC_PROJECT_TOKEN }}
          token: ${{ secrets.GITHUB_TOKEN }}

💡 لتبسيط الأمور, لم تُذكر GitHub secrets Secrets أو أسرار هي متغيرات بيئة أمنة مقدمة من Github لكي لا تحتاج لكتابة رمز المشروع الفريد يدويا داخل الكود.

نفذ الـ action

في سطر الأوامر, نفذ الأمر التالي لإضافة التغييرات التي تم تنفيذها:

git add .

ثم نفذ التغييرات عن طريق:

git commit -m "GitHub action setup"

أخيرا, ادفع التغييرات إلى المستودع البعيد عن طريق:

git push origin main

بمجرد إعدادك Github action سيتم إطلاق ستوريبوك إلى Chromatic كلما تقوم بدفع الكود. يمكنك إيجاد كل الستوريبوك التي تم نشرها في واجهة بناء مشروعك في Chromatic.

لوحة مستخدم Chromatic

انقر على أخر بناء, يجب أن يكون في الأعلى.

ثم انقر على زر View Storybook لرؤية أخر نسخة من ستوريبوك خاصتك.

رابط ستوريبوك في Chromatic

شارك الرابط مع زملائك. هذا سيساعدك سواء كان جزء من مسار تطوير تطبيق اعتيادي أم فقط من أجل التفاخر بعملك 💅

Next Chapter
الاختبار
تعلم الطرق لاختبار مكونات واجهة المستخدم