kind: pipeline
type: docker
name: automated-api

volumes:
  - name: node_modules
    host:
      path: /usr/local/blackend/node_modules
  - name: pnpm_cache
    host:
      path: /usr/local/blackend/pnpm_cache

services:
  - name: docker
    image: docker:dind
    privileged: true
    environment:
      DOCKER_TLS_CERTDIR: ""
    volumes:
      - name: docker_sock
        path: /var/run/docker.sock

steps:
  - name: build-docker
    image: plugins/docker
    settings:
      dockerfile: Dockerfile
      repo: automated-api
      tags:
        - latest
        - ${DRONE_COMMIT_SHA:0:8}
      dry_run: true
    volumes:
      - name: node_modules
        path: /drone/src/node_modules
      - name: pnpm_cache
        path: /root/.local/share/pnpm/store
      - name: docker_sock
        path: /var/run/docker.sock

  - name: deploy
    image: docker:dind
    commands:
      - docker stop nodejs-app || true
      - docker rm nodejs-app || true
      - >
        docker run -d
        --name nodejs-app
        --restart always
        -p 8001:8001
        -v /usr/local/blackend/node_modules:/app/node_modules
        -v /usr/local/blackend/pnpm_cache:/root/.local/share/pnpm/store
        -e NODE_ENV=production
        -e PORT=8001
        your-registry/nodejs-app:latest
    volumes:
      - name: docker_sock
        path: /var/run/docker.sock

volumes:
  - name: docker_sock
    host:
      path: /var/run/docker.sock

trigger:
  branch:
    - main
    - develop
  event:
    - push
    - pull_request