نسخه‌های GitHub روشی آسان برای دسترسی کاربران نهایی برای دانلود فایل‌های باینری نرم‌افزاری ارائه می‌کند. شما می توانید آنها را به صورت دستی ایجاد کنید، اما بسیار ساده تر است که به GitHub Actions اجازه دهید آنها را به طور خودکار با استفاده از برچسب های انتشار ایجاد شده در مخزن شما بسازد.

استفاده از انتشارات برچسب گذاری شده

برچسب ها یک ویژگی موجود در Git هستند، با پشتیبانی گسترده ای که توسط GitHub با نسخه ها ارائه می شود، که مکانی را برای میزبانی باینری ها با تغییرات مرتبط ارائه می دهد.

شما می توانید یک تگ ایجاد کنید مانند یک شاخه، با این تفاوت که یک نقطه ثابت است که حرکت نمی کند و همیشه به یک commit خاص اشاره می کند. این برای ایجاد نسخه‌های نسخه‌شده مفید است و بیشتر افراد با استفاده از قالب نسخه‌سازی معنایی (Major.Minor.Patch) برچسب‌ها را ایجاد می‌کنند.

برچسب‌ها را می‌توان به GitHub منتقل کرد، جایی که می‌توان از آنها در سایر گردش‌های کاری اتوماسیون استفاده کرد. در این مورد، ما یک اسکریپت GitHub Actions را راه‌اندازی می‌کنیم که به commit‌های حاوی نسخه‌های برچسب‌گذاری شده گوش می‌دهد و به طور خودکار مصنوعات ساخت را در یک نسخه منتشر می‌کند.

راه اندازی GitHub Actions

ابتدا، باید مطمئن شوید که یک ساخت GitHub Actions دارید و اسکریپت های ساخت شما به درستی کار می کنند. تنظیم دقیق گردش کار شما به نوع پروژه ای که می سازید بستگی دارد، اما به طور کلی، شما نمی خواهید دو مشکل را به طور همزمان اشکال زدایی کنید، بنابراین باید انتشار انتشار را زمانی که از قبل مصنوعات کاری دارید اضافه کنید. برای کسب اطلاعات بیشتر، می‌توانید راهنمای ما برای راه‌اندازی یک ساخت GitHub Actions را بخوانید.

اولین کاری که باید انجام دهید این است که بخش “روشن” اسکریپت Actions خود را ویرایش کنید تا هنگام ایجاد برچسب ها نیز اجرا شود. به‌طور پیش‌فرض، احتمالاً رویداد «فشار» را برای ردیابی نسخه‌ها یا شاخه اصلی دارید. باید برچسب ها را اضافه کنید و یک فیلتر تنظیم کنید. برای همه تگ ها، به سادگی از یک علامت عام استفاده کنید:

در پایان گردش کار، پس از اینکه همه چیز ساخته شد، ورودی Release را ایجاد می کنیم. این یک مرحله دو قسمتی است – ابتدا باید یک شی Release جدید با تمام ابرداده ها ایجاد کنیم و سپس می توانیم از URL انتشار خروجی برای آپلود مصنوعات استفاده کنیم. در صورت داشتن چندین آرتیفکت، می توانید چندین مرحله آپلود ایجاد کنید.

در هر صورت، تنها در صورتی می خواهیم این مراحل را اجرا کنیم که گردش کار به دلیل وجود یک برچسب در حال اجرا باشد. ما می توانیم این کار را با یک روش ساده انجام دهیم if بررسی کنید و بررسی کنید که آیا github.ref شی یک تگ است که نام ref شاخه یا برچسبی که جریان کار را راه اندازی کرده است را ذخیره می کند.

اولین مرحله ایجاد یک آبجکت Release است که با مرحله زیر قابل انجام است. نیازی نیست که توکن GitHub به صورت دستی ایجاد شود – این یک توکن خاص است که همیشه می تواند از طریق اسکریپت های Actions به آن ارجاع داده شود.

     - 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 در صفحه انتشار را تغییر دهید. ابزارهایی برای تولید خودکار این کار با پیام‌های commit وجود دارد، اما به هر حال اکثر تیم‌ها روش خود را برای مدیریت آن خواهند داشت.

در مرحله بعد، می توانید بارگذاری مصنوعات را شروع کنید. این از 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 معمول است. اگر در حال انتشار یک ZIP یا نوع دیگری از فایل هستید، می‌خواهید این مورد را تغییر دهید، اگرچه این فقط بر روی تصاویر صفحه انتشار تأثیر می‌گذارد.

اکنون می توانید تغییرات را در گردش کار Actions انجام دهید و سپس یک تگ جدید ایجاد کنید و آن را به GitHub فشار دهید. باید مشاهده کنید که یک گردش کار جدید ایجاد می شود، به جز اینکه به جای اجرا شدن از شاخه اصلی، به دلیل تگ اجرا می شود:

پس از اتمام، انتشار را در نوار کناری GitHub خواهید دید.





سایت محتوا مارکتینگ

برای دیدن مطالب آموزشی بیشتر در زمینه سخت افزار و نرم افزار اینجا کلیک کنید!

توسط psychen

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *