image: denoland/deno:2.0.3

default:
  interruptible: true

stages:
  - test

fmt:
  stage: test
  script: deno fmt --check

lint:
  stage: test
  script: deno lint

check:
  stage: test
  script: deno task check

test:
  stage: test
  script: 
    - sleep 1 && deno task test --coverage=cov_profile
    - deno coverage cov_profile
  coverage: /All files[^\|]*\|[^\|]*\s+([\d\.]+)/
  services:
    - postgres:16
  variables:
    DITTO_NSEC: nsec1zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zygs4rm7hz
    DATABASE_URL: postgres://postgres:postgres@postgres:5432/postgres
    POSTGRES_HOST_AUTH_METHOD: trust
  artifacts:
    when: always
    paths:
      - deno-test.xml
    reports:
      junit: deno-test.xml