النشر إلى GitHub Packages وGitHub Container Registry
هنا، ستتعلم أساسيات استخدام سير العمل للنشر إلى GitHub Packages، والخطوات الضرورية لإنشاء صورة Docker ومصادقتها ووضع علامة عليها ودفعها إلى سجل حاويات GitHub.
استخدام سير عمل للنشر إلى GitHub Packages
تتيح لك GitHub Packages نشر الحزم واستهلاكها بشكل آمن، وتخزين الحزم الخاصة بك جنبا إلى جنب مع التعليمات البرمجية الخاصة بك، ومشاركة الحزم الخاصة بك بشكل خاص مع فريقك أو بشكل عام مع المجتمع مفتوح المصدر. يمكنك أيضا استخدام GitHub Actions لأتمتة الحزم الخاصة بك.
فيما يلي مثال على سير عمل أساسي يتم تشغيله كلما تم إنشاء إصدار جديد في مستودع. إذا اجتزت الاختبارات، نشر الحزمة إلى GitHub Packages.
name: Node.js Package
on:
release:
types: [created]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 12
- run: npm ci
- run: npm test
publish-gpr:
needs: build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 12
registry-url: https://npm.pkg.github.com/
- run: npm ci
- run: npm publish
env:
NODE_AUTH_TOKEN: ${{secrets.GITHUB_TOKEN}}
أولا، يجب أن يكون ملف سير العمل موجودا في دليل .github/workflows. من الممارسات الشائعة تسمية سير عمل ينشر حزمة جديدة كلما تم إنشاء إصدار جديد مثل release-package.yml، لتسهيل فهم غرضه من قبل المتعاونين في المشروع دون الانتقال إلى ملف سير العمل.
يقوم سير العمل السابق ببعض الأشياء بعد إنشاء إصدار جديد:
- تعمل وظيفة تسمى
buildnpm ci("ci" للتكامل المستمر) لتثبيت التبعيات مباشرة من ملفpackage-lock.json، بالإضافة إلى اختبارات المشروع. - بمجرد نجاح وظيفة
build، تنشر الوظيفة المسماةpublish-gprالحزمة. - ينشر سير العمل الحزمة إلى
registry-url: https://npm.pkg.github.com/باستخدام رمز مميز للوصول للمصادقة.
استخدام سجل حاويات GitHub لاستضافة صور حاوية Docker وإدارتها
تدعم GitHub Packages استخدام الحاويات وKubernetes والتقنيات السحابية الأصلية الأخرى لإدارة دورة حياة التطبيق بأكملها بما في ذلك عمليات الإنتاج والتطوير والإصدار والنشر. تقدم GitHub Packages أيضا سجل حاويات مصمم لدعم الاحتياجات الفريدة لصور الحاوية. يمكنك استخدام سجل حاويات GitHub لاستضافة صور حاوية Docker وإدارتها بسلاسة في مؤسسة GitHub أو حساب المستخدم الشخصي. يسمح لك سجل حاويات GitHub بتكوين من يمكنه إدارة الحزم والوصول إليها باستخدام أذونات دقيقة.
باستخدام سجل الحاوية، يمكنك:
- تخزين صور الحاوية داخل المؤسسة وحساب المستخدم بدلا من المستودع.
- تعيين أذونات دقيقة لصور الحاوية.
- الوصول إلى صور الحاوية العامة بشكل مجهول.
بعد إنشاء الصورة والمصادقة عليها وتسجيل الدخول إلى خدمة GitHub Container Registry في ghcr.io، يمكنك بعد ذلك وضع علامة ودفع أحدث إصدار من الصورة إلى سجل الحاوية باستخدام هذه الأوامر:
echo $GITHUB_TOKEN | docker login ghcr.io -u USERNAME --password-stdin
docker tag IMAGE_ID ghcr.io/OWNER/IMAGE_NAME:latest
docker push ghcr.io/OWNER/IMAGE_NAME:latest
ملاحظه
للمصادقة باستخدام سير عمل GitHub Actions، يمكنك استخدام GITHUB_TOKEN:
- لسجلات الحزم في
PACKAGE-REGISTRY.pkg.github.com. - لسجل الحاوية في
ghcr.io/OWNER/IMAGE-NAME.