برنامه نویسی

بسته‌های Nuget خصوصی را در Github منتشر کنید

اگر قبلاً با میکروسرویس ها کار می کردید، احتمالاً متوجه شده اید که برخی از سرویس ها برخی از فایل های مشترک را به اشتراک می گذارند که یک عملکرد یا انتزاع مشخص هستند. این یک کابوس است که برخی از فایل های OS آنها را زمانی که در یک بسته نیست، بازتولید می کند، نیاز به بازتولید این تغییرات در هر سرویس دارد، کار در این دور توصیه نمی شود و این یک عمل بد نیز است.

برای ساده‌سازی این فرآیند، این فایل‌های مشترک را می‌توان به یک بسته تبدیل کرد، تا این فایل‌ها را در مکانی متمرکز کنیم که فرآیند refator را ساده‌تر کند و در نهایت فقط باید اصلاحات یا به‌روزرسانی‌ها را منتشر کنیم، و آنها را برای هر سرویسی که وابسته است در دسترس قرار دهیم. روی بسته بندی

برای این آموزش من از a کتابخانه کلاس پروژه توسعه بسته من که برخی از فایل های مشترک را به عنوان پایه، dto، مخزن، سرویس و کنترل کننده ارائه می دهد، می توانید این پروژه را در این لینک بررسی کنید.

این ساده ترین مرحله است، فقط باید یک مخزن github ایجاد کنید، با مخزن محلی خود پیوند دهید و پروژه خود را متعهد کنید.

خود را پیدا کنید csproject در IDE یا Github خود، پس از آن می توانید جزئیاتی در مورد پروژه خود مانند نسخه، توضیحات، نویسنده، شرکت، برچسب ها اضافه کنید که به سایر کاربران کمک می کند بسته شما را پیدا کنند، در زیر یک الگو از اسناد مایکروسافت به عنوان مثال ارائه کرده ام. :



  
    
    net8.0
    enable
    enable

    
    **YOUR_PROJECT_NAME**
    **VERSION**
    **YOUR_NAME**
    **COMPANY_NAME**
    **TAG_NAME;TAG_NAME,TAG_NAME**
    **PACKAGE_DESCRIPTION**  
    **https://github.com/...**
  

 
  
    
  


وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

  • شناسه بسته: شناسه منحصر به فرد بسته شما در NuGet.
  • نسخه: نسخه بسته (به عنوان مثال، 1.0.0).
  • نویسندگان: نام(های) نویسنده(های)
  • شرکت: نام شرکت شما (در صورتی که بسته متعلق به یک شرکت باشد).
  • توضیحات: اطلاعات دقیق در مورد بسته شما.
  • برچسب های بسته: کلمات کلیدی برای کمک به کاربران برای یافتن بسته شما.
  • RepositoryUrl: به مخزن پروژه خود پیوند دهید.

برای اطلاعات بیشتر در مورد فیلدهای اختیاری یا اضافی، اسناد مایکروسافت را بررسی کنید.

برای انتشار بسته خود، باید یک توکن GitHub ایجاد کنید، این مراحل را دنبال کنید:

  1. وارد حساب GitHub خود شوید.
  2. حرکت به تنظیمات و انتخاب کنید تنظیمات برنامه نویس.
  3. را کلیک کنید نشانه های دسترسی شخصی و سپس انتخاب کنید توکن (کلاسیک) گزینه
  4. یک توکن جدید با مجوزهای زیر ایجاد کنید:

توضیحات تصویر

  1. توکن خود را فوراً کپی کنید، زیرا دیگر نشان داده نخواهد شد.
  2. به مخزن پروژه خود در GitHub بروید.
  3. را کلیک کنید تنظیمات (نماد چرخ دنده) برای مخزن.
  4. رفتن به اقدامات > اسرار و متغیرها، و انتخاب کنید اسرار گزینه
  5. را کلیک کنید راز مخزن جدید.
  6. توکن خود را بچسبانید و یک نام به آن اختصاص دهید (مثلا GITHUB_TOKEN).

در پوشه ریشه خود a ایجاد کنید NuGet.config فایل و کد زیر را قرار دهید:



  
    
    
  
  
    
        
        
    


وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

