name: Push Tests on: push: branches: main pull_request: branches: "*" env: JEST_ENV: prod CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} jobs: lint: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - run: | git fetch --depth=1 origin +${{github.base_ref}} - name: Set up Python 3.7 uses: actions/setup-python@v1 with: python-version: 3.7 - name: Node cache uses: actions/cache@v1 with: path: ~/.npm key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }} restore-keys: | ${{ runner.os }}-node- - name: Install dependencies run: | pip install flake8 pip install black cd client npm install - name: Format with black and lint with flake8 run: | make lint-server - name: Lint src with eslint working-directory: ./client run: | make lint unit-test: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: Set up Python 3.7 uses: actions/setup-python@v1 with: python-version: 3.7 - name: Python cache uses: actions/cache@v1 with: path: ~/.cache/pip key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements*.txt') }} restore-keys: | ${{ runner.os }}-pip- - name: Node cache uses: actions/cache@v1 with: path: ~/.npm key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }} restore-keys: | ${{ runner.os }}-node- - name: Install dependencies run: make pydist install-dist dev-env-server - name: Unit tests run: | make unit-test bash <(curl -s https://codecov.io/bash) -y .codecov.yml -k server -cF backend,python,unitTest cd client && ./node_modules/codecov/bin/codecov --yml=../.codecov.yml --root=../ --gcov-root=../ -C -F frontend,javascript,unitTest smoke-tests: runs-on: macos-latest timeout-minutes: 20 steps: - uses: actions/checkout@v2 - name: Set up Python 3.7 uses: actions/setup-python@v1 with: python-version: 3.7 - name: Python cache uses: actions/cache@v1 with: path: ~/.cache/pip key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements*.txt') }} restore-keys: | ${{ runner.os }}-pip- - name: Node cache uses: actions/cache@v1 with: path: ~/.npm key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }} restore-keys: | ${{ runner.os }}-node- - name: Install dependencies run: make pydist install-dist - name: Smoke tests (without annotations feature) run: | cd client && make smoke-test ./node_modules/codecov/bin/codecov --yml=../.codecov.yml --root=../ --gcov-root=../ -C -F frontend,javascript,smokeTest smoke-tests-annotations: runs-on: ubuntu-latest timeout-minutes: 20 steps: - uses: actions/checkout@v2 - name: Set up Python 3.7 uses: actions/setup-python@v1 with: python-version: 3.7 - name: Python cache uses: actions/cache@v1 with: path: ~/.cache/pip key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements*.txt') }} restore-keys: | ${{ runner.os }}-pip- - name: Node cache uses: actions/cache@v1 with: path: ~/.npm key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }} restore-keys: | ${{ runner.os }}-node- - name: Install dependencies run: make pydist install-dist - name: Smoke tests (with annotations feature) run: | cd client && make smoke-test-annotations ./node_modules/codecov/bin/codecov --yml=../.codecov.yml --root=../ --gcov-root=../ -C -F frontend,javascript,smokeTestAnnotations