الانتقال إلى المحتوى الرئيسي
توضح هذه الصفحة عملية إصدار Gorbit، ونظام الإصدارات، وكيف يتم تسليم التحديثات إلى قنوات النشر المختلفة.

قنوات الإصدار

يحافظ Gorbit على قنوات إصدار متعددة لتوفير إصدارات مستقرة وتطويرية لحالات استخدام مختلفة.

GitHub

تنشر إصدارات GitHub صورًا إلى Docker Hub. لدى Gorbit نوعان من الإصدارات:
  • أحدث إصدار مستقر - إصدارات جاهزة للإنتاج
  • إصدار تجريبي - إصدارات بيتا للاختبار
الفرع main من مستودع Gorbit هو فرع التطوير لدينا.
رغم أننا نحاول الحفاظ على main مستقرًا من خلال اختبارات CI/CD ومراجعات الكود، لا نوصي باستخدام main في بيئات الإنتاج.

Docker Hub

يستضيف Docker Hub صور الحاويات الفعلية. يتم نشر صور جديدة كل ليلة من فرع main وعند قطع إصدار جديد. لتحديد أحدث الصور برمجيًا، استخدم نقطة نهاية API:
https://cloud.gorbit.app/api/versions
تعيد هذه النقطة الإصدارات المستقرة والتجريبية الحالية المتوفرة على Docker Hub.
إذا لم تحدد إصدارًا عند نشر Gorbit، ستحصل على أحدث بنيات ليلية.

نظام الإصدارات

يتبع Gorbit الإصدارات الدلالية (SemVer) بتنسيق واضح ومتوقع. تنسيق الإصدار القياسي:
major.minor.hotfix
تنسيق الإصدار التجريبي:
major.minor.hotfix-beta.betahotfix
أمثلة:
  • إصدار مستقر: 1.2.3
  • إصدار تجريبي: 1.3.0-beta.1
  • إصلاح تجريبي: 1.3.0-beta.2
  • الإصدار الرئيسي - يُزاد عند التغييرات الجذرية
  • الإصدار الفرعي - يُزاد عند الميزات الجديدة، وإصلاحات الأخطاء، والتغييرات المتوافقة مع الإصدارات السابقة
  • إصدار الإصلاح - يُزاد فقط عند إعادة إصلاحات الأخطاء إلى الإصدارات

ملفات Docker ومخططات Helm

تُزاد أرقام الإصدارات في ملفات Docker ومخططات Helm عند تغييرها.

جدول الإصدارات

يتبع Gorbit دورة إصدار أسبوعية متوقعة. كل يوم إثنين:
  • يتم ترقية آخر إصدار تجريبي إلى مستقر
  • يتم تجميد main كإصدار تجريبي جديد

عملية الإصلاح العاجل

  • إصلاحات الأخطاء الحرجة تُعاد إلى الإصدارات المستقرة حسب الضرورة
  • الإصلاحات العاجلة تتجاوز الدورة الأسبوعية العادية للمشكلات الإنتاجية العاجلة
  • كلا الفرعين المستقر والتجريبي يتلقيان إصلاحات عاجلة عند الاقتضاء

أفضل ممارسات التحديث

للحفاظ على نشر مستقر، نوصي بالبقاء على أحدث إصدار مستقر. هذه موسومة برقم إصدار مثل v1.2.3.
1

التحقق من API للإصدارات للحصول على علامة الإصدار المستقر

قارن إصدارك الحالي بعلامة إصدار أحدث إصدار مستقر. نقطة نهاية الإصدارات عامة ولا تتطلب مصادقة.
curl -X GET "https://cloud.gorbit.app/api/versions"
ابحث عن مفتاح stable: gorbit في الاستجابة.
Example Response
{
  "stable":{
    "gorbit":"v1.8.1",
    "relational_db":"postgres:15.2-alpine",
    "index":"vespaengine/vespa:8.277.17",
    "nginx":"nginx:1.23.4-alpine"},
    "dev":{
      "gorbit":"v1.9.0-beta.0",
      "relational_db":"postgres:15.2-alpine",
      "index":"vespaengine/vespa:8.277.17",
      "nginx":"nginx:1.23.4-alpine"
    },
    "migration":{
      "gorbit":"airgapped-intfloat-nomic-migration",
      "relational_db":"postgres:15.2-alpine",
      "index":"vespaengine/vespa:8.277.17",
      "nginx":"nginx:1.23.4-alpine"
    }
  }
}
2

تشغيل Gorbit مع علامة الإصدار

كيفية تشغيل إصدار Gorbit المحدد ستعتمد على عملية نشرك.
لا تنسَ البادئة v! مثلاً v1.2.3 صحيح، 1.2.3 غير صحيح.
حدد علامة الإصدار في البيئة.
IMAGE_TAG=<v.MAJOR.MINOR.HOTFIX> docker compose -f docker-compose.dev.yml -p gorbit-stack up -d --pull always --force-recreate
اسحب فرع الإصدار من GitHub أو فقط الإصدار الموسوم وابنِ الصور.فرع الإصدار هو حيث يُنشر أحدث إصدار مستقر. تُسمى فروع الإصدار release/v<MAJOR>.<MINOR>.في مستودع Gorbit:
From Release Branch
git fetch origin release/v1.2
git switch release/v1.2

docker compose -f docker-compose.dev.yml -p gorbit-stack up -d --build --force-recreate
From Tagged Version
git fetch origin tag v1.2.3
git switch --detach v1.2.3

docker compose -f docker-compose.dev.yml -p gorbit-stack up -d --build --force-recreate
لتحديد إصدار عند النشر باستخدام Helm، اضبط قيمة global: version في ملف values.yaml.
values.yaml
global:
  version: "v1.2.3"