Skip to content

Commit

Permalink
add dotnet/ github-deployment docs
Browse files Browse the repository at this point in the history
  • Loading branch information
A-Najmabadi committed Oct 3, 2024
1 parent 18c2451 commit 816b37d
Show file tree
Hide file tree
Showing 2 changed files with 422 additions and 2 deletions.
252 changes: 251 additions & 1 deletion src/pages/paas/dotnet/how-tos/deploy-app.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ import Head from "next/head";
<hr className="mb-2" />

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

<>
<p>
پس از <a className='text-[#2196f3] ' href="../create-app">ساخت برنامه</a>، باید در مسیر اصلی پروژه، یک فایل به نام <Important>gitignore.</Important> ایجاد کنید و درون آن، اسامی تمامی فایل‌ها یا پوشه‌هایی که قصد ندارید در لیارا آپلود شوند را، وارد کنید؛ به عنوان مثال، نیازی به آپلود دایرکتوری‌های obj و bin به همراه محتوای آن‌ها نیست؛ چرا که لیارا در حین استقرار برنامه، آن‌ها را برای شما می‌سازد؛ پس بایستی اسامی این دایرکتوری‌ها در فایل فوق، نوشته شود؛ قطعه کد قرار گرفته در لینک زیر، یک <Important>gitignore.</Important> عالی برای برنامه‌های NET. است که می‌توانید از آن، استفاده کنید:
</p>
<div className="h-2" />
<Link href="https://github.com/liara-cloud/gitignore-templates/blob/master/dotnet/.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> برای برنامه‌های NET.
</h4>
</div>
<GoArrowLeft className="ml-1" />
</Card>
</Link>
<div className="h-2" />
<p>
همچنین، پروژه شما باید شامل یک فایل با پسوند <Important>csproj.</Important> باشد؛
فایل <Important>csproj.</Important> به طور خودکار با ایجاد پروژه ساخته می‌شود و شامل تنظیمات و اطلاعاتی مانند نام پروژه، نسخه NET. مورد استفاده، وابستگی‌ها و ... می‌باشد. به عنوان مثال، محتوای یک فایل csproj. برای یک پروژه کنسولی می‌تواند به صورت زیر باشد:
</p>
<div className="h-4" />
<div dir='ltr'>
<Highlight className="csproj">
{`<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net6.0</TargetFramework>
</PropertyGroup>
</Project>
`}
</Highlight>
</div>
<div className='h-4' />
<p>
در ادامه برای تعیین پورتی که برنامه‌تان در آن به درخواست کاربران listen می‌کند؛ بایستی در مسیر اصلی پروژه، یک فایل به نام <Important>liara.json</Important> ایجاد کنید
و قطعه کد زیر را در آن قرار دهید (مقدار فیلد پورت را باید با توجه به پورت اصلی برنامه، بنویسید):
</p>
<div className="h-4" />
<div dir='ltr'>
<Highlight className="json">
{`{
"port": 80,
}`}
</Highlight>
</div>
<div className='h-4' />

<p>
برای تعیین نسخه dotnet برنامه خود نیز، کافیست تا در فایل <Important>liara.json</Important> فیلد <Important>version</Important> را قرار دهید:
</p>
<div className="h-4" />
<div dir='ltr'>
<Highlight className="json">
{`{
"dotnet": {
"version": "6.0"
}
}`}
</Highlight>
</div>
<Alert variant='success'>همچنین بخوانید: <a className="text-[#2196f3] " href="../choose-version">نسخه‌های قابل ارائه NET. در لیارا</a></Alert>
<p>
به صورت پیش‌فرض، منطقه‌ی زمانی برنامه‌تان بر روی Asia/Tehran تنظیم شده است؛ برای تغییر مقدار پیش‌فرض، می‌توانید از پارامتر <Important>timezone</Important> در فایل <Important>liara.json</Important> استفاده کنید؛ به عنوان مثال:
</p>
<div className="h-4" />
<div dir='ltr'>
<Highlight className="json">
{`{
"dotnet": {
"timezone": "America/Los_Angeles"
}
}`}
</Highlight>
</div>
<div className='h-4' />
<p>
لیارا نام فایل Dll نهایی پس از build را به صورت خودکار تشخیص می‌دهد. اما در صورتی که پروژه‌ی شما متشکل از چندین پروژه‌ی دیگر هم باشد، لازم است که نام فایل را بدون پسوند در فیلد <Important>finalDllName</Important> در فایل <Important>liara.json</Important> وارد کنید، به عنوان مثال:
</p>
<div className="h-4" />
<div dir='ltr'>
<Highlight className="json">
{`{
"dotnet": {
"finalDllName": "MyProjectName"
}
}`}
</Highlight>
</div>
<div className='h-4' />
<p>
در ادامه، لیارا فایل csproj. برنامه‌ی شما را به صورت خودکار تشخیص می‌دهد. اما برای اطمینان بیشتر از استقرار موفق، می‌توانید مسیر این فایل را به صورت نسبی، در فیلد <Important>csprojectFile</Important> در فایل <Important>liara.json</Important> مشخص کنید؛ به عنوان مثال:

</p>
<div className="h-4" />
<div dir='ltr'>
<Highlight className="json">
{`{
"dotnet": {
"csprojectFile": "path/to/folder/my.csproj"
}
}`}
</Highlight>
</div>
<div className='h-4' />
<p>
در نهایت، یک فایل <Important>liara.json</Important> می‌تواند مانند قطعه کد زیر باشد:
</p>
<div className="h-4" />
<div dir='ltr'>
<Highlight className="json">
{`{
"port": 80,
"dotnet": {
"version": "6.0",
"timezone": "America/Los_Angeles",
}
}`}
</Highlight>
</div>
<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 816b37d

Please sign in to comment.