TGViewer
C# Geeks (.NET) C# Geeks (.NET) @csharpgeeks · 550 subscribers
Post #554 211
ءContinuous Delivery به Azure با GitHub Actions ☁️

ءContinuous Integration نقطه شروع بسیار خوبی برای CI/CD است، اما ارزش واقعی زمانی مشخص می‌شود که فرآیند deployment را خودکار کنید 🤖

این سناریو را تصور کنید 👇

• شما تغییری در کد ایجاد می‌کنید ✏️

• ءcommit باعث trigger شدن pipeline deployment می‌شود 🔄

• چند دقیقه بعد، تغییرات شما در production در دسترس هستند 🌍

معمولاً موضوع کمی پیچیده‌تر است، چون باید به پیکربندی‌ها، migration دیتابیس و موارد دیگر هم فکر کنیم ⚙️🗄
اما سعی کنید تصویر کلی را ببینید 🧠

اگر برنامه خود را در cloud اجرا می‌کنید، مثلاً روی Azure ☁️، به احتمال زیاد یک GitHub Action آماده برای این کار وجود دارد که می‌توانید از آن استفاده کنید.

در ادامه یک deployment pipeline آورده شده که من برای انتشار برنامه‌ام روی Azure App Service استفاده می‌کنم 🚀
name: Publish 🚀

on:
push:
branches:
- main

env:
AZURE_WEBAPP_NAME: web-api
AZURE_WEBAPP_PACKAGE_PATH: './publish'
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: Build and Publish 📂
run: |
dotnet restore WebApi
dotnet build WebApi -c Release --no-restore
dotnet publish WebApi -c Release --no-build
--output '${{ env.AZURE_WEBAPP_PACKAGE_PATH }}'

- name: Deploy to Azure 🌌
uses: azure/webapps-deploy@v2
with:
app-name: ${{ env.AZURE_WEBAPP_NAME }}
publish-profile: ${{ secrets.AZURE_PUBLISH_PROFILE }}
package: '${{ env.AZURE_WEBAPP_PACKAGE_PATH }}'

این workflow شباهت زیادی به workflow قبلی دارد، با این تفاوت‌ها 🔍

اضافه شدن مرحله publish و پیکربندی مسیر خروجی 📤

استفاده از اکشن azure/webapps-deploy@v2 برای deploy روی Azure ☁️

اگر نیاز دارید مقادیر حساس (secret) را به‌صورت امن در workflowها استفاده کنید 🔐، می‌توانید از GitHub secrets استفاده کنید.
شما می‌توانید secrets را در GitHub تعریف کنید و بدون اضافه کردن آن‌ها به source control، در actionها از آن‌ها استفاده کنید.

در workflow مربوط به deployment، من از secrets.AZURE_PUBLISH_PROFILE برای دسترسی به publish profile مربوط به App Service استفاده می‌کنم 🔑

جمع‌بندی 🧩

ءContinuous Integration و Continuous Delivery می‌توانند فرآیند توسعه شما را متحول کنند ⚡️ و سرعت انتشار تغییرات را به‌شدت افزایش دهند 🚀

سعی کنید محاسبه کنید چقدر زمان صرف deployment می‌کنید ⏱️
تقریباً مطمئنم از میزان زمانی که می‌توانید با خودکارسازی ذخیره کنید شگفت‌زده خواهید شد 😮

نکته خوب اینجاست که معمولاً pipelineهای build و deployment را یک‌بار راه‌اندازی می‌کنید ✅ و سپس در تمام طول عمر پروژه از مزایای آن‌ها استفاده می‌کنید ♻️

ممنون که خوندید 🙏
امیدوارم مفید بوده باشه ✨
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 →