# This workflow is provided via the organization template repository
#
# https://github.com/nextcloud/.github
# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization

name: Node

on:
  pull_request:
  push:
    branches:
      - main
      - master
      - stable*

jobs:
  test:
    runs-on: ubuntu-latest

    name: test
    steps:
      - name: Checkout
        uses: actions/checkout@v3

      - name: Read package.json node and npm engines version
        uses: skjnldsv/read-package-engines-version-actions@v1.2
        id: versions
        with:
          fallbackNode: '^12'
          fallbackNpm: '^6'

      - name: Set up node ${{ steps.versions.outputs.nodeVersion }}
        uses: actions/setup-node@v3
        with:
          node-version: ${{ steps.versions.outputs.nodeVersion }}

      - name: Set up npm ${{ steps.versions.outputs.npmVersion }}
        run: npm i -g npm@"${{ steps.versions.outputs.npmVersion }}"

      - name: Install dependencies
        run: npm ci

      - name: Testing
        run: npm run test:coverage --if-present

      - name: Upload coverage
        uses: codecov/codecov-action@v2
