Skip to content

Commit

Permalink
add angular/ github-deployment docs
Browse files Browse the repository at this point in the history
  • Loading branch information
A-Najmabadi committed Oct 2, 2024
1 parent 1662ed1 commit 5bba1ca
Show file tree
Hide file tree
Showing 2 changed files with 443 additions and 8 deletions.
264 changes: 263 additions & 1 deletion src/pages/paas/angular/how-tos/deploy-app.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ import Head from "next/head";
توجه داشته باشید؛ تنها برنامه‌هایی که با <Important>Angular CLI</Important> ساخته شده باشند، در پلتفرم Angular لیارا قابل اجرا خواهند بود.

<Tabs
tabs={["Liara Console", "Liara CLI"]}
tabs={["Liara Console", "Liara CLI", "Liara Github"]}
content={[
<>
<p>
Expand Down Expand Up @@ -287,6 +287,268 @@ import Head from "next/head";
</p>
</>,

<>
<p>
پس از <a className='text-[#2196f3] ' href="../create-app">ساخت برنامه</a>، باید در مسیر اصلی پروژه، یک فایل به نام <Important>gitignore.</Important> ایجاد کنید و درون آن، اسامی تمامی فایل‌ها یا پوشه‌هایی که قصد ندارید در لیارا آپلود شوند را، وارد کنید؛ به عنوان مثال، نیازی به آپلود دایرکتوری node_modules به همراه محتوای آن نیست؛ چرا که لیارا در حین استقرار برنامه، آن را برای شما می‌سازد؛ پس بایستی نام این دایرکتوری در یکی از دو فایل فوق، نوشته شود؛ قطعه کد قرار گرفته در لینک زیر، یک <Important>gitignore.</Important> عالی برای برنامه‌های Angular است که می‌توانید از آن، استفاده کنید:
</p>
<div className="h-2" />
<Link href="https://github.com/liara-cloud/gitignore-templates/blob/master/angular/.gitignore" target="_blank">
<Card className="flex cursor-pointer w-full items-center justify-between">
<div className="flex items-center gap-3">
<h4>
نمونه فایل <Important>gitignore.</Important> برای برنامه‌های Angular
</h4>
</div>
<GoArrowLeft className="ml-1" />
</Card>
</Link>
<div className="h-2" />
<p>
همچنین، پروژه شما باید شامل فایل <Important>package.json</Important> باشد؛ لیارا، در حین فرایند استقرار، به صورت خودکار این فایل را پیدا می‌کند و عملیات زیر را انجام می‌دهد:
</p>
<Step steps={[
{
step: "۱",
content: (
<>
<h4>نصب وابستگی‌های برنامه</h4>
<p>لیارا، تمامی ماژول‌ها و وابستگی‌های برنامه که در فیلدهای <Important>dependencies</Important> و <Important>devDependencies</Important> قرار گرفته‌اند را با استفاده از دستور <Important>npm install</Important> نصب می‌کند.</p>
</>
)
},
{
step: "۲",
content: (
<>
<h4>اجرای اسکریپت build</h4>
<p> اگر که در این فایل، اسکریپت <Important>build</Important> وجود داشته باشد، لیارا با اجرای دستور <Important>npm run build</Important> آن را، اجرا می‌کند.</p>
</>
)
},
{
step: "۳",
content: (
<>
<h4>اجرای اسکریپت start</h4>
<p> لیارا برای اجرای برنامه، از اسکریپت <Important>start</Important> استفاده می‌کند؛ پس باید حتماً این اسکریپت در فایل <Important>package.json</Important> تعریف شده باشد. </p>
</>
)
}
]}/>
<div className="h-4" />
<p>
قطعه کد زیر، یک نمونه از فایل <Important>package.json</Important> استاندارد برای برنامه‌های Angular است:
</p>
<div className="h-4" />
<div dir='ltr'>
<Highlight className="json">
{`{
"name": "angular-getting-started",
"version": "0.1.0",
"scripts": {
"ng": "ng",
"start": "ng serve",
"build": "ng build",
"watch": "ng build --watch --configuration development"
},
"dependencies": {
"@angular/animations": "~13.1.0",
"@angular/common": "~13.1.0",
"@angular/compiler": "~13.1.0",
"@angular/core": "~13.1.0",
"@angular/forms": "~13.1.0",
"@angular/platform-browser": "~13.1.0",
"@angular/platform-browser-dynamic": "~13.1.0",
"@angular/router": "~13.1.0"
},
"devDependencies": {
"@angular-devkit/build-angular": "~13.1.2",
"@angular/cli": "~13.1.2",
"@angular/compiler-cli": "~13.1.0",
"@types/node": "^12.11.1",
"typescript": "~4.5.2"
}
}`}
</Highlight>
</div>
<div className='h-2' />
<p>
لیارا در جهت استقرار سریع‌تر، برای نصب پکیج‌های <Important>npm</Important>، از <Important>mirror</Important> اختصاصی خود استفاده می‌کند؛ از همین رو، ممکن است که در نصب برخی از پکیج‌های جدید، دچار مشکل شود. برای رفع این مشکل، می‌توانید در مسیر اصلی پروژه، یک فایل به نام <Important>liara.json</Important> ایجاد کنید و mirror لیارا را با قراردادن قطعه کد زیر در این فایل، غیرفعال کنید:
</p>
<div className="h-4" />
<div dir='ltr'>
<Highlight className="json">
{`{
"angular": {
"mirror": false
}
}`}
</Highlight>
</div>
<div className='h-4' />
<p>
Source Map یک فایل است که به ابزارهای دیباگ این امکان را می‌دهد تا کد منبع اصلی (مثل فایل‌های جاوااسکریپت، TypeScript یا SCSS) را به کد تبدیل شده (مثل فایل‌های minified) مرتبط کنند.
Source Map در پلتفرم Angular لیارا به‌صورت پیش‌فرض غیرفعال است اما درصورت نیاز به فعال کردن این قابلیت می‌توانید قطعه‌کد زیر را در فایل <Important>liara.json</Important> قرار دهید:
</p>

<div className="h-4" />
<div dir='ltr'>
<Highlight className="json">
{`{
"angular": {
"sourceMap": true
}
}`}
</Highlight>
</div>
<div className='h-4' />
<p>
در نهایت، یک فایل <Important>liara.json</Important> می‌تواند مانند قطعه کد زیر باشد:
</p>
<div className="h-4" />
<div dir='ltr'>
<Highlight className="json">
{`{
"angular": {
"mirror": false,
"sourceMap": true
}
}`}
</Highlight>
</div>
<div className='h-1' />
<Alert variant='error'>
<p>
در فایل فوق، برای جلوگیری از خطا خوردن فرایند استقرار، از فیلدهای <Important>app</Important> و <Important>platform</Important> استفاده نکنید؛ چرا که لیارا، آن‌ها را به صورت خودکار، تشخیص خواهد داد.
</p>
</Alert>
<Alert variant='success'>همچنین بخوانید: <a className="text-[#2196f3] " href="/paas/details/build-location">تعیین موقعیت build برنامه</a></Alert>
<p>
در ادامه، بایستی یک ریپازیتوری در حساب گیت‌هاب خود برای برنامه‌مدنظرتان با نام دلخواه‌تان ایجاد کنید، برای این کار، پس از ورود به <a href="https://github.com/" className="text-[#2196f3]">گیت‌هاب</a>، وارد بخش <b>Repositories</b> شوید و بر روی دکمه <b>New</b> کلیک کنید؛ پس از نوشتن نام و توضیحات ریپازیتوری، سطح دسترسی ریپازیتوری را (public یا private)، انتخاب کنید و در نهایت بر روی دکمه <b>create repository</b> کلیک کنید تا ریپازیتوری برای‌تان ساخته شود:
</p>
<div className="h-2" />
<video
src="https://files.liara.ir/liara/docs/create-a-new-repository-in-github.mp4"
controls="controls"
className="block w-full"
width="100%"
></video>
<div className="h-2" />
<Alert variant="info">
<p>
در صورتی که از قبل، این کار را انجام داده‌اید یا قصد دارید از ریپازیتوری‌های فعلی خود استفاده کنید؛ نیازی به ساخت ریپازیتوری جدید نیست.
</p>
</Alert>
<p>
اکنون، باید پروژه نهایی خود را در ریپازیتوری‌تان در گیت‌هاب آپلود کنید؛
حتماً در نظر داشته باشید که درون پروژه‌تان، فایل <Important>gitignore.</Important> قرار داشته باشد و درون آن، فایل‌های اضافی
برنامه، که قصد ندارید آپلود شوند؛ لیست شده باشند. می‌توانید برای آپلود، مانند دستورات زیر
در ترمینال ریشه پروژه‌تان، عمل کنید:
</p>
<div className="h-4" />
<div dir='ltr'>
<Highlight className="bash">
{`git init # تعریف اولیه مخزن در ریشه پروژه`}
</Highlight>
</div>
<div dir='ltr'>
<Highlight className="bash">
{`git add . # اضافه کردن تمامی فایل‌ها به استیج`}
</Highlight>
</div>
<div dir='ltr'>
<Highlight className="bash">
{`git commit -m "make ready to deploy on liara" # ثبت کامیت`}
</Highlight>
</div>
<div dir='ltr'>
<Highlight className="bash">
{`git remote add origin https://github.com/your-account-user/your-repo-name.gi # افزودن دسترسی ریموت به مخزن`}
</Highlight>
</div>
<div dir='ltr'>
<Highlight className="bash">
{`git push origin master # آپلود پروژه در گیت‌هاب`}
</Highlight>
</div>
<div className="h-2" />
<Alert variant="success">
<p>
در صورتی که هنوز <Important>git</Important> را در سیستم عامل خود نصب ندارید؛ می‌توانید آن را از <a href="https://git-scm.com/downloads" className="text-[#2196f3]">اینجا</a>، دانلود و نصب نمایید.
</p>
</Alert>
<Alert variant="info">
<p>
اگر که از قبل، پروژه نهایی خود را همراه با فایل <Important>liara.json</Important>، در گیت‌هاب آپلود کرده‌اید؛ نیازی به انجام مجدد این کار نیست.
</p>
</Alert>
<p>
در ادامه، بایستی حساب لیارا خود را به گیت‌هاب متصل کنید. برای اتصال حساب لیارا خود به گیت‌هاب، در لیارا بر روی پروفایل خود کلیک کرده و وارد زیر قسمت <a href="https://console.liara.ir/settings/profile" className="text-[#2196f3]">حساب کاربری</a> شوید. در ادامه
وارد منوی <a href="https://console.liara.ir/settings/github" className="text-[#2196f3]">گیت‌هاب</a> شوید و بر روی دکمه <b>اتصال به گیت‌هاب</b>، کلیک کنید. پس از
انجام این کار و وارد کردن اطلاعات مربوط به گیت‌هاب، حساب لیارا شما به گیت‌هاب متصل خواهد شد:
</p>
<div className="h-2" />
<video
src="https://files.liara.ir/liara/docs/connect-liara-account-to-github.mp4"
controls="controls"
className="block w-full"
width="100%"
></video>
<div className="h-2" />
<Alert variant="error">
<p>
در صورت مواجه با خطای "اتصال به Github"، بایستی از حساب لیارا خود، خارج شده و مجدداً به وسیله Github، به اکانت لیارا خود، وارد شوید.
</p>
</Alert>
<p>
بعد از اتصال به اکانت گیت‌هاب، بر روی گزینه <b>ویرایش دسترسی‌ها</b> کلیک کرده و ریپازیتوری (ریپازیتوری‌های) مدنظرتان را به حساب لیارا متصل کنید.
</p>
<p>
برای این کار در ابتدا، حساب شخصی یا سازمانی خود را انتخاب کنید؛ سپس
در صورتی که قصد دارید تمام ریپازیتوری‌های حساب گیت‌هاب‌تان به لیارا متصل شود؛ گزینه <b>All repositories</b> را انتخاب کنید؛
اما اگر قصد دارید که فقط یک یا چند ریپازیتوری مدنظرتان را انتخاب کنید؛ گزینه <b>Only select repositories</b> را انتخاب کرده و در ادامه ریپازیتوری‌های مدنظرتان را در کشوی باز شده، انتخاب کنید.
در نهایت، بر روی گزینه <b>Install & Authorize</b> کلیک کنید تا ریپازیتوری‌های انتخابی، به حساب لیارا، متصل شوند:
</p>
<div className="h-2" />
<video
src="https://files.liara.ir/liara/docs/edit-access-to-github-account.mp4"
controls="controls"
className="block w-full"
width="100%"
></video>
<div className="h-2" />

<p>
در نهایت، بر روی برنامه خود کلیک کرده وارد صفحه <b>استقرار جدید</b> شوید؛ سپس در منوی <b>گیت‌هاب</b>، ریپازیتوری مدنظرتان را انتخاب کرده و پس از انتخاب نوع استقرار (استقرار در صورت CI موفق یا استقرار خودکار) و branch مدنظرتان، بر روی گزینه <b>اتصال به برنامه</b> کلیک کنید تا برنامه‌تان به ریپازیتوری مدنظرتان متصل شود.
در نهایت، کافیست تا یک‌بار بر روی گزینه <b>استقرار دستی</b> کلیک کنید تا آخرین commit شما در لیارا مستقر شود:
</p>
<div className="h-2" />
<video
src="https://files.liara.ir/liara/docs/deploy-project-using-github.mp4"
controls="controls"
className="block w-full"
width="100%"
></video>
<div className="h-2" />
<p>
پس از انجام کارهای فوق، با هر بار push کردن پروژه‌تان در ریپازیتوری انتخاب شده،
یک استقرار جدید مطابق آخرین تغییرات شما در لیارا، انجام خواهد شد.
</p>
<div className="h-2" />
<Alert variant="error">
<p>
برای قطع ارتباط برنامه و ریپازیتوری نیز، می‌توانید بر روی دکمه <b>قطع اتصال</b> کلیک کنید تا تغییرات جدید، مستقر نشوند.
</p>
</Alert>
<Alert variant="info">
<p>
در صورت انتخاب گزینه <b>استقرار در صورت CI موفق</b>، تمامی تست‌های تعریف شده باید pass شده و تیک سبز رنگ گرفته باشند، در غیر این‌صورت،
پروژه‌تان در لیارا، مستقر نخواهد شد.
</p>
</Alert>
<div className="h-1" />
</>

]}
/>

Expand Down
Loading

0 comments on commit 5bba1ca

Please sign in to comment.