چگونه با GitHub Actions و NET. یک CI/CD Pipeline بسازیم
آیا میخواهید فرآیند توسعه نرمافزار خود را سادهتر کنید و چرخههای انتشار را سریعتر انجام دهید؟ 🚀
تصور کنید بتوانید با هر تغییر کد، برنامههای NET. خود را بهصورت خودکار build، test و deploy کنید.
با CI/CD میتوانید بهطور قابلتوجهی کارهای دستی را کاهش دهید و تمرکز بیشتری روی ساخت نرمافزار داشته باشید، در نتیجه انتشارهای سریعتر و قابلاعتمادتری خواهید داشت.
و شروع CI/CD هیچوقت به این اندازه آسان نبوده است.
ءGitHub Actions کاملاً رایگان و ساده برای استفاده هستند. ✅
بنابراین، در این مطلب موارد زیر را بررسی میکنیم:
• معرفی CI/CD و GitHub Actions
• ساخت pipeline برای build و test در NET.
• ساخت pipeline برای deployment روی Azure App Service
ءContinuous Integration و Continuous Delivery چیست؟
قبل از اینکه به GitHub Actions بپردازیم، سعی میکنم بهصورت خلاصه توضیح بدهم CI/CD چیست.
ءCI/CD روشی است برای افزایش دفعات تحویل قابلیتهای جدید، با اضافه کردن اتوماسیون به workflow توسعه نرمافزار.
ءContinuous Integration یا «CI» به فرآیند خودکار همگامسازی کد جدید با repository اشاره دارد. هر تغییر جدید در کد برنامه بلافاصله build، test و merge میشود.
ءContinuous Delivery یا Deployment یا «CD» به خودکارسازی بخش deployment از workflow اشاره دارد. زمانی که تغییری ایجاد میکنید که در repository merge میشود، این مرحله مسئول deploy کردن آن تغییرات روی محیط production (یا هر محیط دیگری) است.
ءContinuous Integration با GitHub Actions
اگر از GitHub استفاده میکنید، شروع Continuous Integration هیچوقت به این راحتی نبوده است.
میتوانید از GitHub Actions برای خودکارسازی pipeline مربوط به build، test و deployment استفاده کنید. میتوانید workflowهایی بسازید که هر commit روی repository شما را build و test کنند، یا زمانی که یک tag جدید ساخته میشود، deploy به production انجام دهند.
برای ساخت یک GitHub Action، شما یک workflow مینویسید که هنگام وقوع یک event خاص در repository اجرا شود. نمونهای از این eventها شامل commit روی branch اصلی، ایجاد یک tag یا اجرای دستی workflow است.
در ادامه یک workflow در GitHub Actions برای build و test یک پروژه NET. آورده شده است:
name: Build & Test 🧪
on:
push:
branches:
- main
env:
DOTNET_VERSION: '7.0.x'
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Setup .NET 📦
uses: actions/setup-dotnet@v3
with:
dotnet-version: ${{ env.DOTNET_VERSION }}
- name: Install dependencies 📂
run: dotnet restore WebApi
- name: Build 🧱
run: dotnet build WebApi --configuration Release --no-restore
- name: Test 🧪
run: dotnet test WebApi --configuration Release --no-build
بیایید ببینیم اینجا دقیقاً چه اتفاقی میافتد 🔍
• تعریف یک event برای trigger کردن workflow ⚡️
• راهاندازی NET SDK. با نسخهای که از env.DOTNET_VERSION خوانده میشود 📦
• ءRestore، build و test کردن پروژه با استفاده از ابزار dotnet CLI 🧪🧱
میتوانید همین امروز این workflow را به repository گیتهاب خود اضافه کنید 🧑💻 و بهمحض commit کردن کد، بازخورد فوری دریافت کنید 🚀
وقتی اجرای workflow به دلیل خطای build یا شکست تستها fail شود ❌، یک ایمیل اعلان دریافت خواهید کرد 📧