من فضلك تسجيل الدخول أو تسجيل لتفعل ذلك.

GitHub Actions هي أداة CI / CD قوية لتشغيل الإنشاءات الآلية من مستودع GitHub الخاص بك.

GitHub Actions هي أداة CI / CD قوية لتشغيل الإنشاءات الآلية من مستودع GitHub الخاص بك. الخطوة الأخيرة من هذه العملية هي النشر ، والتي تتضمن تحميل عناصر البناء في مكان يمكن الوصول إليه بسهولة. AWS S3 هو التخزين المفضل للعديد من الأشخاص ، ويسهل تكامله مع البرامج النصية للإجراءات.

لماذا تستخدم حاويات AWS S3 للنشر؟

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

هناك ايضا حزم جيثب، والتي تم تصميمها كبديل لمديري الحزم الخاصة بلغة معينة مثل JavaScript

 npm 

. يمكن أن يكون هذا مفيدًا جدًا إذا كنت تنشر حزمة NPM ، ولكنه ليس مفيدًا لأنواع أخرى من البنيات.

بالنسبة لكل نوع آخر من العناصر الأثرية ، تظل حاويات S3 من Amazon إحدى طرق الانتقال لتحميل الملفات للتوزيع والنشر. إنها مدعومة بنظام أذونات AWS’s IAM ، والذي يتمتع بأمان ممتاز وقادر على ضبط عناصر التحكم في الوصول إلى التعليمات البرمجية المصدر المجمعة.

بدلاً من ذلك ، إذا كنت تستخدم حاويات Docker للنشر ، فستحتاج إلى استخدام سجل الحاوية بدلاً من ذلك. لحسن الحظ ، لدى GitHub سجل خاص يسهل الاندماج معه وأنت يمكن قراءة دليلنا لاستخدامه لتعلم المزيد.

يعد استخدام S3 أمرًا سهلاً إلى حد ما ، وستنطبق معظم الخطوات الموضحة هنا أيضًا على حلول التخزين المتوافقة مع S3 ، مثل Digital Ocean Spaces أو MinIO المستضافة ذاتيًا ، نظرًا لأنها تستخدم نفس واجهة برمجة التطبيقات.

تحميل إلى AWS S3 من إجراءات GitHub

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

إذا لم يكن لديك واحدة حتى الآن ، فسيعتمد الإعداد على سلسلة أدوات البناء الخاصة بك ، ولكن يمكنك ذلك اقرأ دليلنا لإعداد البنيات المؤتمتة لتعلم المزيد. يمكنك أيضًا اختبار الأداة التي سيتم تحميلها باستخدام GitHub المدمج

 upload-artifact 

الإجراء ، الذي ينشر محتويات الدليل كحزمة.

يمكنك بعد ذلك تأكيد إنشاء الحزمة في الملخص> القطع الأثرية.

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

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

ملاحظة واحدة – يعتمد معظمها على المتسابقين المستضافين على نظام Linux أو حاويات Docker ، والتي تأتي مع التبعيات اللازمة لتشغيل S3 CLI. Linux هو ما تعمل عليه غالبية البنيات ، ولكن إذا كنت بحاجة إلى استخدام Windows لتشغيل البنيات الخاصة بك ، فستحتاج إلى استخدام إجراء مختلف. المنصة المشتركة التي وجدنا أنها تعمل هي stcalica / s3-upload. يستخدم هذا غلاف JavaScript يقوم بتثبيت الحزمة s3cmd ، ويعمل بشكل جيد على Windows.

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

يمكنك أن تقرأ دليلنا حول استخدام GitHub Secrets لمعرفة المزيد عنها ، ولكن الشيء الرئيسي المطلوب منك هو التوجه إلى إعدادات المستودع ، ثم النقر فوق الأسرار> الإجراءات وإنشاء

بعد ذلك ، في نهاية النص البرمجي لإجراءات GitHub ، أضف خطوة “نشر” مسماة ، واضبطها لاستخدام s3- مزامنة العمل ، أو أيهما اخترته. ستحتاج إلى تمرير الأسرار الخاصة بمفتاح الوصول والمعرف اللذين قمت بتكوينهما كمتغيرات بيئة.

 ... - name: Deploy To S3 - uses: actions/checkout@master - uses: jakejarvis/s3-sync-action@master with: args: --acl public-read --follow-symlinks --delete env: AWS_S3_BUCKET: ${{ secrets.AWS_S3_BUCKET }} AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} AWS_REGION: 'us-east-1' # optional: defaults to us-east-1 SOURCE_DIR: 'bin/Linux/net48' # optional: defaults to entire repository DEST_DIR: '/' # optional: defaults to root of the bucket

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

مع إضافة ذلك ، كل ما تبقى هو الالتزام بتغييرات البرنامج النصي للبناء ، وإعادة تشغيل الإنشاء يدويًا اختياريًا إذا لم يبدأ تلقائيًا مرة أخرى في التزام جديد. لن ترى أي مخرجات بناء في GitHub ، لأنه تم إرسالها إلى S3 ، ولكن يمكنك التحقق من السجلات من s3cmd ضمن خطوة “النشر إلى S3” في سجل الإنشاء:

نأمل أن ترى إخراج سجل مشابه للإخراج أعلاه ، مما يؤكد تشغيل العملية بنجاح.

اقرأ أكثر

يمكن لأي شخص أن يصيبك بفيروس UEFI الخطير لنظام التشغيل Windows: يقوم بتحميل الكود الخاص به إلى GitHub
يتيح GitHub الآن للمستخدمين تسجيل الدخول دون الحاجة إلى كلمة مرور

Reactions

0
0
0
0
0
0
بالفعل كان رد فعل لهذا المنصب.

ردود الفعل