فرآیند CI/CD
(Continuous integration and Continuous Delivery)راهاندازی CI/CD به وسیله GitHub
در صورتی که تمایلی به خواندن آموزش متنی ندارید میتوانید ویدیوی آموزشی زیر را مشاهده کنید.
برای راهاندازی CI/CD در GitHub از قابلیت GitHub Actions استفاده خواهیم کرد و شما نیز باید مراحل زیر را دنبال کنید.
در ابتدا یک پوشه با نام github. در مسیر اصلی پروژهتان ایجاد کرده و سپس پوشهی دیگری با نام workflows را داخل آن ایجاد کنید تا مسیر .github/workflows در پروژهی شما شکل بگیرد. در این مسیر میتوان Actionهای مورد نظر را تعریف کرد بنابراین یک فایل با نام liara.yaml را در این مسیر ایجاد کرده و قطعهکد زیر را در این فایل قرار دهید:
name: CD-Liara
on:
push:
branches:
- master
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: "18"
- name: update-liara
env:
LIARA_TOKEN: ${{ secrets.LIARA_API_TOKEN }}
run: |
npm i -g @liara/cli@4
liara deploy --app="APP_NAME" --api-token="$LIARA_TOKEN" --detach
همانطور که مشاهده می کنید، در قطعهکد فوق تمام مراحل لازم برای استقرار یک پروژه در لیارا تعریف شده است. در ابتدا ابزار Liara CLI نصب شده و سپس دستور liara deploy اجرا میشود.
پس از شخصیسازی مقدار APP_NAME در فایل liara.yaml باید کلید دسترسی به API حسابتان را در بخش Secret تنظیمات ریپازیتوری GitHub اضافه کنید.
برای این کار وارد تنظیمات ریپازیتوری شوید و از منوی Secrets، روی گزینهی Actions کلیک کنید.

سپس برای تعریف یک Secret جدید، روی گزینهی New repository secret کلیک کنید. نام این Secret را LIARA_API_TOKEN و مقدار آن را از صفحهی کلید دسترسی به API کپی کرده و در بخش Value قرار داده و بر روی گزینهی Add secret کلیک کنید.

در آخر با Push کردن فایل .github/workflows/liara.yaml در ریپازیتوری GitHub متوجه خواهید شد که یک Pipeline بهصورت خودکار در تب Action ریپازیتوری شما اجرا شده است و شما نیز میتوانید مراحل استقرار پروژهی خود را در صفحهی تاریخچه دنبال کنید.
راهاندازی CI/CD به ازای هر branch
در برخی موارد، شاید لازم باشد چند محیط جداگانه برای برنامهتان ایجاد کنید. به عنوان مثال ممکن است برنامهتان در سه محیط test, staging و production قرارداشته باشد و بخواهید برای هر محیط یک CI/CD جدا راهاندازی کنید. در این صورت، ابتدا باید سه اپ و سه branch جدا ایجاد کنید. در این حالت، هر branch به یک اپ اشاره دارد. سپس میبایست فایل .github/workflows/liara.yaml را به شکل زیر تغییر دهید:
name: CD-Liara
on:
push:
branches:
- master
- 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@4
- 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" --port 3000 --detach
elif [ ${{ github.ref }} == 'refs/heads/test' ]; then
liara deploy --app="my-test-app" --api-token="$LIARA_TOKEN" --port 3000 --detach
elif [ ${{ github.ref }} == 'refs/heads/staging' ]; then
liara deploy --app="my-staging-app" --api-token="$LIARA_TOKEN" --port 3000 --detach
fi