را جایگزین کنید GITHUB_USERNAME با نام کاربری GitHub شما. می توانید آن را در نمایه خود یا در یک URL GitHub پیدا کنید (به عنوان مثال، https://github.com/username). همچنین، جایگزین کنید GITHUB_TOKEN با توکن تولید شده شما

این فایل به کاربران اجازه می دهد تا بسته را با دستور زیر دانلود کنند:

dotnet add package 
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

هنگام استفاده از بسته در یک پروژه واقعی برای احراز هویت به منبع بسته، به این تنظیمات نیاز خواهید داشت.

چرا دو منبع بسته در این فایل وجود دارد؟

زمانی که نیاز به استفاده از این بسته در پروژه دارید، من این فایل را در پوشه ریشه پروژه تنظیم می کنم تا پروژه شما بتواند هم بسته های رسمی NuGet و هم بسته های سفارشی سازمان/شما را بشناسد.

برای بسته های سفارشی خود، باید منبع بسته و اعتبارنامه را برای مصرف بسته ارائه دهید.

می توانید این فایل را در ریشه پروژه تعریف کنید یا آن را در فایل جهانی NuGet که در آدرس زیر قرار دارد پیکربندی کنید:
C:\Users\username\AppData\Roaming\NuGet\NuGet.Config.

1. دایرکتوری github. را ایجاد کنید:

  • در ریشه مخزن پروژه GitHub خود، یک پوشه به نام github. ایجاد کنید.

2. پوشه گردش کار را ایجاد کنید:

  • در داخل پوشه github. پوشه دیگری به نام گردش کار ایجاد کنید.

3. یک فایل YAML برای گردش کار اضافه کنید:

name: Publish NuGet Package

on:
  push:
    branches:
      - main

jobs:
  publish:
    runs-on: ubuntu-latest

    steps:
      # Step 1: Checkout the repository
      - name: Checkout code
        uses: actions/checkout@v3

      # Step 2: Setup .NET environment
      - name: Setup .NET
        uses: actions/setup-dotnet@v3
        with:
          dotnet-version: '8.0' # Adjust based on your project

      # Step 3: Restore dependencies
      - name: Restore dependencies
        run: dotnet restore [path].Project.csproj

      # Step 4: Build the project
      - name: Build
        run: dotnet build [path].Project.csproj --configuration Release --no-restore

       # Step 5: Pack the project
      - name: Pack
        run: dotnet pack [path].Project.csproj --configuration Release --no-build -o ./packages

      # Step 6: Publish package to GitHub Packages
      - name: Publish to GitHub Packages
        run: dotnet nuget push ./packages/*.nupkg --api-key ${{ secrets.GITHUB_TOKEN }} --source "github"

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

هر بار که متعهد می شوید یا در آن ادغام می شوید main شعبه، این عمل GitHub Action را برای انتشار به‌روزرسانی‌های بسته شما فعال می‌کند.

به یاد داشته باشید که:

  • جایگزین کنید [path]/Project.csproj با مسیر شما .csproj فایل
  • جایگزین کنید GITHUB_TOKEN با نام توکن خود همانطور که در مخزن مخزن پیکربندی شده است.

پس از تنظیم، کار را در زیر می بینید اقدامات برگه در مخزن GitHub شما. می‌توانید هر مرحله را در گزارش گردش کار مرور کنید تا در صورت خرابی، هر مشکلی را اشکال‌زدایی کنید.

توضیحات تصویر

  1. جستجو برای بسته ها گزینه در بالای صفحه شما نمایه GitHub صفحه و روی آن کلیک کنید.
    توضیحات تصویر

  2. چیزی شبیه به این خواهید دید:
    توضیحات تصویر

  3. سپس می توانید بسته خود را به مخزن پروژه خود پیوند دهید.
    توضیحات تصویر

  1. هر پروژه ای را که می خواهید از بسته استفاده کنید باز کنید. در پوشه solution، را اضافه کنید NuGet.Config فایلی که در مرحله ششم ایجاد کردید. جایگزین کنید و با GitHub خود نام کاربری و نشانه.
    توضیحات تصویر

  2. را باز کنید NuGet Package Manager و روی آن کلیک کنید تنظیمات (آیکون چرخ دنده).
    توضیحات تصویر

  3. با ارائه یک نام و پیوند Github از یک منبع بسته جدید اضافه کنید NuGet.Config فایل
    توضیحات تصویر

  4. پس از تنظیم منبع بسته جدید، می توانید منبع مورد نیاز خود را انتخاب کرده و بسته خود را جستجو کنید.
    توضیحات تصویر

اکنون، نگهداری بسته‌های سازمان شما که در میکروسرویس‌های مختلف استفاده می‌شوند، آسان‌تر است. برای بهبود گردش کار روزانه خود، می توانید تنظیم کنید GITHUB_TOKEN به عنوان یک متغیر محیط کامپیوتر و پیوند آن در NuGet.Config فایل

مهم: لطفا توکن GitHub خود را با کدگذاری سخت آن در نشانی فاش نکنید NuGet.Config فایل در عوض، از متغیرهای محیطی برای امنیت بهتر استفاده کنید.

امیدوارم این آموزش به شما کمک کند!

مخزن بسته

نوشته های مشابه

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

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

دکمه بازگشت به بالا