# 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:
      - master
      - stable*

jobs:
  build:
    runs-on: ubuntu-latest

    name: node
    steps:
      - name: Checkout
        uses: actions/checkout@v2

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

      - name: Set up node ${{ steps.versions.outputs.nodeVersion }}
        uses: actions/setup-node@v2
        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 & build
        run: |
          npm ci
          npm run build --if-present

      - name: Check webpack build changes
        run: |
          bash -c "[[ ! \"`git status --porcelain `\" ]] || exit 1"

      - name: Show changes on failure
        if: failure()
        run: |
          git status
          git --no-pager diff
