name: Tests
on: [push, pull_request]
jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@master
      - name: Set up Python 3.7
        uses: actions/setup-python@v1
        with:
          python-version: 3.7
      - name: Set up Node.js
        uses: actions/setup-node@v2
        with:
          node-version: '14'
      - name: Build frontend
        working-directory: ./webiojs
        run: |
          npm install
          gulp
          cp dist/pywebio.min.* ../pywebio/html/js
      - name: Install Test JS deps
        run: npm install -D @percy/agent
      - name: Install package
        run: pip3 install ".[all]"
      - name: Install dev dependencies
        run: |
          python -m pip install --upgrade pip
          pip install -r requirements.txt
      - name: Install env
        run: echo "PERCY_TOKEN=${{ secrets.PERCY_TOKEN }}" >> $GITHUB_ENV
      - name: Percy Test
        uses: percy/exec-action@v0.3.1
        with:
          working-directory: ./test
          command: "./run_all.sh"
      - name: Upload test output
        uses: actions/upload-artifact@v1
        if: failure()
        with:
          name: test output
          path: test/output
      - name: Upload Codecov Report
        working-directory: ./test
        run: bash <(curl -s https://codecov.io/bash)
