NINJA_LEARN_IR Telegram 840
سام علیک و از این حرفا 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
11👍3



tgoop.com/ninja_learn_ir/840
Create:
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

View MORE
Open in Telegram


Telegram News

Date: |

To view your bio, click the Menu icon and select “View channel info.” Avoid compound hashtags that consist of several words. If you have a hashtag like #marketingnewsinusa, split it into smaller hashtags: “#marketing, #news, #usa. In 2018, Telegram’s audience reached 200 million people, with 500,000 new users joining the messenger every day. It was launched for iOS on 14 August 2013 and Android on 20 October 2013. How to Create a Private or Public Channel on Telegram? With the sharp downturn in the crypto market, yelling has become a coping mechanism for many crypto traders. This screaming therapy became popular after the surge of Goblintown Ethereum NFTs at the end of May or early June. Here, holders made incoherent groaning sounds in late-night Twitter spaces. They also role-played as urine-loving Goblin creatures.
from us


Telegram Ninja Learn | نینجا لرن
FROM American