Weblines Cloudمستندات

دیپلوی از CI (GitHub Actions، GitLab، همگیت)

بعد از گذشتنِ تست‌ها، سرویس را خودکار روی وب‌لاینز دیپلوی کنید: GitHub Action ِ آماده، قالبِ GitLab CI برای GitLab و همگیت، یا فقط یک curl به Deploy Hook.

آخرین به‌روزرسانی:

دو راه دارید:

راهکی
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 اضافه کنید:

yaml
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:

yaml
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 استفاده کنید:

yaml
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 ِ سازمان با نامِ کلید ثبت می‌شود.

جوابت را پیدا نکردی؟

تیکت از پنل یا تماس در ساعاتِ کاری: ۰۲۱-۸۸۷۱۷۴۵۱

ثبتِ تیکت