فرآیند CI/CD
(Continuous integration and Continuous Delivery)راهاندازی CI/CD به وسیله GitHub
برای راه اندازی CI/CD در GitHub به GitHub Actions نیاز دارید. از اینجا میتوانید مستندات این ابزار را مطالعه کنید. در پایین به صورت کلی مراحل ایجاد CI/CD به وسیله GitHub آمده است:
گام اول) در ابتدا نیاز دارید که در ریشه برنامهیتان دایرکتوری github. و پوشه workflows را داخل آن ایجاد کنید:.github/workflows/. شما در این دایرکتوری تمام Action های خود را تعریف میکنید. برای مثال فرض میکنیم فایلی به نام liara.yaml را برای استقرار در لیارا در نظر گرفته اید:
name: CD-Example
on:
push:
branches: [master]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v1
with:
node-version: "12"
- name: update-liara
env:
LIARA_TOKEN: ${{ secrets.LIARA_API_TOKEN }}
run: |
npm i -g @liara/cli@2
liara deploy --api-token="$LIARA_TOKEN" --region iran --detach
همانطور که میبینید شما در این فایل همه اتفاقات را تعریف میکنید. مثلا در فایل بالا ابزار Liara CLI را ابتدا نصب کردهایم و سپس در ریشه برنامه دستور deploy را اجرا کردهایم. در همین فایل میشود Test ها را اجرا کرد و مطمئن شد که برنامه سالم است و اجازه آپدیت شدن دارد. GitHub Actions امکانات بسیار خوبی برای CI/CD دارد و توصیه میکنیم حتما مستندات آن را مطالعه کنید.
گام دوم) لیارا برای اجرای دستور deploy نیاز به نام یا همان شناسه برنامه و api-token دارد. البته اگر از liara.json استفاده کرده باشید نیازی به بخش شناسه نیست. کلید یا همان api-token شما در صفحه API در حساب کاربری شما وجود دارد که به راحتی میتوانید آن را کپی کنید. سپس برای این که بتوانید از این اطلاعات در liara.yaml استفاده کنید باید این اطلاعات را به بخش Secrets در GitHub منتقل کنید. میتوانید درباره این موضوع در مستندات Secrets and Variables بیشتر مطالعه کنید. به صورت کلی شما هر key-value ای را که در بخش Secrets تعریف کنید، در فایل liara.yaml قابل استفاده میشود. مثلا در فایل بالا ما یک Secret با نام LIARA_API_TOKEN داریم.
گام سوم) بعد از تعریف کردن همه موارد بالا با Push کردن فایل .github/workflows/liara.yaml برنامه شما وارد یک فرایند CI/CD میشود. لیارا از هر Commit Message شما برای توضیح هر استقرار استفاده میکند. استفاده از Commit Message های معنادار میتواند به شما در کار تیمی برای راحتتر فهمیدن علت هر استقرار کمک کند.
