---

kind: pipeline
name: deployment

steps:
- name: build
  image: node
  commands:
  - npm ci
  - npm run build
- name: test
  image: node
  commands:
  - npm test
- name: deploy to prod
  image: drillster/drone-rsync
  secrets: [ ssh_key, bot_token_prod ]
  settings:
    hosts:
      - 192.168.68.120
    user: vylpes
    key:
      from_secret: ssh_key
    source: .
    target: ~/apps/card-drop/card-drop_prod
    recursive: true
    script:
      - export PATH="$HOME/.yarn/bin:$PATH"
      - export PATH="$HOME/.nodeuse/bin:$PATH"
      - export BOT_TOKEN="$BOT_TOKEN_PROD"
      - cd ~/apps/card-drop/card-drop_prod
      - docker compose --file docker-compose.prod.yml up -d
      - sleep 10
      - cp .prod.env .env
      - pm2 restart card-drop_prod || pm2 start --name card-drop_prod dist/bot.js

trigger:
  event:
  - tag

---

kind: pipeline
name: staging

steps:
- name: build
  image: node
  commands:
  - npm ci
  - npm run build
- name: test
  image: node
  commands:
  - npm test
- name: deploy to stage
  image: drillster/drone-rsync
  secrets: [ ssh_key, bot_token_stage ]
  settings:
    hosts:
      - 192.168.68.120
    user: vylpes
    key:
      from_secret: ssh_key
    source: .
    target: ~/apps/card-drop/card-drop_stage
    recursive: true
    script:
      - export PATH="$HOME/.yarn/bin:$PATH"
      - export PATH="$HOME/.nodeuse/bin:$PATH"
      - export BOT_TOKEN="$BOT_TOKEN_STAGE"
      - cd ~/apps/card-drop/card-drop_stage
      - docker compose --file docker-compose.stage.yml up -d
      - sleep 10
      - cp .stage.env .env
      - pm2 restart card-drop_stage || pm2 start --name card-drop_stage dist/bot.js

trigger:
  branch:
  - develop
  event:
  - push

---

kind: pipeline
name: integration

steps:
- name: build
  image: node
  commands:
  - npm ci
  - npm run build

- name: lint
  image: node
  commands:
  - npm run lint

- name: test
  image: node
  commands:
  - npm test

trigger:
  branch:
  - hotfix/*
  - feature/*
  - renovate/*
  event:
  - push