Files
Radicale/.github/workflows/test.yml
2026-02-14 05:47:43 +01:00

182 lines
5.7 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 py3-cffi py3-argon2-cffi py3-requests py3-packaging py3-idna py3-urllib3 py3-waitress py3-certifi
- 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