امکان اجرای خودکار CI/CD بر روی مخازن Artifacts با استفاده از SDK جدید Cloudflare
در دنیای توسعه نرمافزار، اتوماسیون فرآیندهای ساخت، تست و استقرار برنامهها اهمیت فراوانی دارد. به تازگی Cloudflare قابلیت جدیدی را معرفی کرده است که به توسعهدهندگان اجازه میدهد تا خطوط لوله CI/CD خود را مستقیماً روی مخازن Artifacts اجرا کنند. این ویژگی با استفاده از یک SDK اختصاصی به نام CI SDK ارائه شده و به طور خودکار پس از هر بار ارسال (push) به مخزن فعال میشود.
اجرای خودکار CI/CD روی مخازن Artifacts به توسعهدهندگان این امکان را میدهد که کدهای ذخیره شده در این مخازن را به صورت خودکار بسازند و مستقر کنند. علاوه بر این، قابلیت اجرای انواع بررسیها مانند linting، بررسی نوع دادهها (type checking)، تستها و سایر کنترلها در هر بار ارسال کد فراهم شده است. این روند باعث افزایش کیفیت کد و کاهش خطاهای احتمالی در مرحله استقرار میشود.
یکی از ویژگیهای مهم این سیستم، قابلیت استفاده مجدد از وابستگیها است. به این صورت که اگر فایل قفل وابستگیها مانند pnpm-lock.yaml یا bun.lock تغییر نکرده باشد، نصب مجدد وابستگیها انجام نمیشود و این موضوع باعث صرفهجویی در زمان اجرای خط لوله میشود. همچنین در صورت بروز خطا در هر مرحله از ساخت یا تست، فرآیند استقرار متوقف میشود تا از انتشار نسخههای معیوب جلوگیری شود.
برای تعریف مراحل CI، توسعهدهندگان میتوانند از بسته @cloudflare/ci استفاده کنند. هر اجرای ci.runner() یک محیط ایزوله و مجزا را ایجاد میکند که در آن دستورات مورد نظر اجرا میشوند. گزینه cache نیز به منظور استفاده مجدد از وابستگیهای نصب شده در مراحل مختلف خط لوله به کار میرود. به عنوان مثال، با مشخص کردن فایلهای قفل وابستگیها در cache.inputs، نصب وابستگیها تنها زمانی انجام میشود که این فایلها تغییر کرده باشند.
نمونهای از تعریف مراحل CI شامل نصب وابستگیها، اجرای lint، تستها، بررسی نوع دادهها و ساخت برنامه است که پس از آن مرحله استقرار با استفاده از دستور bun wrangler deploy انجام میشود. این ساختار به صورت موازی و بهینه اجرا میشود تا زمان کل فرآیند کاهش یابد.
برای فعالسازی خودکار این Workflow پس از هر بار ارسال کد به مخزن، کافی است در تنظیمات Wrangler یک trigger با نوع cf.artifacts.repo.pushed تعریف شود. این trigger مشخص میکند که پس از هر بار push به مخزن مشخص شده، Workflow مربوط به CI به صورت خودکار اجرا شود. این تنظیمات شامل نام فضای نام (namespace)، نام مخزن (repoName)، نام اسکریپت و نام Workflow است.
این قابلیت جدید Cloudflare به توسعهدهندگان کمک میکند تا فرآیندهای توسعه و استقرار خود را به صورت یکپارچه و خودکار مدیریت کنند و از بروز خطاهای انسانی و مشکلات ناشی از استقرار نسخههای ناقص جلوگیری نمایند. همچنین با استفاده از محیطهای ایزوله و کش کردن وابستگیها، کارایی و سرعت اجرای خط لولههای CI/CD بهبود یافته است.
در نهایت، این ویژگی نشاندهنده روند رو به رشد اتوماسیون در توسعه نرمافزار و اهمیت استفاده از ابزارهای مدرن برای بهبود کیفیت و سرعت تحویل نرمافزار است. توسعهدهندگان و تیمهای فنی میتوانند با بهرهگیری از این امکانات، فرآیندهای خود را بهینهتر و قابل اطمینانتر کنند.