TGViewer
C# Geeks (.NET) C# Geeks (.NET) @csharpgeeks · 550 subscribers
Post #553 197
چگونه با 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 شود ❌، یک ایمیل اعلان دریافت خواهید کرد 📧
More from @csharpgeeks
  1. Sep 22, 2026یه مدتی قراره از دنیای NET. فاصله بگیرم، چون وقتشه برم سربازی. راستش نمیدونم این مدت رو چج…
  2. Sep 20, 2026🔥 حالا مشکل اصلی: Alert Storm فرض کن Database از دسترس خارج شده. ۱۰۰ Pod داری. هر Pod می‌…
  3. Sep 20, 2026🚨 طراحی سیستم Monitoring و Alerting در یک سیستم بزرگ فرض کن ساعت ۳ صبح است. سیستم شما با…
  4. Sep 19, 2026#Engineering_Leadership تصمیم نگرفتن هم یک تصمیم است یه چیز عجیب توی تیم‌های مهندسی: گاهی…
  5. Sep 19, 2026☑ چک‌لیست آماده‌سازی تیم، فرایندها و زیرساخت برای توسعه با AI توجه: هیچ چک‌لیستی جهان‌شمول…
  6. Sep 19, 2026📌پایان یک انتظار طولانی: اعتبارسنجی ناهمگام (Async Validation) در NET 11.
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →