لطفا صبر کنید ...

GitHub Actions چیست و چگونه می‌توان از آن استفاده کرد؟

الهام غایب

توسط الهام غایب

نویسنده
دیدگاه ها: 0
بازدید ها : 72
رایگان
هدف ما این است که شما، در بالاترین سطح طراحی و توسعه وب باشید.

ثبت نام کنید

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


قابلیت جدیدی که اخیرا توسط GitHub معرفی شد، GitHub Actions است که به شما این امکان را می‌دهد جریان کاری را به صورت خودکار درآورید. چه کارهایی می‌توانید با GitHub Actions انجام دهید؟ قابلیت‌های آن نامحدود است و می‌توانید کارهای زیر را برای نمونه انجام دهید:

- مدیریت یکپارچه سازی و توسعه مداوم (ساخت، آزمایش و به کار گیری اپلیکیشن)

- انتشار ماژول‌های npm

- اعلان هشدار با استفاده از ایمیل یا SMS

این کارها از طریق action‌هایی انجام می‌شود که می‌توان آن‌ها را در مخزن یا repository خود، repository عمومی GitHub یا هر Docker image منتشر شده‌ای تعریف کرد. توجه داشته باشید که GitHub Actions در حال حاضر در نسخه بتای خود بوده و شما باید برای دسترسی به آن در لینک https://github.com/features/actions/signup ثبت نام کنید:

GitHub Actions

وقتی وارد لینک شدید، به workflow و action‌ها دسترسی دارید تا بتوانید GitHub Actions خود را راه اندازی کنید. شما می‌توانید به راحتی از طریق Actions tab که به repository شما اضافه می‌شود، به ویرایشگر GHI دسترسی داشته باشید:

GitHub Actions

طرز کار GitHub Actions

این قابلیت از طریق استفاده از workflows کانفیگ شده که حاوی actions و روابط آن‌ها با یکدیگر است، کار می‌کند.

Workflows

این workflows مشخص می‌کند که action‌ها چگونه اجرا شده و همچنین ترتیب اجرا چگونه باشد. وقتی یک workflow ایجاد می‌کنید، با یک فایل main.workflow شروع کنید، می‌توانید آن را در زیر دایرکتوری .github/ در مخزن یا repository خود پیدا کنید:

|-- my-repo (repository)
|   |** .github
|       |** main.workflow

فایل main.workflow حاوی یک تعداد بلوک‌های workflow و action است که به ترتیب انتخابی شما مرتب شده و شما آن‌ها را در یک فایل منظم کانفیگ می‌کنید. در زیر  نمونه‌ای از یک workflow را با یک بلوک workflow و سه بلوک action مشاهده می‌کنید:

workflow "MYWORK" {
  on = "EVENT"
  resolves = "ACTION3"
}

action "ACTION1" {
  uses = "docker://image1"
}

action "ACTION2" {
  needs = "ACTION1"
  uses = "docker://image2"
}

action "ACTION3" {
  needs = "ACTION2"
  uses = "docker://image3"
}

در workflow بالا:

- کلمه کلیدی on یعنی یک رویداد مشخص ( EVENT ) که workflow به نام ( MYWORK ) را برای شروع آماده به کار می‌کند.

- MYWORK به فراخوانی Action سوم ( Action3 ) با استفاده از کلمه کلیدی resolve بپردازد.

- این action نیازمند action2 است که خود نیاز به Action1 دارد.

به همین دلیل، workflow actions به ترتیب زیر اجرا می‌شوند:

ACTION1 --> ACTION2 --> ACTION3

یک action تنها زمانی اجرا می‌شود که action مورد نیاز آن به صورت موفقیت آمیز کامل شده باشد. اگر خصوصیت resolve با یک آرایه از action‌ها ارائه شود، آن‌ها به صورت موازی اجرا خواهند شد:

workflow "IDENTIFIER" {
  on = "EVENT"
  resolves = ["ACTION1", "ACTION2"]
}

Workflow با GUI

شما می‌توانید با استفاده از GUI که GitHub در اختیار شما قرار می‌دهد و از طریق کلیک روی تب Actions و سپس کلیک روی دکمه create a new workflow، یک workflow ایجاد کنید. این دکمه یک ویرایشگر تصویری باز می‌کند که در آن می‌توانید تنظیمات workflow خود را تعریف کنید:

GitHub Actions

روی edit کلیک کرده تا تب configuration باز شود و در آنجا بتوانید نام workflow و رویدادهایی که ایجاد می‌کند را مشخص کنید:

