diff --git a/.github/workflows/test-package.yml b/.github/workflows/test-package.yml index 4533cf2..9dff55b 100644 --- a/.github/workflows/test-package.yml +++ b/.github/workflows/test-package.yml @@ -6,12 +6,39 @@ on: workflow_dispatch: jobs: - build: + create_matrix: + + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v2 + + - name: Create matrix + uses: fabiocaccamo/create-matrix-action@v1 + with: + matrix: | + python-version {2.7}, django-version {1.8,1.9,1.10,1.11}, database {sqlite,postgres} + python-version {3.6}, django-version {1.8,1.9,1.10,1.11,2.0,2.1,2.2,3.0,3.1,3.2}, database {sqlite,postgres} + python-version {3.7}, django-version {2.0,2.1,2.2,3.0,3.1,3.2}, database {sqlite,postgres} + python-version {3.8}, django-version {2.2,3.0,3.1,3.2}, database {sqlite,postgres} + python-version {3.9}, django-version {2.2,3.0,3.1,3.2}, database {sqlite,postgres} + python-version {3.10}, django-version {3.2,4.0}, database {sqlite,postgres} + + - name: Set matrix output variable + id: set_matrix + run: | + echo "::set-output name=matrix::$(cat ./matrix.json)" + + outputs: + matrix: ${{ steps.set_matrix.outputs.matrix }} + + test: + needs: create_matrix runs-on: ubuntu-latest strategy: fail-fast: false - matrix: - python-version: ['2.7', '3.6', '3.7', '3.8', '3.9', '3.10'] + matrix: + include: ${{fromJson(needs.create_matrix.outputs.matrix)}} services: postgres: @@ -38,12 +65,31 @@ jobs: - name: Install psycopg2 prerequisites run: sudo apt-get install libpq-dev - - name: Install dependencies + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v2 + with: + python-version: ${{ matrix.python-version }} + cache: 'pip' + + - name: Upgrade pip version run: | - python -m pip install --upgrade pip - pip install -r requirements.txt - pip install -r requirements-test.txt - pip install tox tox-gh-actions + pip install pip --upgrade - - name: Test with tox - run: tox + - name: Install django + run: | + pip install "Django ~= ${{ matrix.django-version }}" + + - name: Run tests + env: + DATABASE_ENGINE: ${{ matrix.database }}" + run: | + coverage run --append --source=admin_interface setup.py test + coverage xml -o ./coverage.xml + + - name: Upload coverage to Codecov + uses: codecov/codecov-action@v2 + with: + fail_ci_if_error: false + files: ./coverage.xml + verbose: true +