name: FitTrackee tests on: [push, pull_request] env: APP_SETTINGS: fittrackee.config.TestingConfig DATABASE_TEST_URL: "postgresql://fittrackee:fittrackee@postgres:5432/fittrackee_test" EMAIL_URL: "smtp://none:none@0.0.0.0:1025" FLASK_APP: fittrackee/__main__.py SENDER_EMAIL: fittrackee@example.com jobs: python: name: python ${{ matrix.python-version }} runs-on: ubuntu-latest container: python:${{ matrix.python-version }} services: postgres: image: postgres:latest env: POSTGRES_DB: fittrackee_test POSTGRES_USER: fittrackee POSTGRES_PASSWORD: fittrackee options: >- --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5 strategy: matrix: python-version: [ "3.7", "3.8", "3.9", "3.10" ] steps: - uses: actions/checkout@v2 - name: Install Poetry and Dependencies run: | python -m pip install --upgrade pip pip install --quiet poetry poetry config virtualenvs.create false poetry install --no-interaction --quiet - name: Lint if: matrix.python-version == '3.10' run: pytest --flake8 --isort --black -m "flake8 or isort or black" fittrackee e2e --ignore=fittrackee/migrations -p no:warnings - name: Mypy if: matrix.python-version == '3.10' run: mypy fittrackee - name: Pytest run: pytest fittrackee -p no:warnings --cov fittrackee --cov-report term-missing javascript: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: Use Node.js 17.x uses: actions/setup-node@v2 with: node-version: "17.x" - name: Install yarn and dependencies run: | npm install --global yarn cd fittrackee_client yarn install - name: Lint run: | cd fittrackee_client yarn lint - name: Tests run: | cd fittrackee_client yarn test:unit