name: Budibase CI

on: 
 # Trigger the workflow on push or pull request,
 # but only for the master branch
 push:
    branches:
      - master
      - develop 
 pull_request:
    branches:
      - master
      - develop 
      - release 
 workflow_dispatch:

env:
  BRANCH: ${{ github.event.pull_request.head.ref }}
  BASE_BRANCH: ${{ github.event.pull_request.base.ref}}
  PERSONAL_ACCESS_TOKEN : ${{ secrets.PERSONAL_ACCESS_TOKEN }}

jobs:
  build:
    runs-on: ubuntu-latest

    strategy:
      matrix:
        node-version: [14.x]

    steps:
    - uses: actions/checkout@v2

    - name: Use Node.js ${{ matrix.node-version }}
      uses: actions/setup-node@v1
      with:
        node-version: ${{ matrix.node-version }}

    - name: Install Pro
      run: yarn install:pro $BRANCH $BASE_BRANCH

    - run: yarn
    - run: yarn bootstrap
    - run: yarn lint
    - run: yarn build
    - run: yarn test
      env:
        CI: true
        name: Budibase CI
    - uses: codecov/codecov-action@v1
      with:
        token: ${{ secrets.CODECOV_TOKEN }} # not required for public repos
        files: ./packages/server/coverage/clover.xml
        name: codecov-umbrella
        verbose: true 

    # TODO: parallelise this
    - name: Cypress run
      uses: cypress-io/github-action@v2
      with:
        install: false
        command: yarn test:e2e:ci