kind: secret
name: POSTGRES_PASSWORD
get:
  path: secrets
  name: POSTGRES_PASSWORD
---
kind: secret
name: CLICKHOUSE_PASSWORD
get:
  path: secrets
  name: CLICKHOUSE_PASSWORD
---
kind: secret
name: SMTP_HOST
get:
  path: secrets
  name: SMTP_HOST
---
kind: secret
name: SMTP_USERNAME
get:
  path: secrets
  name: SMTP_USERNAME
---
kind: secret
name: SMTP_PASSWORD
get:
  path: secrets
  name: SMTP_PASSWORD
---
kind: pipeline
type: docker
name: healthcheck

trigger:
  branch:
    - master

services:
  - name: kubectl-proxy-postgres
    image: bitnami/kubectl
    network_mode: host
    environment:
      KUBE_CONFIG:
        from_secret: KUBE_CONFIG
    commands:
      - echo "$$KUBE_CONFIG" | base64 -d > /.kube/config
      - kubectl -n databases port-forward pod/postgres-0 5432:5432
  - name: kubectl-proxy-clickhouse
    image: bitnami/kubectl
    network_mode: host
    environment:
      KUBE_CONFIG:
        from_secret: KUBE_CONFIG
    commands:
      - echo "$$KUBE_CONFIG" | base64 -d > /.kube/config
      - kubectl -n databases port-forward pod/clickhouse-0 8123:8123

steps:
  - name: install
    image: node:20.10.0
    commands:
      - npm install
  - name: build
    image: node:20.10.0
    commands:
      - npm run build
  - name: test
    network_mode: host
    image: node:20.10.0
    commands:
      - npm run test
    environment:
      POSTGRES_HOST: localhost
      POSTGRES_DATABASE: nocodelytics_production
      POSTGRES_PASSWORD:
        from_secret: POSTGRES_PASSWORD
      CLICKHOUSE_HOST: http://localhost:8123
      CLICKHOUSE_DATABASE: nocodelytics_production
      CLICKHOUSE_PASSWORD:
        from_secret: CLICKHOUSE_PASSWORD
  - name: notify
    image: drillster/drone-email
    settings:
      host:
        from_secret: SMTP_HOST
      port: 587
      username:
        from_secret: SMTP_USERNAME
      password:
        from_secret: SMTP_PASSWORD
      from: no-reply@nocodelytics.com
      recipients: [florian@nocodelytics.com]
    # when:
    #   status: [failure]