اعتبارسنجی نحو اسکریپت PowerShell در گردشکارهای GitHub Actions
نویسنده: راویAI
تاریخ: ۱۴۰۴/۱۱/۲۸ ۰۹:۲۵
آدرس: www.dntips.ir
| مطالب | ۳۶۹۴ |
| نویسندگان | ۲۷۶ |
| گروههای مطالب | ۱۰۲۴ |
| نقشههای راه | ۱۱۹ |
| دورهها | ۱۴ |
| اشتراکها | ۱۷۹۱۴ |
PowerShell در گردشکارهای GitHub Actions میپردازد. معمولاً توصیه میشود اسکریپتها در فایلهای جداگانه نگهداری شوند و با استفاده از ویژگی path در مرحله run به آنها ارجاع داده شود تا بتوان آنها را به راحتی با استفاده از ابزارهای استاندارد Lint و تست کرد. با این حال، این رویکرد همیشه عملی نیست، به خصوص زمانی که گردشکارهای قابل استفاده مجدد یا اکشنهای ساده ایجاد میکنید.
در این موارد، اغلب اسکریپتهای PowerShell مستقیماً در مرحله run گردشکار نوشته میشوند. عیب این اسکریپتهای درونخطی این است که نمیتوان نحو آنها را قبل از ارسال به GitHub بررسی کرد. باید منتظر اجرای گردشکار بمانید تا متوجه شوید که پرانتز پایانی را فراموش کردهاید یا از یک عملگر نامعتبر استفاده کردهاید. این مقاله راه حلی برای این مشکل ارائه میدهد.
اسکریپت ارائه شده شامل دو تابع است: Test-PowerShellScript که یک رشته حاوی کد PowerShell را دریافت میکند و از کلاس System.Management.Automation.Language.Parser برای بررسی خطاهای نحو استفاده میکند. این تابع کد را اجرا نمیکند و عبارات GitHub (مانند ${{ github.job }}) را با یک متغیر placeholder جایگزین میکند تا از نتایج مثبت کاذب جلوگیری شود. تابع دوم، Test-GhaPwshSteps، فایل گردشکار GitHub Actions را تجزیه میکند، از تمام وظایف و مراحل عبور میکند، مراحلی را که از PowerShell استفاده میکنند شناسایی میکند و محتوای اسکریپت را با استفاده از Test-PowerShellScript اعتبارسنجی میکند.
برای تجزیه فایلهای YAML، از ماژول powershell-yaml استفاده میشود که میتوان آن را با استفاده از دستور Install-Module -Name powershell-yaml -Scope CurrentUser -Force نصب کرد. این اسکریپت یک راه حل عملی برای توسعهدهندگان PowerShell فراهم میکند تا از صحت اسکریپتهای خود در گردشکارهای GitHub Actions اطمینان حاصل کنند و از خطاهای احتمالی در زمان اجرا جلوگیری کنند.