name: Budibase CI

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

jobs:
  build:
    runs-on: ubuntu-latest

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

    steps:
    - uses: actions/checkout@v2

    - name: Use Node.js ${{ matrix.node-version }}
      uses: actions/setup-node@v1
      with:
        node-version: ${{ matrix.node-version }}
    - run: yarn
    - run: yarn lint
    - run: yarn bootstrap
    - 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 
    - run: yarn test:e2e:ci

    - name: Build and Push Staging Docker Image
      # Only run on push
      if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' }}
      run: |
        docker login -u $DOCKER_USER -p $DOCKER_PASSWORD
        yarn build:docker:staging
      env:
        DOCKER_USER: ${{ secrets.DOCKER_USERNAME }}
        DOCKER_PASSWORD: ${{ secrets.DOCKER_API_KEY }}