diff --git a/.drone.yml b/.drone.yml index 47dffd5..9b54446 100644 --- a/.drone.yml +++ b/.drone.yml @@ -4,37 +4,37 @@ name: code-quality trigger: event: - - push - - pull_request + - push + - pull_request steps: -- name: python-lint - image: python:3.11-slim - commands: - - cd backend - - pip install flake8 - - flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics + - name: python-lint + image: python:3.11-slim + commands: + - cd backend + - pip install flake8 + - flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics -- name: frontend-lint - image: node:20-alpine - commands: - - cd frontend - - npm ci --silent - - npm run lint || echo "ESLint warnings found" + - name: frontend-lint + 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: 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" + - name: frontend-security + image: node:20-alpine + commands: + - cd frontend + - npm ci --silent + - npm audit --audit-level=moderate || echo "Security warnings found" --- kind: pipeline @@ -43,42 +43,42 @@ name: build-backend trigger: branch: - - main - - master - - develop + - main + - master + - develop event: - - 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 - tags: - - latest - - ${DRONE_COMMIT_SHA:0:8} - - ${DRONE_BRANCH} - auto_tag: true - dockerfile: backend/Dockerfile - context: backend - 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 +depends_on: + - code-quality + +steps: + - name: build-backend-image + image: plugins/docker + settings: + registry: registry.nevetime.ru + repo: registry.nevetime.ru/mc-panel-backend + tags: + - latest + - ${DRONE_COMMIT_SHA:0:8} + - ${DRONE_BRANCH} + auto_tag: true + dockerfile: backend/Dockerfile + context: backend + 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 @@ -86,43 +86,43 @@ name: build-frontend trigger: branch: - - main - - master - - develop + - 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 - tags: - - latest - - ${DRONE_COMMIT_SHA:0:8} - - ${DRONE_BRANCH} - 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 +depends_on: + - code-quality + +steps: + - name: build-frontend-image + image: plugins/docker + settings: + registry: registry.nevetime.ru + repo: registry.nevetime.ru/mc-panel-frontend + tags: + - latest + - ${DRONE_COMMIT_SHA:0:8} + - ${DRONE_BRANCH} + 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 @@ -130,42 +130,42 @@ name: build-monolith trigger: branch: - - main - - master - - develop + - 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 +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 @@ -173,31 +173,31 @@ name: deploy-staging trigger: branch: - - develop + - develop event: - - push + - push depends_on: -- build-backend -- build-frontend -- build-monolith + - 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}" + - 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 @@ -206,28 +206,28 @@ name: deploy-production trigger: ref: - - refs/tags/v* + - refs/tags/v* event: - - tag + - tag depends_on: -- build-backend -- build-frontend -- build-monolith + - 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 + - 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