Skip to content

Commit

Permalink
update paas docs
Browse files Browse the repository at this point in the history
  • Loading branch information
A-Najmabadi committed Jun 24, 2024
1 parent eacf68e commit 9fa0384
Show file tree
Hide file tree
Showing 4 changed files with 452 additions and 53 deletions.
256 changes: 255 additions & 1 deletion src/components/Sidebar/data.js
Original file line number Diff line number Diff line change
Expand Up @@ -257,8 +257,262 @@ export default {
{
title: "به‌روزرسانی پلتفرم",
icon: <GoSync />,
link: "/paas/update"
},
{
title: "انتقال پلتفرم",
icon: <GoPackageDependents />,
link: "/paas/move"
}
],
update: [
{
badge: (
<div className="flex items-center gap-2">
<GoContainer />
پلتفرم
</div>
)
},
{
title: "برگشت به خانه",
icon: <GoArrowRight />,
link: "/"
},
{
title: "درباره سرویس پلتفرم",
icon: <GoInfo />,
link: "/paas/about"
},
{
hr: true
},
{
badge: "پلتفرم‌های قابل ارائه"
},
{
title: "NodeJS",
icon: <IconContainer alt="nodejs" />,
link: "/paas/nodejs/getting-started"
},
{
title: "NextJS",
icon: <IconContainer alt="next" />,
link: "/paas/nextjs/getting-started"
},
{
title: "Laravel",
icon: <IconContainer alt="laravel" />,
link: "/paas/laravel/getting-started"
},
{
title: "PHP",
icon: <IconContainer alt="php" />,
link: "/paas//getting-started"
},
{
title: "Django",
icon: <IconContainer alt="django" />,
link: "/paas//getting-started"
},
{
title: "Flask",
icon: <IconContainer alt="flask" />,
link: "/paas//getting-started"
},
{
title: "NET.",
icon: <IconContainer alt="netcore" />,
link: "/paas//getting-started"
},
{
title: "React",
icon: <IconContainer alt="react" />,
link: "/paas//getting-started"
},
{
title: "Angular",
icon: <IconContainer alt="angularjs" />,
link: "/paas//getting-started"
},
{
title: "Vue",
icon: <IconContainer alt="vue" />,
link: "/paas//getting-started"
},
{
title: "Static",
icon: <IconContainer alt="HTML5" />,
link: "/paas//getting-started"
},
{
title: "Golang",
icon: <IconContainer alt="go" />,
link: "/paas//getting-started"
},
{
title: "Docker",
icon: <IconContainer alt="docker" />,
link: "/paas//getting-started"
},
{
hr: true
},
{
title: "جزئیات پلتفرم",
icon: <GoNote />,
link: "/paas/details/about"
},
{
title: "مدیریت دیسک‌",
icon: <GoCodespaces />,
link: "/paas/disks/about"
},
{
title: "مدیریت دامنه‌",
icon: <GoGlobe />,
link: "/paas/domains/about"
},
{
title: "قابلیت CI/CD",
icon: <GoWorkflow />,
link: "/paas/cicd/about"
},
{
hr: true
},
{
title: "به‌روزرسانی پلتفرم",
icon: <GoSync />,
link: "/paas/update"
},
{
title: "انتقال پلتفرم",
icon: <GoPackageDependents />,
link: "/"
}
],
move: [
{
badge: (
<div className="flex items-center gap-2">
<GoContainer />
پلتفرم
</div>
)
},
{
title: "برگشت به خانه",
icon: <GoArrowRight />,
link: "/"
},
{
title: "درباره سرویس پلتفرم",
icon: <GoInfo />,
link: "/paas/about"
},
{
hr: true
},
{
badge: "پلتفرم‌های قابل ارائه"
},
{
title: "NodeJS",
icon: <IconContainer alt="nodejs" />,
link: "/paas/nodejs/getting-started"
},
{
title: "NextJS",
icon: <IconContainer alt="next" />,
link: "/paas/nextjs/getting-started"
},
{
title: "Laravel",
icon: <IconContainer alt="laravel" />,
link: "/paas/laravel/getting-started"
},
{
title: "PHP",
icon: <IconContainer alt="php" />,
link: "/paas//getting-started"
},
{
title: "Django",
icon: <IconContainer alt="django" />,
link: "/paas//getting-started"
},
{
title: "Flask",
icon: <IconContainer alt="flask" />,
link: "/paas//getting-started"
},
{
title: "NET.",
icon: <IconContainer alt="netcore" />,
link: "/paas//getting-started"
},
{
title: "React",
icon: <IconContainer alt="react" />,
link: "/paas//getting-started"
},
{
title: "Angular",
icon: <IconContainer alt="angularjs" />,
link: "/paas//getting-started"
},
{
title: "Vue",
icon: <IconContainer alt="vue" />,
link: "/paas//getting-started"
},
{
title: "Static",
icon: <IconContainer alt="HTML5" />,
link: "/paas//getting-started"
},
{
title: "Golang",
icon: <IconContainer alt="go" />,
link: "/paas//getting-started"
},
{
title: "Docker",
icon: <IconContainer alt="docker" />,
link: "/paas//getting-started"
},
{
hr: true
},
{
title: "جزئیات پلتفرم",
icon: <GoNote />,
link: "/paas/details/about"
},
{
title: "مدیریت دیسک‌",
icon: <GoCodespaces />,
link: "/paas/disks/about"
},
{
title: "مدیریت دامنه‌",
icon: <GoGlobe />,
link: "/paas/domains/about"
},
{
title: "قابلیت CI/CD",
icon: <GoWorkflow />,
link: "/paas/cicd/about"
},
{
hr: true
},
{
title: "به‌روزرسانی پلتفرم",
icon: <GoSync />,
link: "/paas/update"
},
{
title: "انتقال پلتفرم",
icon: <GoPackageDependents />,
Expand Down Expand Up @@ -552,7 +806,7 @@ export default {
{
title: "آشنایی با CI/CD",
icon: <GoInfo />,
link: "/paas/domains/about"
link: "/paas/cicd/about"
},
{
hr: true
Expand Down
73 changes: 21 additions & 52 deletions src/pages/paas/cicd/gitlab.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ import {
</Alert>

<video
src="https://files.liara.ir/liara/CICD/cicd-github.mp4"
src="https://files.liara.ir/liara/CICD/cicd-gitlab.mp4"
controls="controls"
className="block w-full"
width="100%" />
Expand Down Expand Up @@ -64,67 +64,36 @@ deploy:
در فیلد <Important>branches</Important> باید نام branch مدنظرتان را وارد کنید تا CI/CD روی آن، اعمال شود.
</p>
</Alert>
<div className="h-2" />
در حین استفاده از Gitlab توجه به نکات زیر، حائز اهمیت است:
<ul>
<li>ایران در لیست تحریم سرویس GitLab قرار دارد بنابراین برای استقرار پروژه‌های خود در لیارا باید از پروکسی‌ای که در قطعه‌کد فوق قرار داده شده استفاده کنید.</li>
<li>اگر از سرویس Gitlab.com استفاده نمی‌کنید و GitLab را بر روی سرورهای شخصی راه‌اندازی کرده‌اید، نیازی به تنظیم پروکسی نیست.</li>
</ul>
<div className="h-4" />

<></>
در قطعه‌کد فوق تمام مراحل لازم برای استقرار یک پروژه در لیارا تعریف شده است. در ابتدا ابزار Liara CLI نصب شده و پس از تنظیم پروکسی برای استقرار پروژه، دستور <Important>liara deploy</Important> اجرا می‌شود.
پس از شخصی‌سازی مقدار <Important>APP_NAME</Important> در فایل <Important>gitlab-ci.yml.</Important> باید <a href="https://console.liara.ir/API" className="blue-link">کلید دسترسی به API</a> حساب‌تان را در بخش **Variables** تنظیمات CI/CD ریپازیتوری GitLab اضافه کنید.
<div className="h-4" />
برای این کار وارد تنظیمات CI/CD ریپازیتوری شوید و کمی به پایین اسکرول کنید. در بخش **Variables** بر روی گزینه‌ی *Expand* کلیک کنید تا گزینه‌ی **Add Variable** نمایش داده شود.

<div className="h-4" />
<img src="https://files.liara.ir/liara/docs/add-new-secret-in-github-action.png" alt="add-new-secret-in-github-action"/>
<img src="https://files.liara.ir/liara/docs/gitlab-ci-cd-variables-settings.png" alt="gitlab ci cd variables settings" />
<div className="h-4" />

در آخر با push کردن فایل <Important>github/workflows/liara.yaml.</Important> در ریپازیتوری GitHub متوجه خواهید شد که یک pipeline به‌صورت خودکار در تب Action ریپازیتوری شما اجرا شده است و شما نیز می‌توانید مراحل استقرار پروژه‌ی خود را در صفحه‌ی تاریخچه دنبال کنید.
حال برای تعریف یک Variable جدید، روی گزینه‌ی **Add Variable** کلیک کنید. نام (Key) این Variable را **TOKEN** و مقدار آن را از صفحه‌ی <a href="https://console.liara.ir/API" className="blue-link">کلید دسترسی به API</a> کپی کرده و در بخش **Value** قرار دهید. پس از انتخاب گزینه‌های **Protect variable** و **Mask variable**، بر روی گزینه‌ی **Add variable** کلیک کنید.

<div className='h-1' />
<Alert variant="success">
<div className="h-4" />
<img src="https://files.liara.ir/liara/docs/add-token-variable-in-gitlab-cicd-settings.png" alt="add token variable in gitlab cicd settings" />
<div className="h-4" />

<Alert variant="info">
<p>
ریپازیتوری <a href="https://github.com/liara-cloud/github-cd-example" className="blue-link">liara-cloud/github-cd-example</a> شامل یک نمونه برنامه‌ی کامل است که می‌تواند از طریق CI/CD در لیارا مستقر شود.
با انتخاب گزینه‌ی **Protect variable** متغیر TOKEN فقط در branchها و tagهای protected در دسترس خواهد بود.
</p>
</Alert>

در آخر با push کردن فایل <Important>gitlab-ci.yml.</Important> در ریپازیتوری GitLab متوجه خواهید شد که یک pipeline به‌صورت خودکار در منوی CI/CD ریپازیتوری شما اجرا شده است و شما نیز می‌توانید مراحل استقرار پروژه‌ی خود را در صفحه‌ی تاریخچه دنبال کنید.

<Section id="multiple-branches" title="راه‌اندازی CI/CD به ازای هر branch" />
در برخی موارد، لازم است چند محیط جداگانه برای برنامه‌تان ایجاد کنید. به عنوان مثال ممکن است برنامه‌تان در سه محیط test, staging و production قرارداشته باشد و بخواهید برای هر محیط یک CI/CD جدا راه‌اندازی کنید. در این صورت، ابتدا باید سه برنامه و سه branch جدا ایجاد کنید. در این حالت، هر branch به یک برنامه اشاره دارد. سپس می‌بایست فایل <Important>github/workflows/liara.yaml.</Important> را به شکل زیر بنویسید:

<div className='h-2' />
<div dir="ltr">
<Highlight className="yml">
{`name: CD-Liara
on:
push:
branches:
- main
- test
- staging
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: "18"
- name: Install Liara CLI
run: npm i -g @liara/cli@5
- name: Deploy
env:
LIARA_TOKEN: \${{ secrets.LIARA_API_TOKEN }}
run: |
if [ \${{ github.ref }} == 'refs/heads/master' ]; then
liara deploy --app="my-production-app" --api-token="$LIARA_TOKEN" --no-app-logs
elif [ \${{ github.ref }} == 'refs/heads/test' ]; then
liara deploy --app="my-test-app" --api-token="$LIARA_TOKEN" --no-app-logs
elif [ \${{ github.ref }} == 'refs/heads/staging' ]; then
liara deploy --app="my-staging-app" --api-token="$LIARA_TOKEN" --no-app-logs
fi`}
</Highlight>
</div>
<div className='h-2' />

توجه داشته باشید که در این مثال، branch های master, test و staging به ترتیب برای محیط‌های production, test و staging انتخاب‌شده اند. شما می‌توانید با توجه به برنامه خود، نام branch ها را تغییر دهید.
در سه دستور <Important>liara deploy</Important> نام برنامه‌ها برای محیط‌های production, test و staging به ترتیب my-production-app, my-test-app و my-staging-app انتخاب‌‌شده است. شما باید با توجه برنامه‌‌های خود، نام برنامه‌ها را تغییر دهید.

</Layout>
Loading

0 comments on commit 9fa0384

Please sign in to comment.