توفر إصدارات GitHub طريقة وصول سهلة للمستخدمين النهائيين لتنزيل ثنائيات البرامج ذات الإصدار.
توفر إصدارات GitHub طريقة وصول سهلة للمستخدمين النهائيين لتنزيل ثنائيات البرامج ذات الإصدار. يمكنك إنشاؤها يدويًا ، ولكن من الأسهل بكثير السماح لـ GitHub Actions ببنائها تلقائيًا باستخدام علامات الإصدار التي تم إنشاؤها في المستودع الخاص بك.
استخدام الإصدارات ذات العلامات
العلامات هي ميزة موجودة في Git ، مع دعم موسع يقدمه GitHub مع الإصدارات ، والتي توفر مكانًا لاستضافة الثنائيات مع سجلات التغيير المرتبطة بها.
يمكنك إنشاء علامة تشبه إلى حد كبير إنشاء فرع ، باستثناء أنها نقطة ثابتة لا تتحرك وتشير دائمًا إلى التزام معين. يعد هذا مفيدًا لإنشاء إصدارات ذات إصدارات ، وسيقوم معظم الأشخاص بإنشاء علامات باستخدام تنسيق الإصدارات الدلالية (Major.Minor.Patch).
يمكن دفع العلامات إلى GitHub حيث يمكن استخدامها في مهام سير عمل الأتمتة الأخرى. في هذه الحالة ، سنقوم بإعداد برنامج نصي لإجراءات GitHub يستمع إلى الالتزامات التي تحتوي على إصدارات ذات علامات وتنشر تلقائيًا عناصر الإنشاء في إصدار.
إعداد إجراءات GitHub
أولاً ، ستحتاج إلى التأكد من أن لديك بنية GitHub صالحة للعمل ، وأن البرامج النصية للبناء تعمل بشكل صحيح. سيعتمد الإعداد الدقيق لسير عملك على نوع المشروع الذي تقوم ببنائه ، ولكن بشكل عام ، لا تريد تصحيح مشكلتين في وقت واحد ، لذلك يجب عليك إضافة نشر الإصدار بمجرد أن يكون لديك بالفعل عناصر عملية. يمكنك قراءة دليلنا لإعداد GitHub Actions build لمعرفة المزيد.
أول شيء تفعله هو تحرير قسم “on” في نص الإجراءات الخاص بك ليتم تشغيله أيضًا عند إنشاء العلامات. بشكل افتراضي ، من المحتمل أن يكون لديك حدث “الدفع” لتتبع الإصدارات أو الفرع الرئيسي. ستحتاج إلى إضافة العلامات وتعيين عامل تصفية. لجميع العلامات ، ما عليك سوى استخدام حرف بدل:
في نهاية سير العمل ، بعد بناء كل شيء ، سننشئ إدخال الإصدار. هذه خطوة مكونة من جزأين – أولاً ، سنحتاج إلى إنشاء كائن إصدار جديد بكل البيانات الوصفية ، وبعد ذلك يمكننا استخدام عنوان URL للنشر الناتج لهذا لتحميل العناصر الأثرية. يمكنك إنشاء خطوات تحميل متعددة إذا كان لديك العديد من القطع الأثرية.
في كلتا الحالتين ، سنرغب في تشغيل هذه الخطوات فقط إذا كان سير العمل قيد التشغيل بسبب علامة. يمكننا القيام بذلك ببساطة
if
تحقق ، وتحقق مما إذا كان
github.ref
الكائن عبارة عن علامة تخزن اسم المرجع للفرع أو العلامة التي أدت إلى تشغيل سير العمل.
الخطوة الأولى هي إنشاء كائن Release ، والذي يمكن القيام به بالخطوة التالية. لا يلزم إنشاء رمز GitHub يدويًا – إنه رمز مميز يمكن الرجوع إليه دائمًا من نصوص الإجراءات.
- name: Create Release if: startsWith(github.ref, 'refs/tags/') uses: actions/create-release@v1 id: create_release with: draft: false prerelease: false release_name: ${{ github.ref }} tag_name: ${{ github.ref }} body_path: CHANGELOG.md env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
لاحظ هنا أنه تم تخزين سجل التغيير للإصدار في CHANGELOG.md
، أيّ يجب أن يكون موجودًا حتى يعمل سير العمل بشكل صحيح. يمكنك تحرير هذا مع كل علامة لتغيير العلامة التجارية التي يعرضها GitHub في صفحة الإصدار. هناك أدوات لإنشاء هذا تلقائيًا من خلال رسائل الالتزام ، لكن معظم الفرق سيكون لها طريقتها الخاصة في إدارة ذلك على أي حال.
بعد ذلك ، يمكنك البدء في تحميل القطع الأثرية. يستخدم هذا عنوان URL للتحميل من الخطوة السابقة ، وستحتاج إلى تحديد مسار حيث يمكن العثور عليه مع الاسم المعروض للأصل.
- name: Upload Release if: startsWith(github.ref, 'refs/tags/') uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ steps.create_release.outputs.upload_url }} asset_path: Oxide.Ext.Sanctuary/bin/Release/net48/Oxide.Ext.Sanctuary.dll asset_name: Oxide.Ext.Sanctuary.dll asset_content_type: application/octet-stream
لاحظ هنا أنه تم تعيين نوع المحتوى على octet-stream
، وهو أمر نموذجي للبيانات الثنائية مثل الملفات التنفيذية وملفات DLL. إذا كنت تنشر ملفًا مضغوطًا أو نوعًا آخر من الملفات ، فستحتاج إلى تغيير هذا ، على الرغم من أنه لا يؤثر إلا على العناصر المرئية في صفحة الإصدار.
الآن ، يمكنك إجراء التغييرات على سير عمل الإجراءات ، ثم إنشاء علامة جديدة ودفعها إلى GitHub. يجب أن ترى تشغيل سير عمل جديد قيد الإنشاء ، إلا أنه بدلاً من تشغيله من الفرع الرئيسي ، يتم تشغيله بسبب العلامة:
بمجرد الانتهاء ، سترى الإصدار في الشريط الجانبي لـ GitHub.