tgoop.com/ninja_learn_ir/840
Last Update:
سام علیک و از این حرفا Github Actions 🎬
حتماً اسم GitHub Actions به گوشتون خورده این ابزار میتونه خیلی از کارهای تکراری و روتین پروژهتون رو خودکار کنه، بدون اینکه لازم باشه خودتون دست به کار بشین. از بررسی کدهای کامیتشده تا اجرای تستها و دیپلوی خودکار، همهچیز رو میسپارین بهش و خیالتون راحته تو این پست قراره حسابی راجب GitHub Actions حرف بزنیم، ببینیم این ابزار چیه، چه کارایی میتونه بکنه و چرا باید یه پای ثابت تو هر رپوی برنامهنویسی باشه.
🧠اول از همه GitHub Actions چیه؟
GitHub Actions یه پلتفرم اتوماسیونه که مستقیم تو GitHub ادغام شده و بهتون اجازه میده workflow خودکار برای پروژههاتون بسازین. این ابزار برای CI/CD (ادغام مداوم و تحویل/استقرار مداوم) (همیشه انگلیسی رو به معادل فارسی ترجیح میدم) طراحی شده، ولی فقط به این محدود نیست، میتونه هر کاری از تست کد و دیپلوی اپلیکیشن تا مدیریت مسائل (issues) و حتی ارسال نوتیفیکیشن رو خودکار کنه. به زبان ساده، GitHub Actions مثل یه رباته که با یه سری دستور (نوشتهشده با YAML) بهش میگین چیکار کنه.
این ابزار از سال ۲۰۱۸ توسط GitHub معرفی شد و حالا یکی از محبوبترین ابزارهای اتوماسیون تو اکوسیستم توسعه نرمافزاره، چون هم قدرتمنده، هم انعطافپذیره و هم با خود GitHub جوش خورده.
📚 قابلیتهای کلیدی GitHub Actions
1⃣ CI/CD (ادغام و تحویل مداوم) 🛠️
میتونین پایپ لاینهایی بسازین که کدتون رو بهصورت خودکار بیلد، تست و دیپلوی کنه.
مثال:
هر بار که یه تغییر (push) تو شاخه main میکنین، کد بیلد بشه، تستها اجرا بشن و اگه همهچیز اوکی بود، به سرور production دیپلوی بشه.
name: CI Pipeline
on: [push]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: '3.10'
- name: Install dependencies
run: pip install -r requirements.txt
- name: Run tests
run: pytest
2⃣ اتوماسیون وظایف مختلف ⚙️
فراتر از CI/CD، میتونین هر کار تکراری رو خودکار کنین، مثل اضافه کردن لیبل به issues یا ارسال نوتیف به اسلک.
مثال:
وقتی یه issue جدید باز میشه، بهصورت خودکار لیبل "triage" بهش اضافه بشه:
name: Auto Label Issues
on:
issues:
types: [opened]
jobs:
label:
runs-on: ubuntu-latest
steps:
- uses: actions/github-script@v6
with:
script: |
github.rest.issues.addLabels({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
labels: ['triage']
})
3⃣ پشتیبانی از چند پلتفرم 🖥️
GitHub Actions روی ماشینهای مجازی لینوکس، ویندوز و مک اجرا میشه. حتی میتونین self-hosted runners (ماشینهای خودتون) رو استفاده کنین.
مثال: تست کد روی نسخههای مختلف پایتون و سیستمعاملها با یه matrix workflow:
name: Test on Multiple Platforms
on: [push]
jobs:
test:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
python-version: ['3.8', '3.9', '3.10']
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Run tests
run: pytest
4⃣ اکشنهای آماده و Marketplace 🛒
یه عالمه اکشن آماده تو GitHub Marketplace وجود داره که میتونین مستقیم تو ورکفلاتون استفاده کنین.
مثال: اکشن برای ارسال نوتیفیکیشن به اسلک یا دیپلوی به AWS.
- name: Notify Slack
uses: slackapi/[email protected]
with:
slack-bot-token: ${{ secrets.SLACK_BOT_TOKEN }}
channel-id: 'my-channel'
text: 'New deployment completed!'
✍ جمعبندی
GitHub Actions یه ابزار قدرتمند و انعطافپذیره که میتونه پروژههاتون رو از یه مجموعه کد ساده به یه سیستم خودکار و حرفهای تبدیل کنه. از CI/CD و تست چندپلتفرمی گرفته تا اتوماسیون کارهای روزمره مثل ارسال اعلان یا مدیریت مسائل، این ابزار همهچیز رو تو یه پکیج بهتون میده. فقط کافیه یه فایل YAML بسازین.
اگه خواستین بیشتر درمودش صحبت بکنم و نکات حرفه ای تری بگم با ریکشن و شیر این پست رو حمایت کنید 😊❤️
#️⃣ #web #programming
➖➖➖➖➖➖➖➖➖➖
🥷🏻 CHANNEL | GROUP
BY Ninja Learn | نینجا لرن
Share with your friend now:
tgoop.com/ninja_learn_ir/840