دو راه دارید:
| راه | کی |
|---|---|
| CLI یا GitHub Action | میخواهید لاگِ build در خودِ job دیده شود و اگر دیپلوی شکست خورد، pipeline هم قرمز شود. |
| Deploy Hook | فقط میخواهید دیپلوی شروع شود؛ یک curl و بدونِ نصبِ چیزی. runner ِ داخلِ ایران که به GitHub دسترسی ندارد هم با این کار میکند. |
در هر دو، سرویس با تنظیماتِ گیتِ خودش در وبلاینز (ریپو و برنچ) build میشود؛ پس job لازم نیست کد را بفرستد. تستها را در مرحلهی قبل اجرا کنید و دیپلوی را بعد از آن بگذارید.
کلیدِ API#
در کنسول Settings → API keys → New key با دسترسیِ read و deploy بسازید (بیشتر لازم نیست). آن را در CI بهعنوانِ secret با نامِ WEBLINES_TOKEN ذخیره کنید؛ هیچوقت در ریپو commit نکنید.
GitHub Actions#
secret را در Settings → Secrets and variables → Actions بگذارید و این فایل را با نامِ .github/workflows/deploy.yml اضافه کنید:
name: Deploy
on:
push:
branches: [main]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: weblines-cloud/deploy-action@v1
with:
app: my-app
token: ${{ secrets.WEBLINES_TOKEN }}
ورودیهای اختیاری: wait: "false" (منتظرِ پایانِ build نماند)، force: "true" (build بدونِ cache). کدِ اکشن: github.com/weblines-cloud/deploy-action.
GitLab و همگیت#
متغیرِ WEBLINES_TOKEN را در Settings → CI/CD → Variables بگذارید (Masked و Protected). بعد در .gitlab-ci.yml:
stages: [test, deploy]
deploy:
stage: deploy
image: node:20-alpine
rules:
- if: $CI_COMMIT_BRANCH == "main"
before_script:
- npm install -g https://codeload.github.com/weblines-cloud/cli/tar.gz/v0.1.1
script:
- weblines deploy my-app
اگر runner به GitHub دسترسی ندارد (بعضی runnerهای داخلِ ایران)، از Deploy Hook استفاده کنید:
deploy:
stage: deploy
image: curlimages/curl:latest
rules:
- if: $CI_COMMIT_BRANCH == "main"
script:
- curl -fsS -X POST "$WEBLINES_DEPLOY_HOOK"
WEBLINES_DEPLOY_HOOK آدرسِ مخفیِ Deploy Hook ِ اپ است که در صفحهی اپ ساخته میشود؛ مثلِ رمز با آن رفتار کنید.
چند نکته#
- اگر کلید اشتباه یا منقضی باشد، job با پیامِ «Check the API key in WEBLINES_TOKEN» شکست میخورد.
weblines deployتا پایانِ build لاگ را نشان میدهد و اگر build شکست بخورد با کدِ1تمام میشود، پس pipeline قرمز میشود.- هر دیپلوی در Activity ِ سازمان با نامِ کلید ثبت میشود.
