clone:
  git:
    image: woodpeckerci/plugin-git
    settings:
      depth: 1 # CI does not need commit history
      recursive: true

pipeline:
  build:
    when:
      event:
        - push
        - pull_request
    image: node:18.6.0
    commands:
      - yarn install
      - git diff --exit-code yarn.lock
      - cp .woodpecker/misskey/test.yml .config
      - yarn build
  mocha:
    when:
      event:
        - push
        - pull_request
    image: node:18.6.0
    commands:
      - yarn mocha
  e2e:
    when:
      event:
        - push
        - pull_request
    image: cypress/included:10.3.0
    commands:
      - npm run start:test &
      - sleep 30 # wait for server to start
      - cypress run --browser chrome
      # TODO: upload screenshots and video artifacts?
      # would need some kind of storage though

services:
  postgres:
    image: postgres:13
    environment:
      - POSTGRES_DB=test-misskey
      - POSTGRES_HOST_AUTH_METHOD=trust
  redis:
    image: redis:6