GitHub Actions

رویدادها در منوی کشویی Run تعریف می‌شوند:

GitHub Actions

وقتی کار تنظیمات را به پایان رساندید، روی Done کلیک کرده و workflow شما آماده است. گام بعدی این است که Action‌هایی را به workflow اضافه کنید. اما ابتدا، بیایید ببینیم Action‌ها چطور کار می‌کنند.

Actions

Action جایی است که ما در آن مشخص می‌کنیم کدام دستورات اجرا شوند. می‌توان اکشن را در docker image ذخیره کرد که از طریق خصوصیت uses قابل دسترسی هستند. حتی می‌توانیم با استفاده از خصوصیت runs به آن بگوییم که دستور مشخصی را در docker image اجرا کند. اگر بخواهیم یک اکشن پس از یک اکشن دیگر اجرا شود، یک خصوصیت needs مانند آن که در نمونه بالا وجود دارد، ایجاد می‌کنیم.

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

Action یعنی جایی که می‌توانیم هر متغیر محیطی که می‌خواهیم را تحت خصوصیت env ایجاد کنیم. هر متغیر مخفی مانند توکن‌ها تحت خصوصیت secrets ایجاد می‌شوند و این‌ها باید در ویرایشگر تصویری workflow مانند آنچه که توسط GitHub ارائه می‌شود یا در تب Setting مخزن شما موجود است، مشخص شوند. همچنین، می‌توانیم آرگومان‌هایی را با استفاده از خصوصیت args به اکشن اضافه کنیم این خصوصیات ممکن است به شکل رشته‌هایی که با space از هم فاصله گرفته‌اند یا آرایه‌ای که با کاما جدا شده است، باشند.

توصیه می‌شود در هنگام تعریف یک اکشن، نسخه آن را با ایجاد یک SHA یا شماره تگ docker مشخص کنید. این کار باعث می‌شود workflow شما در صورت انتشار یک آپدیت با اختلال مواجه نشود. تنظیمات action با ویرایشگر تصویری آسان‌تر است. تمام آنچه که باید انجام دهید drag کردن نقطه آبی در پایین workflow و کشاندن آن به سمت پایین برای اتصال به جعبه زیرین است:

GitHub Actions

نام action را زیر choose action قرار داده و روی use کلیک کنید. می‌توانید گزینه‌های تنظیماتی دیگری را همانطور که در زیر نشان داده شده است اضافه کرده و روی done کلیک کنید:

GitHub Actions

اگر می‌خواهید action‌های دیگری به workflow اضافه کنید این مراحل را تکرار کنید. وقتی workflow شما به پایان رسید، روی start commit در گوشه سمت راست بالا کلیک کنید:

GitHub Actions

پیام commit خود را تایپ کرده، یک آدرس ایمیل commit انتخاب کرده و یک commit branch انتخاب کنید و سپس روی propose new file کلیک کنید:

GitHub Actions

Commit کردن workflow آن را برای branch مورد نظر شما فعال می‌کند. برای فعال کردن workflow برای کل پروژه خود، یک Pull Request ایجاد کرده و آن را merge کنید. می توانید ببینید workflow شما زیر تب Checks در حال اجرا می‌باشد تا از اجرای موفقیت آمیز آن مطمئن شوید:

GitHub Actions

به همین راحتی، اولین workflow خود را ایجاد کردید.

محدودیت های Workflow

لازم است به یاد داشته باشید که GitHub در حال حاضر محدودیت‌های زیر را روی workflow‌ها قرار داده است:

- هر workflow می‌تواند برای حداکثر ۵۸ دقیقه اجرا شود که شامل queuing و اجرا می‌باشد.

- هر workflow می‌تواند حداثر ۱۰۰ اکشن اجرا کند.

- یک مخزن می‌تواند حداکثر دو workflow را به صورت همزمان اجرا کند.

- یک task اجرا شده درون یک اکشن نمی‌تواند اکشن‌های دیگر را اجرا کند.

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

مطالعه مقالات بیشتر در لیداوب:

 در کتابخانه آنلاین لیداوب همراه ما باشید و جدیدترین مقالات برنامه نویسی و طراحی وب را در آن مطالعه نمایید.

5 از 1 رای

 مطالب مرتبط  

در قسمت زیر مطالبی وجود دارند که با مقاله فعلی مرتبط هستند

متاسفانه فقط اعضای سایت قادر به ثبت دیدگاه هستند

برترین های