test: add bigram step in pipeline #71
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: "linux tests and documentation builds for 'kiara_plugin.topic_modelling'" | |
# 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@v2 | |
# with: | |
# fetch-depth: 0 | |
# - uses: wagoid/commitlint-github-action@v4 | |
test-linux: | |
name: pytest on linux | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
python_version: ["3.8", "3.9", "3.10", "3.11","3.12"] | |
steps: | |
- name: "Set up Python ${{ matrix.python_version }}" | |
uses: actions/setup-python@v4 | |
with: | |
python-version: "${{ matrix.python_version }}" | |
- name: pip cache | |
id: pip-cache | |
uses: actions/cache@v4 | |
with: | |
path: ~/.cache/pip | |
key: ${{ runner.os }}-pip-${{ matrix.python_version }} | |
- uses: actions/checkout@v4 | |
- name: install kiara_plugin.topic_modelling | |
run: pip install -U .[dev_testing] | |
- name: display installed kiara and module package versions | |
run: pip list | grep kiara | |
- name: test with pytest | |
run: pytest --cov-report=xml --cov=kiara_plugin.topic_modelling tests | |
- name: Coveralls | |
uses: coverallsapp/github-action@v2 | |
with: | |
parallel: true | |
flag-name: run ${{ join(matrix.*, ' - ') }} | |
format: cobertura | |
file: coverage.xml | |
# Uncomment this if you have coveralls.io setup with this repo | |
coverage: | |
name: test coverage | |
runs-on: ubuntu-latest | |
needs: | |
- test-linux | |
steps: | |
- name: Coveralls Finished | |
uses: coverallsapp/github-action@v2 | |
with: | |
parallel-finished: true | |
# Uncomment this if you want to run mypy | |
mypy-linux: | |
name: mypy check on linux | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
python_version: ["3.8", "3.9", "3.10", "3.11", "3.12"] | |
steps: | |
- name: "Set up Python ${{ matrix.python_version }}" | |
uses: actions/setup-python@v5 | |
with: | |
python-version: "${{ matrix.python_version }}" | |
- name: pip cache | |
id: pip-cache | |
uses: actions/cache@v4 | |
with: | |
path: ~/.cache/pip | |
key: $${{ runner.os }}-pip-${{ matrix.python_version }} | |
- uses: actions/checkout@v4 | |
- name: install kiara_plugin.topic_modelling | |
run: pip install -U .[dev_testing] | |
- name: Test with mypy | |
run: make mypy | |
linting-linux: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install Python | |
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 dependencies | |
run: | | |
python -m pip install --upgrade pip | |
pip install -U ruff | |
# Include `--format=github` to enable automatic inline annotations. | |
- name: Run Ruff | |
run: ruff check --output-format=github src/ | |
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: Set up Python 3.12 | |
uses: actions/setup-python@v5 | |
with: | |
python-version: "3.11" | |
- 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 | |
- name: create packages | |
run: python -m build | |
- name: upload artifacts | |
uses: actions/upload-artifact@v3 | |
with: | |
name: build-dists | |
path: dist/ | |
release_python_package: | |
name: publish python package to pypi | |
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags') | |
runs-on: ubuntu-latest | |
needs: | |
- test-linux | |
- mypy-linux | |
- linting-linux | |
- build_python_package | |
- build_conda_package | |
permissions: | |
id-token: write # IMPORTANT: this permission is mandatory for trusted publishing | |
steps: | |
- name: Retrieve build distributions | |
uses: actions/download-artifact@v3 | |
with: | |
name: build-dists | |
path: dist/ | |
- name: publish to PyPI # make sure you have pypi trusted publishing configured for this repo | |
uses: pypa/gh-action-pypi-publish@release/v1 | |
build_conda_package: | |
name: conda package build (and upload if release) | |
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 kiara_plugin.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: | |
- 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 kiara_plugin.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 dharpa --token ${{ secrets.ANACONDA_PUSH_TOKEN }} build-dir | |
merge_tag_to_main: | |
name: merge current tag to main branch | |
runs-on: ubuntu-latest | |
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags') | |
needs: | |
- release_python_package | |
- release_conda_package | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- run: git config --global user.email "markus@frkl.io" | |
- 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_plugin.topic_modelling.git |