Skip to content

ci: add zmq extra for mypy test #1165

ci: add zmq extra for mypy test

ci: add zmq extra for mypy test #1165

Workflow file for this run

name: "linux tests and documentation build for 'kiara'"
# This workflow is triggered on pushes to the repository.
on: [push]
jobs:
commitlint:
name: lint commit message
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: wagoid/commitlint-github-action@v6
test-linux:
name: pytest on linux
runs-on: ubuntu-latest
strategy:
matrix:
python_version: ["3.10", "3.11", "3.12", "3.13"]
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: install uv
uses: astral-sh/setup-uv@v6
with:
enable-cache: true
- name: create lockfile
run: uv lock --python ${{ matrix.python_version }}
- name: add core_types plugin
run: uv add git+https://github.com/DHARPA-project/kiara_plugin.core_types@develop
- name: add tabular plugin
run: uv add git+https://github.com/DHARPA-project/kiara_plugin.tabular@develop
- name: install the project
run: uv sync --locked --dev --python ${{ matrix.python_version }}
- name: display installed kiara and module package versions
run: uv pip list | grep kiara
- name: test with pytest
run: uv run pytest --cov-report=xml --cov=kiara tests
- name: Coveralls
uses: coverallsapp/github-action@v2
with:
parallel: true
flag-name: run ${{ join(matrix.*, ' - ') }}
format: cobertura
file: coverage.xml
coverage:
name: test coverage
runs-on: ubuntu-latest
needs:
- test-linux
steps:
- name: Coveralls Finished
uses: coverallsapp/github-action@v2
with:
parallel-finished: true
mypy-linux:
name: mypy check on linux
runs-on: ubuntu-latest
strategy:
matrix:
python_version: ["3.10", "3.11", "3.12", "3.13"]
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: install uv
uses: astral-sh/setup-uv@v6
with:
enable-cache: true
- name: install Python
run: uv python install ${{ matrix.python_version }}
- name: create lockfile
run: uv lock --python ${{ matrix.python_version }}
- name: install the project
run: uv sync --locked --dev --extra zmq --python ${{ matrix.python_version }}
- name: Test with mypy
run: make mypy
linting-linux:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: astral-sh/ruff-action@v3
with:
version: "latest"
args: "--version"
- name: Run ruff check
run: ruff check src/
- name: Run ruff check
run: ruff format --check --diff src/
build_docs:
name: build latest docs
runs-on: ubuntu-latest
steps:
- run: git config --global user.email "[email protected]"
- run: git config --global user.name "Markus Binsteiner"
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: install uv
uses: astral-sh/setup-uv@v6
with:
enable-cache: true
- name: extract tag name
run: echo "RELEASE_VERSION=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV
- name: build docs
run: uv run mike deploy --push latest
publish_docs:
name: build & publish docs
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags')
runs-on: ubuntu-latest
needs:
- build_docs
- test-linux
- mypy-linux
- linting-linux
- build_conda_package
- build_python_package
steps:
- run: git config --global user.email "[email protected]"
- run: git config --global user.name "Markus Binsteiner"
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: install uv
uses: astral-sh/setup-uv@v6
with:
enable-cache: true
- name: extract tag name
run: echo "RELEASE_VERSION=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV
- name: build & publish docs
run: uv run mike deploy --push --update-aliases "v${RELEASE_VERSION}" stable
- name: update latest alias in docs
run: uv run mike set-default --push stable
build_python_package:
name: build python package
runs-on: ubuntu-latest
steps:
- name: Set up Python 3.12
uses: actions/setup-python@v5
with:
python-version: "3.12"
- name: pip cache
id: pip-cache
uses: actions/cache@v4
with:
path: ~/.cache/pip
key: ${{ runner.os }}-pip-3.12
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: install pip
run: pip install -U pip setuptools setuptools_scm build wheel
- name: create packages
run: python -m build
- name: upload artifacts
uses: actions/upload-artifact@v4
with:
name: build-dists
path: dist/
publish_python_package:
name: publish python package
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags')
runs-on: ubuntu-latest
needs:
- build_docs
- test-linux
- mypy-linux
- linting-linux
- build_conda_package
- build_python_package
permissions:
id-token: write # IMPORTANT: this permission is mandatory for trusted publishing
steps:
- name: Retrieve build distributions
uses: actions/download-artifact@v4
with:
name: build-dists
path: dist/
- name: Publish release distributions to PyPI
uses: pypa/gh-action-pypi-publish@release/v1
build_conda_package:
name: conda package build
runs-on: ubuntu-latest
steps:
- name: "Set up Python 3.12"
uses: actions/setup-python@v5
with:
python-version: "3.12"
- name: pip cache
id: pip-cache
uses: actions/cache@v4
with:
path: ~/.cache/pip
key: ${{ runner.os }}-pip-3.12
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: install kiara_plugin.develop
run: pip install -U git+https://github.com/DHARPA-project/kiara_plugin.develop@develop
- name: build conda package
run: kiara build conda pkg --channel dharpa --channel conda-forge --patch-data ci/conda/conda-pkg-patch.yaml --output-folder build-dir .
- name: upload artifacts
uses: actions/upload-artifact@v4
with:
name: conda-pkgs
path: build-dir/
release_conda_package:
name: publish python package to anaconda
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags')
runs-on: ubuntu-latest
needs:
- build_docs
- test-linux
- mypy-linux
- linting-linux
- build_python_package
- build_conda_package
steps:
- name: "Set up Python 3.12"
uses: actions/setup-python@v5
with:
python-version: "3.12"
- name: pip cache
id: pip-cache
uses: actions/cache@v4
with:
path: ~/.cache/pip
key: ${{ runner.os }}-pip-3.12
- name: install kiara_plugin.develop
run: pip install -U git+https://github.com/DHARPA-project/kiara_plugin.develop@develop
- name: Retrieve build distributions
uses: actions/download-artifact@v4
with:
name: conda-pkgs
path: build-dir/
- name: release conda package
run: kiara build conda publish --user dharpa --channel main --token ${{ secrets.ANACONDA_PUSH_TOKEN }} build-dir
merge_tag_to_main:
name: merge current tag to main branch
runs-on: ubuntu-latest
if: ${{ startsWith(github.ref, 'refs/tags') }}
needs:
- build_docs
- test-linux
- mypy-linux
- linting-linux
- build_conda_package
- build_python_package
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- run: git config --global user.email "[email protected]"
- run: git config --global user.name "Markus Binsteiner"
- name: extract tag name
run: echo "RELEASE_VERSION=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV
- name: checkout main branch
run: git checkout main
- name: merge tag
run: git merge "${RELEASE_VERSION}"
- name: push updated main branch
run: git push https://${{ secrets.GITHUB_TOKEN }}@github.com/DHARPA-Project/kiara.git