# SPDX-FileCopyrightText: 2021 The HedgeDoc developers (see AUTHORS file)
#
# SPDX-License-Identifier: AGPL-3.0-only


name: Nest.JS CI

on:
  push:
    branches: [ develop ]
  pull_request:
    branches: [ develop ]

env:
  NODEJS_VERSION: 18

jobs:
  lint:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        command:
          - yarn run lint
          - yarn run format
    steps:
      - uses: actions/checkout@v3
      - name: Use Node.js ${{ env.NODEJS_VERSION }}
        uses: actions/setup-node@v3
        with:
          node-version: ${{ env.NODEJS_VERSION }}
          cache: 'yarn'
      - run: yarn install --immutable
      - run: ${{matrix.command}}
  build:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        node-version: [ 14.x, 16.x, 18.x ]
    steps:
      - uses: actions/checkout@v3
      - name: Use Node.js ${{ matrix.node-version }}
        uses: actions/setup-node@v3
        with:
          node-version: ${{ matrix.node-version }}
          cache: 'yarn'
      - run: yarn install --immutable
      - run: yarn run build

  integration-tests:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
        with:
          fetch-depth: 0
      - name: Use Node.js ${{ env.NODEJS_VERSION }}
        uses: actions/setup-node@v3
        with:
          node-version: ${{ env.NODEJS_VERSION }}
          cache: 'yarn'
      - run: yarn install --immutable
      - run: yarn run test:cov
      - uses: codecov/codecov-action@v3
        with:
          directory: coverage
          flags: integration-tests
