گیتهاب اکشن GitHub Actions یکی از ابزارهای گیتهاب است که به شما کمک میکنه تا مراحل ساخت، تست و انتشار کدتون رو به صورت خودکار انجام بدید.
مثلا میتونید یه جوری تنظیمش کنید که هر بار که یه تغییر توی کدتون ایجاد میکنید، به طور خودکار ساخته و تست بشه.
یا میتونید طوری تنظیمش کنید که بعد از تایید نهایی یه تغییر، به طور خودکار توی سایت یا اپلیکیشن شما منتشر بشه.
در کل،گیتهاب اکشن یه راه عالیه برای اینکه فرآیند انتشار کدتون رو سریعتر، سادهتر و قابل اعتمادتر کنید.
این عملیات در واقعی نوعی CI/CD میباشد که در ادامه توضیح میدهیم.
شما به عنوان یک برنامه نویس فلاتر میتوانید از این قابلیت استفاده کنید تا فرآیند خروجی گرفتن و تست پروژه خودتون را خودکار انجام دهید.
CI/CD که مخفف “یکپارچهسازی و تحویل/انتشار مداوم” هست continuous integration و continuous delivery، به دنبال اینه که مراحل ساخت و عرضهی نرمافزار رو سریعتر و سادهتر کنه.
همچنین اینکار باعث میشود که خطاها و باگ های کمتری در محصول نهایی وجود داشته باشد.
CI/CD به سازمانها کمک میکند تا در حالی که چرخهی دائمی توسعه و بهروزرسانی نرمافزار را حفظ میکنند، از باگها و خرابیهای کد جلوگیری کنند.
با بزرگتر شدن برنامهها، ویژگیهای CI/CD میتوانند به کاهش پیچیدگی، افزایش کارایی و سادهسازی فرآیندهای کاری کمک کنند.
از آنجایی که CI/CD مداخلهی دستی انسان که بهطور سنتی برای انتقال کد جدید از مرحلهی ثبت به تولید نیاز بود را خودکار میکند، زمان خارج از سرویس بودن به حداقل میرسد و انتشار کد سریعتر انجام میشود.
همچنین با امکان ادغام سریعتر بهروزرسانیها و تغییرات در کد، بازخورد کاربران را میتوان با دفعات بیشتر و اثرگذاری بیشتری لحاظ کرد، که در نهایت منجر به نتایج مثبت برای کاربران نهایی و رضایت بیشتر مشتریان میشود.
ادغام پیوسته (CI):
در ادغام پیوسته، توسعهدهندگان بهصورت مکرر تغییرات کوچک در کد خود اعمال و بررسی میکنند. با توجه به حجم بالای الزامات و تعداد مراحل درگیر، این فرآیند خودکار میشود تا تیمها بتوانند بهصورت قابل اعتماد و تکرارپذیر، برنامههای خود را بسازند، تست کنند و بستهبندی نمایند.
CI به سادهسازی تغییرات کد کمک میکند و در نتیجه زمان بیشتری را برای توسعهدهندگان جهت ایجاد تغییرات و بهبود نرمافزار فراهم میسازد.
تحویل پیوسته (CD):
تحویل پیوسته به معنای تحویل خودکار کد تکمیلشده به محیطهایی مانند تست و توسعه است. CD روشی خودکار و یکپارچه برای تحویل کد به این محیطها ارائه میدهد.
استقرار پیوسته (Deployment پیوسته):
استقرار پیوسته، مرحلهی بعدی تحویل پیوسته است. هر تغییری که از تستهای خودکار عبور کند، بهطور خودکار در محیط تولید قرار میگیرد و منجر به استقرارهای مکرر در تولید میشود.
استقرار پیوسته باید هدف اکثر شرکتهایی باشد که محدودیتهای قانونی یا الزامات دیگری ندارند.
بهطور خلاصه، CI مجموعهای از اقداماتی است که توسعهدهندگان در حین نوشتن کد انجام میدهند، و CD مجموعهای از اقداماتی است که پس از تکمیل کد انجام میشود.
گیتهاب اکشن یه ابزار توی گیتهاب هست که به توسعهدهندگان کمک میکنه تا مراحل ساخت، تست و انتشار کدهاشون رو به صورت خودکار انجام بدن.
فرض کنید یه تیم از برنامهنویسها روی یه پروژه کار میکنن. هر کدوم از اعضای تیم ممکنه تغییراتی توی کد ایجاد کنه. با استفاده از گیتهاب اکشن، میشه یه جوری تنظیمش کرد که هر بار یه عضو تیم تغییراتی رو ذخیره میکنه، به طور خودکار این تغییرات ساخته، تست و در صورت قبولی تستها، منتشر بشن.
این کار مزایای زیادی داره، از جمله:
گیتهاب اکشن یه ابزار قدرتمنده که میتونه به تیمهای توسعهدهنده کمک کنه تا سریعتر، باکیفیتتر و با همکاری بیشتر، نرمافزار بسازند
با استفاده از گیتهاب اکشن می توانید فرآیند ساخت برنامه های فلاتر خود را به طور خودکار کنید. این امر به شما کمک می کند تا زمان صرف شده برای ساخت برنامه های خود را کاهش دهید و از بروز خطاهای ساخت جلوگیری کنید.
شما میتوانید یک گردش کار (workflow) در گیتهاب اکشن را برای اجرا شدن در زمان رخداد یک رویداد (event) در مخزن پروژه پیکربندی کنید.
رویدادهایی مانند باز شدن یک درخواست pull request یا ایجاد یک issue یا اضافه شدن کد جدید Push و…
گردش کار شما شامل یک یا چند ماموریت (job) است که میتوانند به ترتیب یا به صورت موازی اجرا شوند. هر شغل درون ماشین مجازی (virtual machine) اختصاصی خود یا داخل یک container اجرا میشود و دارای یک یا چند مرحله (step) است که یا یک اسکریپتی که شما تعریف میکنید را اجرا میکند و یا یک اکشن (action) که یک توسعهیافتهی قابلاستفادهی مجدد است و میتواند گردش کار شما را سادهسازی کند.
پس به طور خلاصه ابتدا نوع رویداد مشخص میشود سپس یک وظیفه Job تعیین میشود و بعد با کمک مراحل Step عملیات های مختلف را انجام میدهیم.
گردش کار (Workflow) یک فرایند خودکار قابل پیکربندی است که یک یا چند ماموریت (Job) را اجرا میکند.
گردش کارها با استفاده از یک فایل YAML تعریف شده و در مخزن پروژه شما ثبت میشوند.
این گردش کارها میتوانند با رویدادی در مخزن شما، به صورت دستی یا طبق یک زمانبندی مشخص اجرا شوند.
گردش کارها در پوشه .github/workflows
در مخزن تعریف میشوند و یک مخزن میتواند چندین گردش کار داشته باشد که هر کدام مجموعهی متفاوتی از وظایف را انجام دهند.
برای مثال، شما میتوانید یک گردش کار برای ساخت و تست درخواستهای pull request داشته باشید، گردش کار دیگری برای استقرار برنامهی خود هر بار که یک ریلیز ساخته میشود و گردش کار دیگری برای اضافه کردن یک برچسب هر زمان که کسی یک issue جدید باز میکند.
رویداد (Event) یک فعالیت مشخص در یک مخزن است که باعث اجرای یک گردش کار (Workflow) میشود.
برای مثال، این فعالیت میتواند از خود گیتهاب سرچشمه بگیرد، زمانی که شخصی یک درخواست pull request ایجاد میکند، یک issue باز میکند، یا یک کامیت را به مخزن push میکند.
همچنین شما میتوانید یک گردش کار را برای اجرا بر اساس یک زمانبندی مشخص، با ارسال به یک REST API، یا به صورت دستی راهاندازی کنید.
برای مشاهده لیست کامل رویدادهای مورد استفاده از این لینک استفاده نمایید. رویداد های گیتهاب
شغل (Job) در یک گردش کار مجموعه ای از مراحل (Step) است که روی یک runner مشترک اجرا میشود. هر مرحله یا یک اسکریپت shell است که اجرا خواهد شد و یا یک اکشنی است که اجرا میشود.
مراحل به ترتیب اجرا شده و به هم وابسته هستند.
از آنجایی که هر مرحله روی همان runner اجرا میشود، شما میتوانید دادهها را از یک مرحله به مرحلهی دیگر منتقل کنید.
برای مثال، شما میتوانید یک مرحله داشته باشید که برنامهی شما را بسازد و به دنبال آن، مرحلهای برای تست کردن برنامهای که ساخته شده است.
شما میتوانید وابستگیهای یک شغل را با سایر شغلها پیکربندی کنید؛ به طور پیشفرض، شغلها هیچ وابستگیای ندارند و به صورت موازی با یکدیگر اجرا میشوند.
هنگامی که یک Job وابستگی به شغل دیگری داشته باشد، قبل از اینکه بتواند اجرا شود، منتظر تکمیل شدن شغل وابسته میماند.
برای مثال، ممکن است چندین شغل ساخت برای معماریهای مختلف داشته باشید که هیچ وابستگیای ندارند، و یک شغل بستهبندی که به آن شغلها وابسته است.
شغلهای ساخت به صورت موازی اجرا میشوند و هنگامی که همه آنها با موفقیت تکمیل شدند، شغل بستهبندی اجرا خواهد شد.
این بخش (Runner) یک سرور است که در زمان راهاندازی شدن گردش کارهای شما را اجرا میکند.
هر اجرا کننده میتواند تنها یک شغل (Job) را در یک زمان اجرا کند.
گیتهاب رانرهای لینوکس اوبونتو، مایکروسافت ویندوز و macOS را برای اجرای گردش کارهای شما ارائه میدهد؛ هر اجرای گردش کار در یک ماشین مجازی جدید و تازه تهیه شده اجرا میشود.
گیتهاب همچنین رانرهای بزرگتری را ارائه میدهد که در پیکربندیهای بزرگتر در دسترس هستند.
اگر به یک سیستمعامل متفاوت یا پیکربندی سختافزاری خاصی نیاز دارید، میتوانید رانرهای خود را میزبانی کنید. برای اطلاعات بیشتر در مورد رانرهای خود-میزبانی، بخش «میزبانی رانرهای خود» را ببینید.
فلاتر یک فریمورک برنامه نویسی چندسکویی میباشد که از پلتفرم های مختلفی پشتیبانی میکند.
شما با یک بار کدنویسی میتوانید خروجی های مختلفی مثل اندروید, آیفون, وب, دسکتاپ, لینوکس و… داشته باشید.
اساس در برنامه نویسی موبایل اتوماتیک سازی کارها باعث افزایش سرعت و بهره وری میشود.
گرفتن خروجی برای این پلتفرم ها و تست کردن آنها فرآیندی زمانبر است, با خودکار سازی این موارد به وسیله گیتهاب اکشن میتوانید در زمان خود صرفه جویی بسیاری کنید.
در واقع امروزه کمتر شرکتی را پیدا میکنید که فرآیند خروجی گرفتن از پروژه در آنها به شکل دستی باشد, با استفاده از عملیات CI/CD میتوانید به شکل خودکار از پروژه فلاتر خروجی گرفته و داخل فروشگاه های اپلیکیشن مثل گوگل پلی و اپ استور نیز نسخه جدید را به صورت اتوماتیک منتشر کنید.
برای شروع و کار با بخش اکشن های گیتهاب ابتدا یک پروژه داخل گیتهاب ایجاد کنید.
ابتدا داخل پروژه مورد نظر یک پوشه به نام github. ایجاد میکنیم سپس داخل آن مجددا یک پوشه به نام workflows میسازیم.
حالا داخل این پوشه فایل های جریان کاری خود را با پسوند yaml. ایجاد میکنیم.
برای نمونه یک فایل به نام first.yaml میسازیم و کدهای زیر را در آن قرار میدهیم.
name: Hello World
on: [push]
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Say Hello
run: echo "Hello, world"
در ابتدا یک نام اختیاری برای Workflow مشخص میکنیم, در مرحله بعدی با کلمه کلیدی on رویدادهایی که باعث اجرا شدن این اکشن میشود را تعیین میکنیم که در اینجا با نوشتن push هربار کد جدیدی به مخزن اضافه شد این اکشن اجرا میشود.
در قسمت jobs هم عملیات هایی که قرار هست رخ دهد را مشخص میکنیم, برای مثال پروژه را روی سیستم عامل اوبونتو اجرا میکنیم و سپس مقدار Hello, world را در ترمینال نمایش میدهیم.
حالا برای اینکه بتونید اجرا شدن این اکشن را ببینید در صفحه گیتهاب وارد سربرگ Action شوید.
در این تصویر مشاهده میکنید که نام Commit برای اکشن نوشته شده و در صف اجرا قرار گرفته است.
اگر روی عنوان مورد نظر کلیک کنید وارد صفحه جزییات شده و قدم به قدم اجرا شدن مراحل مختلف اکشن را میتوانید مشاهده کنید.
در تصویر بالا مراحل مختلفی که اجرا شده اند را مشاهده میکنید.
تیک سبز به منظور این است که پروژه و اکشن بدون خطایی اجرا شده اند و پیام Hello world نمایش داده شده است.
اگر یک برنامه نویس فلاتر هستید و با از نسخه وب اپلیکیشن پروژتون استفاده میکنید…
به عنوان یک برنامه نویس فلاتر یا اندروید بعد از اتمام پروسه طراحی اپلیکیشن نیاز…
طراحی رابط کاربری اپلیکیشن پادکست خود را با استفاده از این کیت توسعه UI/UX فلاتر…
فایربیس، پلتفرمی قدرتمند از شرکت گوگل برای توسعه و مدیریت برنامههای موبایل و وب است.…
فلاتر یک فریم ورک برنامه نویسی چندسکویی است که این امکان را برای برنامه نویس…
فلاتر یک فریم ورک برنامه نویسی چندسکویی است که به وسیله آن میتوانید برای سیستم…