Linting #128
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: CI | |
| # concurrency: | |
| # group: ${{ github.workflow }}-${{ github.event.number }}-${{ github.event.ref }} | |
| # cancel-in-progress: true | |
| on: | |
| push: | |
| pull_request: | |
| branches: [ "main" ] | |
| # schedule: | |
| # - cron: '2 1 3 * *' | |
| # Allows you to run this workflow manually from the Actions tab | |
| workflow_dispatch: | |
| permissions: | |
| contents: read | |
| env: | |
| PACKAGE: pyepr | |
| jobs: | |
| build: | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: [ubuntu-latest, macos-latest, windows-latest] | |
| python-version: ['3.10', '3.11', '3.12', '3.13', 3.14] | |
| # include: | |
| # - os: ubuntu-latest | |
| # python-version: 'pypy3.9' | |
| steps: | |
| - uses: actions/checkout@v6 | |
| with: | |
| fetch-depth: 0 | |
| submodules: 'true' | |
| - name: Set up Python ${{ matrix.python-version }} | |
| uses: actions/setup-python@v6 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| - name: Install build dependencies | |
| run: | | |
| python -m pip install --upgrade pip | |
| python -m pip install build twine | |
| - name: Build the package | |
| run: | | |
| python -m build | |
| python -m twine check dist/* | |
| - name: Install | |
| shell: bash | |
| run: | | |
| WHEELNAME=$(ls dist/${PACKAGE}-*.whl) | |
| python -m pip install ${WHEELNAME} | |
| - name: Install test dependencies | |
| shell: bash | |
| run: | | |
| python -m pip install pytest | |
| if [ -f requirements-test.txt ]; then pip install -r requirements-test.txt; fi | |
| - name: Test with pytest | |
| run: | | |
| python -c "\ | |
| import sys, epr, numpy as np;\ | |
| print('PyEPR: %s' % epr.__version__);\ | |
| print('EPR API: %s' % epr.EPR_C_API_VERSION);\ | |
| print('Numpy: %s' % np.__version__);\ | |
| print('Python: %s' % sys.version)" | |
| python -m pytest -v tests/test_all.py | |
| syslibs: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| with: | |
| fetch-depth: 0 | |
| submodules: true | |
| - name: Install system dependencies | |
| run: | | |
| sudo apt-get -y install \ | |
| libepr-api-dev \ | |
| python3-all-dev \ | |
| python3-build \ | |
| python3-packaging \ | |
| python3-pip \ | |
| python3-setuptools \ | |
| twine | |
| - name: Install python dependencies | |
| run: | | |
| python3 -m pip install -U build setuptools packaging twine | |
| - name: Build package | |
| run: | | |
| python -m build | |
| python -m twine check dist/* | |
| - name: Install | |
| shell: bash | |
| env: | |
| PYEPR_EPRAPI_SRC: "" | |
| run: | | |
| WHEELNAME=$(ls dist/${PACKAGE}-*.whl) | |
| python -m pip install ${WHEELNAME} | |
| - name: Install test dependencies | |
| run: | | |
| sudo apt-get -y install python3-pytest | |
| - name: Test with pytest | |
| run: | | |
| python -c "\ | |
| import sys, epr, numpy as np;\ | |
| print('PyEPR: %s' % epr.__version__);\ | |
| print('EPR API: %s' % epr.EPR_C_API_VERSION);\ | |
| print('Numpy: %s' % np.__version__);\ | |
| print('Python: %s' % sys.version)" | |
| python -m pytest -v tests/test_all.py | |
| coverage: | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| python-version: ["3.14"] | |
| env: | |
| OS: ubuntu-latest | |
| PYTHON: "3.14" | |
| steps: | |
| - uses: actions/checkout@v6 | |
| with: | |
| fetch-depth: 0 | |
| submodules: true | |
| - name: Set up Python ${{ matrix.python-version }} | |
| uses: actions/setup-python@v6 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| - name: Install dependencies | |
| shell: bash | |
| run: | | |
| python -m pip install --upgrade setuptools pip | |
| if [ -f requirements-dev.txt ]; then python -m pip install -r requirements-dev.txt; fi | |
| - name: Build and install | |
| run: | | |
| make coverage | |
| - name: Print info | |
| run: | | |
| env PYTHONPATH=src python -c "\ | |
| import sys, epr, numpy as np;\ | |
| print('PyEPR: %s' % epr.__version__);\ | |
| print('EPR API: %s' % epr.EPR_C_API_VERSION);\ | |
| print('Numpy: %s' % np.__version__);\ | |
| print('Python: %s' % sys.version)" | |
| - name: Upload coverage to Codecov | |
| uses: codecov/codecov-action@v5 | |
| with: | |
| env_vars: OS,PYTHON | |
| verbose: true |