182 lines
5.6 KiB
YAML
182 lines
5.6 KiB
YAML
name: Test
|
|
on: [push, pull_request]
|
|
|
|
jobs:
|
|
|
|
test-ubuntu-python-newest:
|
|
name: Test Ubuntu (latest Python:newest)
|
|
needs: lint
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: actions/setup-python@v5
|
|
with:
|
|
python-version: '3.14'
|
|
- name: Install Test dependencies
|
|
run: pip install tox
|
|
- name: Test with newest Python on latest Ubuntu
|
|
run: tox -c pyproject.toml -e py
|
|
|
|
test-python-32bit:
|
|
name: Test Ubuntu/Alpine (32-bit)
|
|
needs: [lint, test-ubuntu-python-newest]
|
|
runs-on: ubuntu-latest
|
|
container:
|
|
image: i386/alpine:latest
|
|
volumes:
|
|
- /tmp:/__e/node24_alpine
|
|
- /tmp:/__e/node20_alpine
|
|
steps:
|
|
- name: Update system
|
|
run: |
|
|
apk update
|
|
apk upgrade
|
|
- name: Fix checkout and upload-artifact
|
|
run: |
|
|
apk add nodejs npm
|
|
mkdir -p /__e/node24_alpine/bin
|
|
ln -sf $(which node) /__e/node24_alpine/bin/node
|
|
ln -sf $(which npm) /__e/node24_alpine/bin/npm
|
|
ln -sf $(which npx) /__e/node24_alpine/bin/npx
|
|
mkdir -p /__e/node20_alpine/bin
|
|
ln -sf $(which node) /__e/node20_alpine/bin/node
|
|
ln -sf $(which npm) /__e/node20_alpine/bin/npm
|
|
ln -sf $(which npx) /__e/node20_alpine/bin/npx
|
|
- name: Install git
|
|
run: |
|
|
apk add git
|
|
- uses: actions/checkout@v4
|
|
- uses: actions/setup-python@v5
|
|
- name: Install Python dependencies
|
|
run: |
|
|
apk add py3-pip py3-tox gcc python3-dev libc-dev libffi-dev py3-bcrypt
|
|
- name: Test 32-bit
|
|
run: tox -c /__w/Radicale/Radicale/pyproject.toml -e py
|
|
|
|
test-ubuntu-python-oldest:
|
|
name: Test Ubuntu (latest Python:oldest)
|
|
needs: [lint, test-ubuntu-python-newest, test-python-32bit]
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: actions/setup-python@v5
|
|
with:
|
|
python-version: '3.9'
|
|
- name: Install Test dependencies
|
|
run: pip install tox
|
|
- name: Test with oldest Python on Ubuntu
|
|
run: tox -c pyproject.toml -e py
|
|
|
|
test-otheros-python-newest:
|
|
name: Test MacOS/Windows (latest Python:newest)
|
|
needs: [lint, test-ubuntu-python-newest, test-python-32bit]
|
|
strategy:
|
|
matrix:
|
|
os: [macos-latest, windows-latest]
|
|
python-version: ['3.14']
|
|
runs-on: ${{ matrix.os }}
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: actions/setup-python@v5
|
|
with:
|
|
python-version: ${{ matrix.python-version }}
|
|
- name: Install Test dependencies
|
|
run: pip install tox
|
|
- name: Test with latest Python on other OS
|
|
run: tox -c pyproject.toml -e py
|
|
|
|
test-otheros-python-oldest:
|
|
name: Test MacOS/Windows (latest Python:oldest)
|
|
needs: [lint, test-ubuntu-python-oldest, test-otheros-python-newest]
|
|
strategy:
|
|
matrix:
|
|
os: [macos-latest, windows-latest]
|
|
python-version: ['3.9']
|
|
runs-on: ${{ matrix.os }}
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: actions/setup-python@v5
|
|
with:
|
|
python-version: ${{ matrix.python-version }}
|
|
- name: Install Test dependencies
|
|
run: pip install tox
|
|
- name: Test with oldest Python on other OS
|
|
run: tox -c pyproject.toml -e py
|
|
|
|
test-python-versions:
|
|
name: Test Ubuntu/MacOS/Windows (latest Python:Matrix)
|
|
needs: [lint, test-otheros-python-oldest, test-otheros-python-newest, test-ubuntu-python-oldest, test-ubuntu-python-newest]
|
|
strategy:
|
|
matrix:
|
|
os: [ubuntu-latest, macos-latest, windows-latest]
|
|
python-version: ['3.10', '3.11', '3.12', '3.13', 'pypy-3.9', 'pypy-3.10', 'pypy-3.11']
|
|
exclude:
|
|
- os: windows-latest
|
|
python-version: 'pypy-3.9'
|
|
- os: windows-latest
|
|
python-version: 'pypy-3.10'
|
|
- os: windows-latest
|
|
python-version: 'pypy-3.11'
|
|
runs-on: ${{ matrix.os }}
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: actions/setup-python@v5
|
|
with:
|
|
python-version: ${{ matrix.python-version }}
|
|
- name: Install Test dependencies
|
|
run: pip install tox
|
|
- name: Test with older Python
|
|
run: tox -c pyproject.toml -e py
|
|
|
|
coveralls-test:
|
|
name: Coveralls:Test
|
|
if: github.event_name == 'push'
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: actions/setup-python@v5
|
|
with:
|
|
python-version: '3.14'
|
|
- name: Install Test dependencies
|
|
run: pip install tox
|
|
- name: Test
|
|
run: tox -c pyproject.toml -e py
|
|
- name: Install Coveralls
|
|
if: github.event_name == 'push'
|
|
run: pip install coveralls
|
|
- name: Upload coverage to Coveralls
|
|
if: github.event_name == 'push'
|
|
env:
|
|
COVERALLS_PARALLEL: true
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
run: coveralls --service=github
|
|
|
|
coveralls-finish:
|
|
name: Coveralls:Finish
|
|
needs: coveralls-test
|
|
if: github.event_name == 'push'
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/setup-python@v5
|
|
with:
|
|
python-version: 3.x
|
|
- name: Install Coveralls
|
|
run: pip install coveralls
|
|
- name: Finish Coveralls parallel builds
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
run: coveralls --service=github --finish
|
|
|
|
lint:
|
|
name: Lint
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: actions/setup-python@v5
|
|
with:
|
|
python-version: '3.14'
|
|
- name: Install tox
|
|
run: pip install tox
|
|
- name: Lint
|
|
run: tox -c pyproject.toml -e flake8,mypy,isort
|