بستههای 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 ایجاد کنید، این مراحل را دنبال کنید:
- وارد حساب GitHub خود شوید.
- حرکت به تنظیمات و انتخاب کنید تنظیمات برنامه نویس.
- را کلیک کنید نشانه های دسترسی شخصی و سپس انتخاب کنید توکن (کلاسیک) گزینه
- یک توکن جدید با مجوزهای زیر ایجاد کنید:
- توکن خود را فوراً کپی کنید، زیرا دیگر نشان داده نخواهد شد.
- به مخزن پروژه خود در GitHub بروید.
- را کلیک کنید تنظیمات (نماد چرخ دنده) برای مخزن.
- رفتن به اقدامات > اسرار و متغیرها، و انتخاب کنید اسرار گزینه
- را کلیک کنید راز مخزن جدید.
- توکن خود را بچسبانید و یک نام به آن اختصاص دهید (مثلا
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 شما. میتوانید هر مرحله را در گزارش گردش کار مرور کنید تا در صورت خرابی، هر مشکلی را اشکالزدایی کنید.
-
جستجو برای بسته ها گزینه در بالای صفحه شما نمایه GitHub صفحه و روی آن کلیک کنید.
-
چیزی شبیه به این خواهید دید:
-
سپس می توانید بسته خود را به مخزن پروژه خود پیوند دهید.
-
هر پروژه ای را که می خواهید از بسته استفاده کنید باز کنید. در پوشه solution، را اضافه کنید
NuGet.Config
فایلی که در مرحله ششم ایجاد کردید. جایگزین کنید
و
با GitHub خود نام کاربری و نشانه. -
را باز کنید NuGet Package Manager و روی آن کلیک کنید تنظیمات (آیکون چرخ دنده).
-
با ارائه یک نام و پیوند Github از یک منبع بسته جدید اضافه کنید
NuGet.Config
فایل -
پس از تنظیم منبع بسته جدید، می توانید منبع مورد نیاز خود را انتخاب کرده و بسته خود را جستجو کنید.
اکنون، نگهداری بستههای سازمان شما که در میکروسرویسهای مختلف استفاده میشوند، آسانتر است. برای بهبود گردش کار روزانه خود، می توانید تنظیم کنید GITHUB_TOKEN
به عنوان یک متغیر محیط کامپیوتر و پیوند آن در NuGet.Config
فایل
مهم: لطفا توکن GitHub خود را با کدگذاری سخت آن در نشانی فاش نکنید NuGet.Config
فایل در عوض، از متغیرهای محیطی برای امنیت بهتر استفاده کنید.
امیدوارم این آموزش به شما کمک کند!
مخزن بسته