Merge pull request #26 from hechth/hechth/issue25 #141
Workflow file for this run
This file contains 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 | |
on: | |
push: | |
pull_request: | |
types: [opened, reopened] | |
workflow_dispatch: | |
inputs: | |
tag: | |
description: Tag for manually running CI Build workflow | |
required: False | |
default: '' | |
jobs: | |
first_check: | |
name: first code check / python-3.10 / ubuntu-latest | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Python 3.10 | |
uses: actions/setup-python@v5 | |
with: | |
python-version: '3.10' | |
- name: Python info | |
run: | | |
which python | |
python --version | |
- name: Build package and create dev environment | |
run: | | |
python -m pip install --upgrade pip poetry | |
poetry lock | |
poetry install --with dev | |
- 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: Check style against standards using prospector | |
shell: bash -l {0} | |
run: poetry run prospector -o grouped -o pylint:pylint-report.txt | |
- name: Check whether import statements are used consistently | |
run: poetry run isort . --check-only --diff | |
build_pypi: | |
name: Test pypi build | |
runs-on: ubuntu-latest | |
needs: first_check | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Python 3.10 | |
uses: actions/setup-python@v5 | |
with: | |
python-version: '3.10' | |
- name: Python info | |
run: | | |
which python | |
python --version | |
- name: Install dependencies | |
run: | | |
python -m pip install --upgrade pip poetry twine | |
- name: Build package | |
run: | | |
poetry build | |
- name: Test package | |
run: | | |
poetry lock | |
poetry install --only dev | |
python -m twine check dist/* | |
- name: Show pip list | |
run: | | |
pip list | |
- name: Install development dependencies | |
run: | | |
poetry lock | |
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'] | |
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 lock | |
poetry install | |
- name: Show pip list | |
run: | | |
pip list | |
- name: Run tests | |
run: | | |
poetry run pytest |