برنامه نویسی

اکشن های GitHub را روی ماشین محلی خود اجرا کنید! 🐙 💻

ماه جدید پست وبلاگ جدید! من اخیراً Azure Dev-ops Certified دریافت کرده‌ام، انتظار دارم محتوای بیشتر مرتبط با devops را داشته باشم زیرا در حین مطالعه برای این گواهی، چیزهای زیادی یاد گرفته‌ام.

این ماه من به نوشتن در مورد GitHub Actions ادامه خواهم داد. اگر در GitHub Actions تازه کار هستید، توصیه می کنم پست های وبلاگ قبلی من را بخوانید:

معرفی

GitHub Actions یک ابزار عالی برای خودکار کردن گردش کار شما است. با این حال، همیشه آسان نیست که گردش کار خود را به صورت محلی آزمایش کنید. این به این دلیل است که GitHub Actions یک سرویس مبتنی بر ابر است و برای آزمایش آن باید کد خود را به GitHub فشار دهید. این همیشه راحت نیست، به خصوص زمانی که در حال توسعه گردش کار خود به صورت محلی هستید.

مثالی از چرخه توسعه معمولی شامل فشار دادن کد و انتظار برای تکمیل گردش کار.

اجرای موفق

این جایی است که act وارد می شود. این ابزار خط فرمانی است که به شما امکان می دهد اقدامات GitHub خود را به صورت محلی اجرا کنید. این یک ابزار عالی برای آزمایش گردش کار شما به صورت محلی قبل از فشار دادن آنها به GitHub است.

Act همچنین به شما این امکان را می‌دهد که گردش‌های کاری خود را روی یک دونده خود میزبان اجرا کنید. اگر می‌خواهید گردش‌های کاری خود را روی دستگاهی اجرا کنید که به اینترنت متصل نیست، مفید است. برای مثال، می‌توانید گردش‌های کاری خود را روی Raspberry Pi اجرا کنید.

For me Act به من این امکان را داده است که قبل از فشار دادن آنها به GitHub و انتظار برای نتایج، گردش کار خود را به صورت محلی آزمایش کنم. این باعث صرفه جویی در وقت و ناامیدی من شده است. امیدوارم برای شما هم همین کار را بکند.

نصب ⚒️

Act در GitHub و Homebrew در دسترس است. با استفاده از دستور زیر می توانید آن را نصب کنید:

# For macOS
brew install act
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

# For Ubuntu Linux 
sudo snap install act
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

# For Debian based Linux distributions
sudo apt install act
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

# For Fedora
sudo dnf install act
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

# For Arch Linux
sudo pacman -Syu act

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

# For Windows
choco install act
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

اقدام به نصب کنید

استفاده 📖

Act یک ابزار CLI است بنابراین می توانید از آن در ترمینال خود استفاده کنید. دستور زیر اقدامات GitHub شما را به صورت محلی اجرا می کند:

act
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

مثالی از اجرای یک گردش کار:

گردش کار در حال اجرا

شما همچنین می توانید نام آن را مشخص کنید workflow می خواهید با استفاده از -W پرچم. به عنوان مثال، دستور زیر را اجرا خواهد کرد workflow.yml فایل:

cd .github/workflows
act -W workflow.yml
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

نمونه ای از اجرای یک فایل گردش کار خاص:

اجرای گردش کاری خاص

برای لیست کامل دستورات و پرچم ها، می توانید دستور زیر را اجرا کنید:

act --help
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

گزینه های کمک عمل کنید

فهرست گردش کار

چگونه کار می کند

Act از Docker برای اجرای اقدامات GitHub شما به صورت محلی استفاده می کند. این به شما امکان می دهد گردش کار خود را بر روی هر دستگاهی که Docker نصب کرده است اجرا کنید. دو راه برای اجرای گردش کار با استفاده از Act وجود دارد:

  1. با استفاده از act فرمان
  2. با استفاده از act اکشن GitHub

با استفاده از act دستور ساده ترین راه برای اجرای گردش کار به صورت محلی است. با این حال، به شما این امکان را نمی دهد که گردش کار خود را بر روی یک دونده خود میزبان اجرا کنید. اینجاست که act GitHub Action وارد می‌شود. این امکان را به شما می‌دهد تا گردش‌های کاری خود را بر روی یک رانر خود میزبان اجرا کنید. اگر می‌خواهید گردش‌های کاری خود را روی دستگاهی اجرا کنید که به اینترنت متصل نیست، مفید است. برای مثال، می‌توانید گردش‌های کاری خود را روی Raspberry Pi اجرا کنید.

استفاده از کانتینرهای داکر امکان جداسازی محیط را فراهم می کند. این بدان معناست که شما می توانید گردش کار خود را بر روی دستگاهی اجرا کنید که دارای سیستم عامل متفاوتی نسبت به سیستم مورد استفاده شما است. برای مثال، می‌توانید گردش‌های کاری خود را بر روی یک دستگاه ویندوز با استفاده از یک کانتینر لینوکس اجرا کنید. اگر در حال توسعه گردش کار خود بر روی یک دستگاه ویندوز هستید، این کار مفید است.

تصاویر پایه داکر 🐳

اولین باری که عمل را اجرا می‌کنید، می‌توانید از تصویر پیش‌فرض docker یا تصویر docker خود استفاده کنید. تصویر پیش فرض docker است nektos/act-environments-ubuntu:latest. برای استفاده از تصویر پیش فرض docker می توانید از دستور زیر استفاده کنید:

act
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

این تصویر بر اساس آخرین نسخه اوبونتو است. حداقل مجموعه ای از ابزارها را نصب کرده است. برای استفاده از تصویر داکر خود می توانید از دستور زیر استفاده کنید:

