یک فایل workflow برای GitHub Actions بنویسید که برای یک پروژه JavaScript/Node.js با تستهای Jest، هنگام push یا pull request به شاخه main، وابستگیها را نصب کند، تستها را اجرا کند و در صورت موفقیت، برنامه را به یک سرور راه دور با استفاده از SSH منتقل و منتشر کند.
5.0 بازدید آخرین ویرایش در 205 روز قبل ساعت 00:16 0.0
برای حل این مسئله یک فایل YAML در .github/workflows ایجاد کنید که با استفاده از actions/checkout و actions/setup-node محیط Node.js را آماده کند، npm install و npm test را اجرا نماید و در صورت عبور تستها مرحلهٔ deploy را با استفاده از دستورات rsync/ssh یا با actionهای آماده مثل appleboy/scp-action یا burnett01/rsync-deploy استفاده کند. از cache برای node_modules، متغیرهای محیطی مثل NODE_VERSION و secrets گیتهاب برای کلیدهای SSH و اطلاعات سرور استفاده کنید؛ همچنین workflow را طوری تنظیم کنید که روی رویدادهای push و pull_request به شاخه main اجرا شود و برای آزمایش محلی از اجرای گامها بهصورت مستقل در شاخههای feature استفاده کنید.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
برای بهبود پایداری و بازده، از npm ci بهجای npm install استفاده کنید تا بر پایه package-lock.json اقدام به نصب شود. از caching node_modules با actions/cache استفاده کنید و همچنین Secrets گیتهاب مانند SSH_KEY و SERVER_HOST را برای اتصال امن نگهداری کنید. قبل از rsync/ssh مطمئن شوید که host به known_hosts اضافه شده و از ابزارهای آماده مانند appleboy/scp-action یا burnett01/rsync-deploy برای deploy استفاده کنید تا دسترسی و خطاهای قرارداد کاهش یابد. همچنین تنها به شاخه main روی push یا pull_request انجام شود و برای آزمایش محلی، امکان اجرای گامها در شاخههای feature بهطور مستقل فراهم باشد.
گزارش