From 104bdb70c285167784e150bf0a463b9827475d99 Mon Sep 17 00:00:00 2001 From: arkonsadter Date: Wed, 18 Mar 2026 18:58:35 +0600 Subject: [PATCH] CI simplify Drone pipeline --- .drone.yml | 183 ++++------------------------------------------------- 1 file changed, 11 insertions(+), 172 deletions(-) diff --git a/.drone.yml b/.drone.yml index 9b54446..1d283ec 100644 --- a/.drone.yml +++ b/.drone.yml @@ -4,42 +4,26 @@ name: code-quality trigger: event: - - push - pull_request steps: - - name: python-lint + - name: backend-sanity image: python:3.11-slim commands: - cd backend - - pip install flake8 - - flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics + - python -m py_compile main.py auth.py daemons.py oidc_config.py - - name: frontend-lint + - name: frontend-build-check image: node:20-alpine commands: - cd frontend - npm ci --silent - - npm run lint || echo "ESLint warnings found" - - - name: python-security - image: python:3.11-slim - commands: - - cd backend - - pip install safety - - safety check --file=requirements.txt --exit-zero || echo "Security warnings found" - - - name: frontend-security - image: node:20-alpine - commands: - - cd frontend - - npm ci --silent - - npm audit --audit-level=moderate || echo "Security warnings found" + - npm run build --- kind: pipeline type: docker -name: build-backend +name: build-images trigger: branch: @@ -50,19 +34,17 @@ trigger: - push - tag -depends_on: - - code-quality - steps: - name: build-backend-image image: plugins/docker settings: registry: registry.nevetime.ru repo: registry.nevetime.ru/mc-panel-backend + cache_from: + - registry.nevetime.ru/mc-panel-backend:latest tags: - latest - - ${DRONE_COMMIT_SHA:0:8} - - ${DRONE_BRANCH} + - ${DRONE_BUILD_NUMBER} auto_tag: true dockerfile: backend/Dockerfile context: backend @@ -70,164 +52,21 @@ steps: from_secret: docker_username password: from_secret: docker_password - build_args: - - BUILD_DATE=${DRONE_BUILD_CREATED} - - VCS_REF=${DRONE_COMMIT_SHA} - - VERSION=${DRONE_TAG:-${DRONE_BRANCH}} - when: - event: - - push - - tag ---- -kind: pipeline -type: docker -name: build-frontend - -trigger: - branch: - - main - - master - - develop - event: - - push - - tag - -depends_on: - - code-quality - -steps: - name: build-frontend-image image: plugins/docker settings: registry: registry.nevetime.ru repo: registry.nevetime.ru/mc-panel-frontend + cache_from: + - registry.nevetime.ru/mc-panel-frontend:latest tags: - latest - - ${DRONE_COMMIT_SHA:0:8} - - ${DRONE_BRANCH} + - ${DRONE_BUILD_NUMBER} auto_tag: true dockerfile: frontend/Dockerfile context: frontend - target: production username: from_secret: docker_username password: from_secret: docker_password - build_args: - - BUILD_DATE=${DRONE_BUILD_CREATED} - - VCS_REF=${DRONE_COMMIT_SHA} - - VERSION=${DRONE_TAG:-${DRONE_BRANCH}} - when: - event: - - push - - tag - ---- -kind: pipeline -type: docker -name: build-monolith - -trigger: - branch: - - main - - master - - develop - event: - - push - - tag - -depends_on: - - code-quality - -steps: - - name: build-monolith-image - image: plugins/docker - settings: - registry: registry.nevetime.ru - repo: registry.nevetime.ru/mc-panel - tags: - - latest - - ${DRONE_COMMIT_SHA:0:8} - - ${DRONE_BRANCH} - auto_tag: true - dockerfile: Dockerfile - context: . - username: - from_secret: docker_username - password: - from_secret: docker_password - build_args: - - BUILD_DATE=${DRONE_BUILD_CREATED} - - VCS_REF=${DRONE_COMMIT_SHA} - - VERSION=${DRONE_TAG:-${DRONE_BRANCH}} - when: - event: - - push - - tag - ---- -kind: pipeline -type: docker -name: deploy-staging - -trigger: - branch: - - develop - event: - - push - -depends_on: - - build-backend - - build-frontend - - build-monolith - -steps: - - name: deploy-separate-services - image: alpine:latest - environment: - STAGING_HOST: - from_secret: staging_host - STAGING_USER: - from_secret: staging_user - STAGING_KEY: - from_secret: staging_ssh_key - commands: - - apk add --no-cache openssh-client - - echo "Deploying separate services to staging..." - - echo "$STAGING_KEY" | base64 -d > /tmp/ssh_key - - chmod 600 /tmp/ssh_key - - ssh -o StrictHostKeyChecking=no -i /tmp/ssh_key $STAGING_USER@$STAGING_HOST "docker pull registry.nevetime.ru/mc-panel-backend:${DRONE_COMMIT_SHA:0:8} && docker pull registry.nevetime.ru/mc-panel-frontend:${DRONE_COMMIT_SHA:0:8}" - ---- -kind: pipeline -type: docker -name: deploy-production - -trigger: - ref: - - refs/tags/v* - event: - - tag - -depends_on: - - build-backend - - build-frontend - - build-monolith - -steps: - - name: deploy-separate-services - image: alpine:latest - environment: - PROD_HOST: - from_secret: production_host - PROD_USER: - from_secret: production_user - PROD_KEY: - from_secret: production_ssh_key - commands: - - apk add --no-cache openssh-client - - echo "Deploying separate services to production..." - - echo "$PROD_KEY" | base64 -d > /tmp/ssh_key - - chmod 600 /tmp/ssh_key - - ssh -o StrictHostKeyChecking=no -i /tmp/ssh_key $PROD_USER@$PROD_HOST "docker pull registry.nevetime.ru/mc-panel-backend:${DRONE_TAG} && docker pull registry.nevetime.ru/mc-panel-frontend:${DRONE_TAG}" \ No newline at end of file