---
kind: pipeline
type: docker
name: test

trigger:
  branch:
    - main

steps:
  - name: restore cache
    image: 'meltwater/drone-cache:v1.4.0'
    environment:
      AWS_ACCESS_KEY_ID:
        from_secret: minio_user
      AWS_SECRET_ACCESS_KEY:
        from_secret: minio_password
    settings:
      archive_format: gzip
      bucket: clean-architecture-cache
      cache_key: '{{ .Repo.Name }}-{{ checksum ".tool-versions" }}-{{ checksum "yarn.lock" }}'
      endpoint: minio:9000
      mount:
        - .yarn
      path_style: true
      region: us-east-1
      restore: true

  - name: test
    image: 'node:22.11.0-slim'
    commands:
      - yarn set version 4.5.1
      - yarn install
      - yarn run jest

  - name: rebuild cache
    image: 'meltwater/drone-cache:v1.4.0'
    environment:
      AWS_ACCESS_KEY_ID:
        from_secret: minio_user
      AWS_SECRET_ACCESS_KEY:
        from_secret: minio_password
    settings:
      archive_format: gzip
      bucket: clean-architecture-cache
      cache_key: '{{ .Repo.Name }}-{{ checksum ".tool-versions" }}-{{ checksum "yarn.lock" }}'
      endpoint: minio:9000
      exit_code: true
      mount:
        - .yarn
      path_style: true
      rebuild: true
      region: us-east-1