2021-08-22 15:25:18 +00:00
|
|
|
name: Test
|
|
|
|
|
|
|
|
on: [push, pull_request]
|
|
|
|
|
|
|
|
env:
|
|
|
|
FORCE_COLOR: 1
|
|
|
|
|
|
|
|
jobs:
|
|
|
|
prebuild_xapian_wheel:
|
|
|
|
runs-on: ubuntu-latest
|
|
|
|
strategy:
|
|
|
|
matrix:
|
2022-02-07 00:53:35 +00:00
|
|
|
python-version: ['3.7', '3.8', '3.9', '3.10']
|
2021-11-13 16:47:47 +00:00
|
|
|
xapian-version: ['1.4.18']
|
2021-08-22 15:25:18 +00:00
|
|
|
|
|
|
|
steps:
|
|
|
|
- name: Set up Python ${{ matrix.python-version }}
|
|
|
|
uses: actions/setup-python@v2
|
|
|
|
with:
|
|
|
|
python-version: ${{ matrix.python-version }}
|
|
|
|
|
|
|
|
- name: Checkout xapian-haystack
|
|
|
|
uses: actions/checkout@v2
|
|
|
|
|
|
|
|
- name: Check for cached xapian wheel
|
|
|
|
# https://github.com/actions/cache#cache-limits
|
|
|
|
# says this cached wheel will be evicted after a week unused.
|
|
|
|
id: xapian-cache
|
|
|
|
uses: actions/cache@v2
|
|
|
|
with:
|
|
|
|
path: xapian*.whl
|
|
|
|
key: xapian-${{ matrix.xapian-version }}-${{ runner.os }}-${{ env.pythonLocation }}-${{ hashFiles('xapian_wheel_builder.sh') }}
|
|
|
|
|
|
|
|
- name: Build xapian wheel
|
|
|
|
if: steps.xapian-cache.outputs.cache-hit != 'true'
|
|
|
|
run: |
|
|
|
|
./xapian_wheel_builder.sh ${{ matrix.xapian-version }}
|
|
|
|
|
|
|
|
test:
|
|
|
|
needs: prebuild_xapian_wheel
|
|
|
|
runs-on: ubuntu-latest
|
|
|
|
strategy:
|
|
|
|
matrix:
|
2022-02-07 00:53:35 +00:00
|
|
|
python-version: ['3.7', '3.8', '3.9', '3.10']
|
|
|
|
django-version: ['2.2', '3.2', '4.0']
|
2021-11-13 16:47:47 +00:00
|
|
|
xapian-version: ['1.4.18']
|
2022-02-07 00:53:35 +00:00
|
|
|
exclude:
|
2021-11-13 16:47:47 +00:00
|
|
|
# Django added python 3.10 support in 3.2.9
|
|
|
|
- python-version: '3.10'
|
2022-02-07 00:53:35 +00:00
|
|
|
django-version: '2.2'
|
|
|
|
xapian-version: '1.4.18'
|
|
|
|
# Django dropped python 3.7 support in 4.0
|
|
|
|
- python-version: '3.7'
|
|
|
|
django-version: '4.0'
|
2021-11-13 16:47:47 +00:00
|
|
|
xapian-version: '1.4.18'
|
2021-08-22 15:25:18 +00:00
|
|
|
|
|
|
|
steps:
|
|
|
|
- name: Set up Python ${{ matrix.python-version }}
|
|
|
|
uses: actions/setup-python@v2
|
|
|
|
with:
|
|
|
|
python-version: ${{ matrix.python-version }}
|
|
|
|
|
|
|
|
- name: Checkout xapian-haystack
|
|
|
|
uses: actions/checkout@v2
|
|
|
|
|
|
|
|
- name: Check for cached xapian wheel
|
|
|
|
# This will always succeed since the previous job just ran.
|
|
|
|
id: xapian-cache
|
|
|
|
uses: actions/cache@v2
|
|
|
|
with:
|
|
|
|
path: xapian*.whl
|
|
|
|
key: xapian-${{ matrix.xapian-version }}-${{ runner.os }}-${{ env.pythonLocation }}-${{ hashFiles('xapian_wheel_builder.sh') }}
|
|
|
|
|
|
|
|
- name: Install Django and other Python dependencies
|
|
|
|
run: |
|
|
|
|
python -m pip install --upgrade pip
|
|
|
|
pip install django~=${{ matrix.django-version }} coveralls xapian*.whl
|
|
|
|
|
|
|
|
- name: Checkout django-haystack
|
|
|
|
uses: actions/checkout@v2
|
|
|
|
with:
|
|
|
|
repository: 'django-haystack/django-haystack'
|
|
|
|
path: django-haystack
|
|
|
|
|
|
|
|
- name: Copy some test files to django-haystack
|
|
|
|
run: |
|
|
|
|
cp xapian_backend.py django-haystack/haystack/backends/
|
|
|
|
cp -r tests/* django-haystack/test_haystack/
|
|
|
|
cp tests/xapian_tests/__init__.py django-haystack/test_haystack/
|
|
|
|
cp .coveragerc django-haystack/
|
|
|
|
|
|
|
|
- name: Set PYTHONPATH
|
|
|
|
run: |
|
|
|
|
echo "PYTHONPATH=/usr/lib/python3/dist-packages:." >> $GITHUB_ENV
|
|
|
|
|
|
|
|
- name: Ensure all apps have migrations
|
|
|
|
run: |
|
|
|
|
cd django-haystack
|
|
|
|
django-admin makemigrations --settings=test_haystack.xapian_settings
|
|
|
|
|
|
|
|
- name: Running tests
|
|
|
|
run: |
|
|
|
|
cd django-haystack
|
|
|
|
coverage run $(command -v django-admin) test test_haystack.xapian_tests --settings=test_haystack.xapian_settings
|
|
|
|
env:
|
|
|
|
PYTHONPATH: "/usr/lib/python3/dist-packages:."
|
|
|
|
|
|
|
|
- name: Coveralls
|
|
|
|
run: |
|
2021-09-24 19:24:55 +00:00
|
|
|
coverage combine django-haystack/.coverage
|
|
|
|
coverage report
|
2021-08-22 15:25:18 +00:00
|
|
|
coveralls --service=github
|
|
|
|
env:
|
|
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
2021-09-26 13:04:39 +00:00
|
|
|
COVERALLS_FLAG_NAME: python-${{ matrix.python-version }}-django-${{ matrix.django-version }}-xapian-${{ matrix.xapian-version }}
|
|
|
|
COVERALLS_PARALLEL: true
|
|
|
|
|
|
|
|
coveralls:
|
|
|
|
needs: test
|
|
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
|
|
- name: Inform Coveralls of Completion
|
|
|
|
run: |
|
|
|
|
pip3 install --upgrade coveralls
|
|
|
|
coveralls --service=github --finish
|
|
|
|
env:
|
|
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|