kind: pipeline type: docker name: server-manager trigger: branch: - main event: - push - pull_request steps: # ─── Backend ─────────────────────────────────────────────────────────────── - name: backend-lint image: node:20-alpine commands: - cd backend - npm ci - npm run lint || true - name: backend-build image: node:20-alpine commands: - cd backend - npm ci - npm run build depends_on: - backend-lint - name: backend-docker image: plugins/docker settings: registry: git.jiosii.com username: from_secret: gitea_username password: from_secret: gitea_token repo: git.jiosii.com/admin/server-manager-backend context: backend dockerfile: backend/Dockerfile tags: - latest - ${DRONE_COMMIT_SHA:0:8} depends_on: - backend-build when: branch: - main event: - push # ─── Frontend ────────────────────────────────────────────────────────────── - name: frontend-lint image: node:20-alpine commands: - cd frontend - npm ci - npm run lint || true - name: frontend-build image: node:20-alpine commands: - cd frontend - npm ci - npm run build depends_on: - frontend-lint - name: frontend-docker image: plugins/docker settings: registry: git.jiosii.com username: from_secret: gitea_username password: from_secret: gitea_token repo: git.jiosii.com/admin/server-manager-frontend context: frontend dockerfile: frontend/Dockerfile tags: - latest - ${DRONE_COMMIT_SHA:0:8} depends_on: - frontend-build when: branch: - main event: - push # ─── Deploy ──────────────────────────────────────────────────────────────── - name: deploy image: appleboy/drone-ssh settings: host: 100.116.40.103 username: root key: from_secret: ssh_private_key port: 22 script: - cd /opt/server-manager - docker compose pull - docker compose up -d --remove-orphans - docker image prune -f depends_on: - backend-docker - frontend-docker when: branch: - main event: - push