name: Flask CI on: push: branches: [master, testing] pull_request: branches: [master, testing] jobs: build: runs-on: ubuntu-latest # Service containers to run with `container-job` services: # Label used to access the service container postgres: # Docker Hub image image: postgres:11 ports: - 5432:5432 # Set health checks to wait until postgres has started options: >- --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5 env: POSTGRES_DB: dh_test POSTGRES_USER: dhub POSTGRES_PASSWORD: ereuse strategy: max-parallel: 4 matrix: python-version: [3.7] steps: - uses: actions/checkout@v2 - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v2 with: python-version: ${{ matrix.python-version }} cache: 'pip' - name: Install dependencies run: | sudo apt-get update -qy sudo apt-get -y install postgresql-client python -m pip install --upgrade pip pip install virtualenv virtualenv env source env/bin/activate pip install flake8 pytest coverage pip install -r requirements.txt - name: Prepare database env: POSTGRES_DB: dh_test POSTGRES_USER: dhub POSTGRES_PASSWORD: ereuse run: | export PGPASSWORD=$POSTGRES_PASSWORD psql -h "localhost" -U "$POSTGRES_USER" -d "$POSTGRES_DB" -c "CREATE EXTENSION pgcrypto SCHEMA public;" psql -h "localhost" -U "$POSTGRES_USER" -d "$POSTGRES_DB" -c "CREATE EXTENSION ltree SCHEMA public;" psql -h "localhost" -U "$POSTGRES_USER" -d "$POSTGRES_DB" -c "CREATE EXTENSION citext SCHEMA public;" psql -h "localhost" -U "$POSTGRES_USER" -d "$POSTGRES_DB" -c "CREATE EXTENSION pg_trgm SCHEMA public;" - name: Run Tests run: | source env/bin/activate coverage run --source='ereuse_devicehub' env/bin/pytest -m mvp --maxfail=5 tests/ coverage report --include='ereuse_devicehub/*' coverage xml - name: Upload coverage to Codecov uses: codecov/codecov-action@v1 with: token: ${{ secrets.CODECOV_TOKEN }}