UNIXMENS Telegram 20208
در نگاه اول اینطور به نظر میاد که چون زبان‌های مفسری (مثل Python, PHP, Ruby, JavaScript/Node.js) نیازی به کامپایل شدن ندارند، پس در CI/CD pipeline هم مرحله‌ی build لازم نیست. اما در واقعیت اینطور نیست و دلیل‌های مهمی وجود داره که چرا حتی برای زبان‌های مفسری هم یک stage به نام build داریم:


۱. تعریف گسترده‌ی Build در CI

در CI، منظور از Build فقط کامپایل کد منبع به باینری نیست.

در واقع Build یعنی: آماده‌سازی artifact قابل استفاده (قابل اجرا یا قابل دیپلوی) از کد منبع.

برای زبان‌های مفسری، این می‌تونه شامل کارهای زیر باشه:

نصب و freeze کردن وابستگی‌ها (pip install -r requirements.txt در Python یا npm install در Node.js)

بسته‌بندی کد به صورت آرشیو یا کانتینر (zip, tar.gz, docker image)

اجرای ابزارهای code generation یا transpiler (مثل TypeScript → JavaScript یا Sass → CSS)

ا minify و optimize کردن کدهای front-end

آماده‌سازی migrationها یا فایل‌های config برای استقرار

۲. تولید Artifact پایدار

ا CI/CD به دنبال اینه که یک خروجی قابل تکرار بسازه.

در زبان‌های مفسری، artifact می‌تونه یک Docker image، یک بسته‌ی Python (.whl یا .tar.gz)، یا یک بسته‌ی npm باشد.

این artifact تضمین می‌کنه که همون نسخه‌ی تست‌شده، به محیط stage و production منتقل بشه.

۳. جداسازی Concerns

مرحله build جدا میشه تا مطمئن بشیم:

وابستگی‌ها درست نصب شدن.

نسخه‌ی کد پایدار و بدون خطا آماده شده.

تست‌ها بعداً روی artifact اجرا بشن (نه روی سورس خام).

تیم‌ها یک مرز واضح بین "آماده‌سازی" و "تست/استقرار" داشته باشن.

۴. مثال‌ها

Python:

stages:
- build
- test
- deploy

build:
stage: build
script:
- pip install -r requirements.txt
- pytest --collect-only # بررسی اینکه همه چیز قابل بارگذاری است
- python setup.py sdist bdist_wheel # تولید پکیج
artifacts:
paths:
- dist/

Node.js:

build:
stage: build
script:
- npm install
- npm run build # مثلا build کردن React/Next.js
artifacts:
paths:
- dist/
در واقع حتی اگر زبان مفسری باشه و کامپایل نشه، مرحله build به معنی آماده‌سازی محیط، وابستگی‌ها، artifact و بسته‌ی قابل استقرار هست.



#devops



https:// www.tgoop.com/unixmens
👏2



tgoop.com/unixmens/20208
Create:
Last Update:

در نگاه اول اینطور به نظر میاد که چون زبان‌های مفسری (مثل Python, PHP, Ruby, JavaScript/Node.js) نیازی به کامپایل شدن ندارند، پس در CI/CD pipeline هم مرحله‌ی build لازم نیست. اما در واقعیت اینطور نیست و دلیل‌های مهمی وجود داره که چرا حتی برای زبان‌های مفسری هم یک stage به نام build داریم:


۱. تعریف گسترده‌ی Build در CI

در CI، منظور از Build فقط کامپایل کد منبع به باینری نیست.

در واقع Build یعنی: آماده‌سازی artifact قابل استفاده (قابل اجرا یا قابل دیپلوی) از کد منبع.

برای زبان‌های مفسری، این می‌تونه شامل کارهای زیر باشه:

نصب و freeze کردن وابستگی‌ها (pip install -r requirements.txt در Python یا npm install در Node.js)

بسته‌بندی کد به صورت آرشیو یا کانتینر (zip, tar.gz, docker image)

اجرای ابزارهای code generation یا transpiler (مثل TypeScript → JavaScript یا Sass → CSS)

ا minify و optimize کردن کدهای front-end

آماده‌سازی migrationها یا فایل‌های config برای استقرار

۲. تولید Artifact پایدار

ا CI/CD به دنبال اینه که یک خروجی قابل تکرار بسازه.

در زبان‌های مفسری، artifact می‌تونه یک Docker image، یک بسته‌ی Python (.whl یا .tar.gz)، یا یک بسته‌ی npm باشد.

این artifact تضمین می‌کنه که همون نسخه‌ی تست‌شده، به محیط stage و production منتقل بشه.

۳. جداسازی Concerns

مرحله build جدا میشه تا مطمئن بشیم:

وابستگی‌ها درست نصب شدن.

نسخه‌ی کد پایدار و بدون خطا آماده شده.

تست‌ها بعداً روی artifact اجرا بشن (نه روی سورس خام).

تیم‌ها یک مرز واضح بین "آماده‌سازی" و "تست/استقرار" داشته باشن.

۴. مثال‌ها

Python:

stages:
- build
- test
- deploy

build:
stage: build
script:
- pip install -r requirements.txt
- pytest --collect-only # بررسی اینکه همه چیز قابل بارگذاری است
- python setup.py sdist bdist_wheel # تولید پکیج
artifacts:
paths:
- dist/

Node.js:

build:
stage: build
script:
- npm install
- npm run build # مثلا build کردن React/Next.js
artifacts:
paths:
- dist/
در واقع حتی اگر زبان مفسری باشه و کامپایل نشه، مرحله build به معنی آماده‌سازی محیط، وابستگی‌ها، artifact و بسته‌ی قابل استقرار هست.



#devops



https:// www.tgoop.com/unixmens

BY Academy and Foundation unixmens | Your skills, Your future




Share with your friend now:
tgoop.com/unixmens/20208

View MORE
Open in Telegram


Telegram News

Date: |

Select “New Channel” How to create a business channel on Telegram? (Tutorial) best-secure-messaging-apps-shutterstock-1892950018.jpg The optimal dimension of the avatar on Telegram is 512px by 512px, and it’s recommended to use PNG format to deliver an unpixelated avatar. Telegram desktop app: In the upper left corner, click the Menu icon (the one with three lines). Select “New Channel” from the drop-down menu.
from us


Telegram Academy and Foundation unixmens | Your skills, Your future
FROM American