---
kind: pipeline
name: test

steps:
  - name: run tests
    image: node
    commands:
    - yarn
    - yarn run prepare
    - yarn run test

trigger:
  event:
    - push
    - pull_request
    - tag

---
kind: pipeline
name: publish-npm

steps:
  - name: prepare
    image: node
    commands:
    - yarn
    - yarn run prepare
  - name: publish on npm
    image: plugins/npm
    settings:
      username: yarmo_eu
      password:
        from_secret: npm_token
      email:
        from_secret: npm_email

depends_on:
  - test

trigger:
  event:
    - tag

---
kind: pipeline
name: publish-docker-latest

steps:
  - name: publish latest proxy container
    image: plugins/docker
    settings:
      username:
        from_secret: docker_username
      password:
        from_secret: docker_password
      dockerfile: docker/proxy/Dockerfile
      repo: keyoxide/doip-proxy
      tags: latest
  - name: build tag proxy container
    image: plugins/docker
    settings:
      username:
        from_secret: docker_username
      password:
        from_secret: docker_password
      dockerfile: docker/proxy/Dockerfile
      repo: keyoxide/doip-proxy
      auto_tag: true

depends_on:
  - test

trigger:
  event:
    - tag

---
kind: pipeline
name: publish-docker-dev

steps:
  - name: build dev proxy container
    image: plugins/docker
    settings:
      username:
        from_secret: docker_username
      password:
        from_secret: docker_password
      dockerfile: docker/proxy/Dockerfile
      repo: keyoxide/doip-proxy
      tags: dev

depends_on:
  - test

trigger:
  branch:
    - main
  event:
    - push