name: CI

on:
  push:
    branches: [ main ]
  pull_request:
    branches: [ main ]

  # Allows running this workflow manually from the Actions tab
  workflow_dispatch:

jobs:
  build:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        python-version: [2.7]
        node-version: [10.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: Set up Python ${{ matrix.python-version }}
        uses: actions/setup-python@v2
        with:
          python-version: ${{ matrix.python-version }}

      - name: Install Python packages
        run: |
          pip install virtualenv
          yarn run install:python

      - name: Install Node.js packages
        run: yarn install

      - name: Build Node.js code
        run: yarn run build:prod

      - name: Run smoke test
        run: VERBOSE=1 DEBUG=1 MOCHA_WEBDRIVER_HEADLESS=1 yarn run test:smoke

      - name: Run main tests
        run: VERBOSE=1 DEBUG=1 MOCHA_WEBDRIVER_HEADLESS=1 yarn run test

      - name: Update candidate branch
        if: ${{ github.event_name == 'push' }}
        uses: ad-m/github-push-action@8407731efefc0d8f72af254c74276b7a90be36e1
        with:
          github_token: ${{ secrets.GITHUB_TOKEN }}
          branch: latest_candidate
          force: true