اجرای موازی استپها تو GitHub Actions
خلاصهٔ کاملتر
تو تغییرنامهٔ گیتهاب اومده که GitHub Actions از این به بعد میتونه استپهای یک جاب رو همزمان اجرا کنه. تا امروز همهٔ استپها پشت سر هم اجرا میشدن و هر استپ فقط وقتی شروع میشد که استپ قبلی تموم شده بود.
راهحل قبلی این بود که خودت دستور رو تو شل بکگراند کنی. جواب میداد، ولی خروجی چند استپ توی هم میرفت و لاگها عملاً غیرقابلخوندن میشد. قابلیت جدید همون موازیبودن رو میده، منتها هر استپ لاگ و اجرای مستقل خودش رو نگه میداره.
چهار کلیدواژهٔ تازه اضافه شده. background: true استپ رو ناهمگام اجرا میکنه و بلافاصله میره سراغ استپ بعدی. wait و wait-all اجرا رو نگه میدارن تا یک یا چند استپ بکگراند تموم بشن — wait میتونه چندتا استپ مشخص رو هدف بگیره و wait-all منتظر همهٔ استپهای بکگراندِ قبلی میمونه.
کلیدواژهٔ cancel یک استپ بکگراند رو که دیگه لازمش نداری تمیز میبنده؛ یعنی میتونی یک سرویس طولانیمدت رو راه بندازی و آخرش خودت جمعش کنی. parallel هم یک گروه از استپها رو میگیره و تبدیلشون میکنه به استپهای بکگراند با یک wait بعدشون — همون الگوی «اینا رو با هم اجرا کن، بعد ادامه بده»، فقط خلاصهتر.
به گفتهٔ گیتهاب، این کار چند الگوی رایج رو توی یک جاب حل میکنه: کارهای مستقل (مثل چند بیلد جدا) واقعاً موازی اجرا میشن؛ میتونی یک سرویس رو بکگراند بالا بیاری، کار وابسته بهش رو انجام بدی و بعد سرویس رو تمیز ببندی؛ و کارهای غیرمسدودکننده مثل آپلود تلهمتری میتونن ادامه بدن در حالی که پکیجکردن جلو میره.
نکات کلیدی:
- استپهای یک جاب حالا با background: true همزمان اجرا میشن و لاگ هرکدوم جداست
- wait و wait-all برای منتظرموندن، و cancel برای بستن تمیز یک استپ بکگراند
- parallel شکل خلاصهشدهٔ «موازی اجرا کن، بعد ادامه بده» برای یک گروه استپه
- کاربردهای اصلی: چند بیلد همزمان، سرویس بکگراند با تمیزکاری، و کارهای غیرمسدودکننده مثل آپلود تلهمتری




