Skip to content

Anndata

Anndata #206

Workflow file for this run

name: Continous Integration
on:
pull_request:
branches:
- main
jobs:
build:
name: Build python 🐍 package 📦
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
fetch-tags: true
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: '3.10'
- name: Install packaging tools
run : pip install build twine
- name: Build package
run: python -m build
- name: Check package
run: twine check dist/*
- name: Upload distribution
uses: actions/upload-artifact@v4
with:
name: distribution
path: dist
test:
name: Run tests
needs: build
runs-on: ubuntu-latest
permissions:
checks: write
pull-requests: write
strategy:
fail-fast: false
matrix:
python-version: ['3.8', '3.9', '3.10', '3.11', '3.12']
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Dowload distribution artifact
uses: actions/download-artifact@v4
with:
name: distribution
path: dist
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install harissa
run: pip install dist/*.whl
- name: Install pytest
run: pip install pytest pytest-cov
- name: Run tests and coverage
run: pytest
- name: Publish Test Results
uses: EnricoMi/publish-unit-test-result-action@v2
if: always()
with:
check_name: Test results (${{ matrix.python-version }})
files: report.xml
- name: Renames src files name for coveralls
if: always()
run: sed -i -E "s/(SF:).*(\/harissa.*)/\1src\2/g" coverage.lcov
- name: Upload to coveralls
uses: coverallsapp/github-action@v2
if: always()
with:
flag-name: test-${{ matrix.python-version }}
file: coverage.lcov
parallel: true
finish_coveralls:
needs: test
if: always()
runs-on: ubuntu-latest
steps:
- name: Coveralls Finished
uses: coverallsapp/github-action@v2
with:
parallel-finished: true
carryforward: "test-3.8,test-3.9,test-3.10,test-3.11,test-3.12"
doc:
name: Generate documentation
needs: build
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Dowload distribution artifact
uses: actions/download-artifact@v4
with:
name: distribution
path: dist
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: '3.10'
- name: Install harissa
run: pip install dist/*.whl
- name: Setup documentation dependencies
run: |
sudo apt-get update
sudo apt-get -y install pandoc
pip install -r docs/requirements.txt
- name: Build documentation
run: sphinx-build docs/source html
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: 'documentation'
path: 'html'