mirror of
https://github.com/pretix/pretix.git
synced 2026-01-02 18:42:27 +00:00
* Don't exclude localization PRs from test CI action * Update tests.yml --------- Co-authored-by: Raphael Michel <michel@rami.io>
79 lines
2.5 KiB
YAML
79 lines
2.5 KiB
YAML
name: Tests
|
|
|
|
on:
|
|
push:
|
|
branches: [ master ]
|
|
paths-ignore:
|
|
- 'doc/**'
|
|
pull_request:
|
|
branches: [ master ]
|
|
paths-ignore:
|
|
- 'doc/**'
|
|
- 'src/pretix/locale/**'
|
|
|
|
permissions:
|
|
contents: read # to fetch code (actions/checkout)
|
|
|
|
env:
|
|
FORCE_COLOR: 1
|
|
|
|
jobs:
|
|
test:
|
|
runs-on: ubuntu-22.04
|
|
name: Tests
|
|
strategy:
|
|
matrix:
|
|
python-version: ["3.9", "3.10", "3.11"]
|
|
database: [sqlite, postgres]
|
|
exclude:
|
|
- database: sqlite
|
|
python-version: "3.9"
|
|
- database: sqlite
|
|
python-version: "3.10"
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: harmon758/postgresql-action@v1
|
|
with:
|
|
postgresql version: '15'
|
|
postgresql db: 'pretix'
|
|
postgresql user: 'postgres'
|
|
postgresql password: 'postgres'
|
|
if: matrix.database == 'postgres'
|
|
- name: Set up Python ${{ matrix.python-version }}
|
|
uses: actions/setup-python@v5
|
|
with:
|
|
python-version: ${{ matrix.python-version }}
|
|
- uses: actions/cache@v4
|
|
with:
|
|
path: ~/.cache/pip
|
|
key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }}
|
|
restore-keys: |
|
|
${{ runner.os }}-pip-
|
|
- name: Install system dependencies
|
|
run: sudo apt update && sudo apt install gettext
|
|
- name: Install Python dependencies
|
|
run: pip3 install --ignore-requires-python -e ".[dev]" psycopg2-binary # We ignore that flake8 needs newer python as we don't run flake8 during tests
|
|
- name: Run checks
|
|
run: python manage.py check
|
|
working-directory: ./src
|
|
- name: Install JS dependencies
|
|
working-directory: ./src
|
|
run: make npminstall
|
|
- name: Compile
|
|
working-directory: ./src
|
|
run: make all compress
|
|
- name: Run tests
|
|
working-directory: ./src
|
|
run: PRETIX_CONFIG_FILE=tests/travis_${{ matrix.database }}.cfg py.test -n 3 -p no:sugar --cov=./ --cov-report=xml --reruns 3 tests --maxfail=100
|
|
- name: Run concurrency tests
|
|
working-directory: ./src
|
|
run: PRETIX_CONFIG_FILE=tests/travis_${{ matrix.database }}.cfg py.test tests/concurrency_tests/ --reruns 0 --reuse-db
|
|
if: matrix.database == 'postgres'
|
|
- name: Upload coverage
|
|
uses: codecov/codecov-action@v1
|
|
with:
|
|
file: src/coverage.xml
|
|
token: ${{ secrets.CODECOV_TOKEN }}
|
|
fail_ci_if_error: true
|
|
if: matrix.database == 'postgres' && matrix.python-version == '3.11'
|