name: Test Build
on:
  push:
    paths:
      - "**/*.js"
      - "**/*.vue"
      - "public/**/*"
      - "package-lock.json"
      - "package.json"
  pull_request:
    branches: [ master ]
    types: [ opened, synchronize, reopened ]
    paths:
      - "**/*.js"
      - "**/*.vue"
      - "public/**/*"
      - "package-lock.json"
      - "package.json"



jobs:
  build:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        build: [ legacy, modern ]
        include:
          - build: legacy
            BUILD_ARGS: ""
            BUILD_EXTENSION: true
          - build: modern
            BUILD_ARGS: "-- --modern"
            BUILD_EXTENSION: false
    steps:
      - uses: actions/checkout@v2

      - name: Use Node.js 14.x
        uses: actions/setup-node@v2
        with:
          node-version: "14"

      - name: Install Dependencies
        run: |
          npm ci
          npm run fix-compatibility

      - name: Build
        env:
          GZIP: "--best"
        run: |
          npm run build ${{ matrix.BUILD_ARGS }}
          tar -czvf dist.tar.gz -C ./dist .

      - name: Build Extension
        if: ${{ matrix.BUILD_EXTENSION }}
        run: |
          npm run make-extension
          cd dist
          zip -rJ9 ../extension.zip *
          cd ..

      - name: Publish artifact
        uses: actions/upload-artifact@v2
        with:
          name: unlock-music-${{ matrix.build }}.tar.gz
          path: ./dist.tar.gz

      - name: Publish artifact - Extension
        if: ${{ matrix.BUILD_EXTENSION }}
        uses: actions/upload-artifact@v2
        with:
          name: extension.zip
          path: ./extension.zip