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/ops/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/ops/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 environment: GITEA_TOKEN: from_secret: gitea_token settings: host: 100.116.40.103 username: root key: from_secret: ssh_private_key envs: - GITEA_TOKEN port: 22 script: - cd /opt/server-manager - curl -sfH "Authorization:token $GITEA_TOKEN" https://git.jiosii.com/api/v1/repos/ops/server-manager/raw/docker-compose.yml -o docker-compose.yml - docker compose pull - docker compose up -d --remove-orphans - docker image prune -f depends_on: - backend-docker - frontend-docker when: branch: - main event: - push