act -P ubuntu-latest=nektos/act-environments-ubuntu:22.04
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

اطلاعات بیشتر در مورد تصاویر دونده را اینجا بخوانید

تصاویر دونده

امنیت

اسرار

قانون اجازه می دهد تا اسرار را به گردش کار خود اضافه کنید. اگر می خواهید گردش کار خود را به صورت محلی آزمایش کنید، این کار مفید است. با این حال، هنگام استفاده از این ویژگی باید مراقب باشید. این به این دلیل است که act به شما امکان می دهد هر کدی را به صورت محلی اجرا کنید. این بدان معنی است که اگر مراقب نباشید، می توانید کدهای مخرب را روی دستگاه خود اجرا کنید.

متغیرهای محیطی

Act از افزودن متغیرهای محیطی با استفاده از آن پشتیبانی می کند .env فایل ها). دایرکتوری فعلی و همه دایرکتوری های والد را برای فایلی به نام بررسی می کند .env. برای افزودن متغیرهای محیطی می توانید از دستور زیر استفاده کنید:

echo "FOO=BAR" >> .env
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

با این حال می توانید مکان پیش فرض را بازنویسی کنید .env فایل با استفاده از -env-file پرچم. به عنوان مثال، دستور زیر متغیرهای محیطی را از آن اضافه می کند .env فایل در دایرکتوری فعلی:

act -env-file .env
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

پیکربندی ⚙️

Act به شما امکان می دهد گردش کار خود را با استفاده از آن پیکربندی کنید ./.actrc یا الف ~/.actrc فایل. اگر می خواهید تنظیمات پیش فرض را تغییر دهید این کار مفید است. به عنوان مثال، می توانید تصویر پیش فرض docker را تغییر دهید. خط زیر را به خط خود اضافه کنید ~/.actrc فایل:

-P ubuntu-latest=nektos/act-environments-ubuntu:22.04
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

اطلاعات بیشتر در مورد فایل پیکربندی را اینجا بخوانید

مثال ها

اجرای یک گردش کار

مثال زیر نحوه اجرای یک گردش کار به صورت محلی را نشان می دهد. گردش کار ساده است که زمان جاری را دریافت کرده و آن را در کنسول چاپ می کند. گردش کار در واقع شده است .github/workflows فهرست راهنما. فایل گردش کار نامگذاری شده است hello-world.yml.

name: Hello World

on: [push]

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - name: Hello world action step
        uses: actions/hello-world-javascript-action@v1
        with:
          who-to-greet: 'Mona the Octocat'  # default is "World"
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

برای اجرای گردش کار می توانید از دستور زیر استفاده کنید:

act
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

این ابتدا تصویر docker را دانلود کرده و سپس گردش کار را اجرا می کند. تصویر زیر خروجی دستور را نشان می دهد:

سلام دنیا

اجرای یک گردش کار با اسرار

مثال زیر نحوه اجرای یک گردش کار به صورت محلی با Secrets را نشان می دهد. گردش کار ساده است که زمان جاری را دریافت کرده و آن را در کنسول چاپ می کند. گردش کار در واقع شده است .github/workflows فهرست راهنما. فایل گردش کار نامگذاری شده است hello-world-secrets.yml.

name: Hello World

on: [push]

jobs:
  build:
 runs-on: ubuntu-latest
 steps:
   - name: Hello world action step
  uses: actions/hello-world-javascript-action@v1
  with:
    who-to-greet: ${{ secrets.WHO_TO_GREET }}
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

گردش کار از رمزی به نام استفاده می کند WHO_TO_GREET. برای اجرای گردش کار می توانید از دستور زیر استفاده کنید:

act -s WHO_TO_GREET="Mona the Octocat"
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

این ابتدا تصویر docker را دانلود کرده و سپس گردش کار را اجرا می کند. تصویر زیر خروجی دستور را نشان می دهد:

سلام اسرار دنیا

مخزن GitHub

GitHub را بررسی کنید

این مخزن شامل راه حل های من از چالش های مختلف Twilio Quest است

forthebadge ساخته شده با پایتون

GitHub

کوندا

این مخزن شامل راه حل های من برای چالش های جستجوی Twilio است. با ادامه بازی به روز می شود.

فورک شده از مخزن اصلی Starter-Python

راه اندازی برنامه Flask

ما فرض می کنیم که قبل از شروع، پایتون و پیپ را روی سیستم خود نصب کرده و در خط فرمان در دسترس خواهید داشت.

قبل از اجرای این پروژه، باید سه متغیر محیطی سیستم را تنظیم کنید. اینها هستند:

  • TWILIO_ACCOUNT_SID : آن را از کنسول Twilio خود دریافت کنید.
  • TWILIO_AUTH_TOKEN : مانند بالا.
  • TWILIO_PHONE_NUMBER : یک شماره Twilio متعلق به شما، که می تواند برای برقراری تماس و ارسال پیام استفاده شود. می‌توانید فهرستی از شماره‌های تلفنی را که کنترل می‌کنید (و در صورت لزوم شماره تلفن دیگری بخرید) در کنسول پیدا کنید.

می توانید آنها را در فایل flask-app/settings.py ذخیره کرده و در فایل اصلی app.py وارد کنید

یا

برای مک و لینوکس، متغیرهای محیط را می توان با باز کردن…

برای گردش کار کامل

نتیجه

این یک مقدمه کوتاه برای عمل بود. امیدوارم به شما در اجرای اکشن های GitHub به صورت محلی کمک کند. اگر سوال یا پیشنهادی دارید، در زیر نظر خود را با ما در میان بگذارید.

برای من یک قهوه بخر

دفعه بعد

منابع

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا