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

    services:
      couchdb:
        image: ibmcom/couchdb3
        env:
          COUCHDB_PASSWORD: budibase
          COUCHDB_USER: budibase
        ports:
          - 4567:5984

    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,./packages/worker/coverage/clover.xml,./packages/backend-core/coverage/clover.xml
        name: codecov-umbrella
        verbose: true 

    - name: QA Core Integration Tests
      run: | 
        cd qa-core
        yarn
        yarn api:test:ci