CI build and Python-System-matrix tests #1
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 build and Python-System-matrix tests | |
| on: | |
| pull_request: | |
| types: [opened, ready_for_review, closed] | |
| workflow_dispatch: | |
| inputs: | |
| tag: | |
| description: Tag for manually running CI Build workflow | |
| required: False | |
| default: '' | |
| jobs: | |
| first_check: | |
| name: first code check / python-3.13 / ubuntu-latest | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Set up Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.13' | |
| - name: Python info | |
| run: | | |
| which python | |
| python --version | |
| - name: Build package and create dev environment | |
| run: | | |
| python -m pip install --upgrade pip poetry | |
| poetry config virtualenvs.create false | |
| poetry install | |
| - name: Show pip list | |
| run: | | |
| pip list | |
| - name: Test with coverage | |
| run: | | |
| poetry run pytest --cov --cov-report term --cov-report xml --junitxml=xunit-result.xml | |
| - name: Correct coverage paths | |
| run: sed -i "s+$PWD/++g" coverage.xml | |
| - name: Run ruff linter | |
| run: ruff check --output-format=github | |
| build_pypi: | |
| name: Test pypi build | |
| runs-on: ubuntu-latest | |
| needs: first_check | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Set up Python 3.13 | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.13' | |
| - name: Python info | |
| run: | | |
| which python | |
| python --version | |
| - name: Install dependencies | |
| run: | | |
| python -m pip install --upgrade pip poetry | |
| poetry config virtualenvs.create false | |
| - name: Build package | |
| run: | | |
| poetry build | |
| - name: Test package | |
| run: | | |
| poetry install --only dev | |
| python -m twine check dist/* | |
| - name: Show pip list | |
| run: | | |
| pip list | |
| - name: Install development dependencies | |
| run: | | |
| poetry install | |
| - name: Show pip list again | |
| run: | | |
| pip list | |
| - name: Run tests | |
| run: | | |
| poetry run pytest | |
| - name: Show environment variables | |
| shell: bash -l {0} | |
| run: | | |
| env | sort | |
| test_dev: | |
| name: test dev environment / python-${{ matrix.python-version }} / ${{ matrix.os }} | |
| runs-on: ${{ matrix.os }} | |
| needs: first_check | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: ['ubuntu-latest', 'macos-latest', 'windows-latest'] | |
| python-version: ['3.10', '3.11', '3.12', '3.13'] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Set up Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| - name: Python info | |
| run: | | |
| which python | |
| python --version | |
| - name: Install dependencies (includinv dev + chemistry) | |
| run: | | |
| python -m pip install --upgrade pip poetry | |
| poetry config virtualenvs.create false | |
| poetry install | |
| - name: Show pip list | |
| run: | | |
| pip list | |
| - name: Run tests | |
| run: | | |
| poetry run pytest |