Update to latest matchms, gensim and poetry buildsystem #261
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] | |
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 | |
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 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: 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 | |
shell: bash -l {0} | |
run: poetry run isort --check-only --diff --conda-env spec2vec-dev . | |
# - name: SonarCloud Scan | |
# if: github.repository == 'iomega/spec2vec' | |
# uses: sonarsource/sonarcloud-github-action@master | |
# env: | |
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
# SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} | |
build_pypi: | |
name: Pypi and documentation build / 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'] | |
exclude: | |
# already tested in first_check job | |
- python-version: "3.10" | |
os: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Python info | |
run: | | |
which python | |
python --version | |
- name: Install dependencies | |
run: | | |
python -m pip install --upgrade pip poetry | |
- name: Build package | |
run: | | |
poetry build | |
- name: Test package | |
run: | | |
pip install twine | |
python -m twine check dist/* | |
- name: Install dependencies | |
run: | | |
python -m pip install --upgrade pip poetry | |
poetry install | |
- name: Show pip list | |
run: | | |
pip list | |
- name: Test | |
run: | | |
poetry run pytest | |
- name: Show environment variables | |
shell: bash -l {0} | |
run: | | |
env | sort | |
- name: Build documentation | |
run: | | |
poetry run make coverage doctest html | |
working-directory: readthedocs/ | |
env: | |
SPHINXOPTS: "-n" # enable nit-picky mode | |
- name: Check documentation coverage threshold | |
if: matrix.os == 'ubuntu-latest' | |
run: | | |
cat readthedocs/_build/coverage/python.txt | |
UNCOVERED_MEMBERS=$(grep '*' readthedocs/_build/coverage/python.txt | wc -l) | |
UNCOVERED_MEMBERS_ALLOWED=5 | |
if (( $UNCOVERED_MEMBERS > $UNCOVERED_MEMBERS_ALLOWED )) ; then echo "There are currently ${UNCOVERED_MEMBERS} uncovered members in the documentation, which is more than the ${UNCOVERED_MEMBERS_ALLOWED} allowed." && exit 1;fi | |
echo "The code is sufficiently documented with ${UNCOVERED_MEMBERS} uncovered members out of ${UNCOVERED_MEMBERS_ALLOWED} allowed."; | |
anaconda_build: | |
name: Anaconda build / python-3.10 / ubuntu-latest | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
needs: first_check | |
steps: | |
- uses: actions/checkout@v2 | |
with: | |
fetch-depth: "0" | |
- name: Create spec2vec-build environment | |
uses: conda-incubator/setup-miniconda@v2 | |
with: | |
activate-environment: spec2vec-build | |
auto-update-conda: true | |
environment-file: conda/environment-build.yml | |
python-version: "3.10" | |
- name: Show conda config | |
shell: bash -l {0} | |
run: | | |
conda info | |
conda list | |
conda config --show-sources | |
conda config --show | |
conda env list | |
- name: Python info | |
shell: bash -l {0} | |
run: | | |
which python | |
python --version | |
- name: Show environment variables | |
shell: bash -l {0} | |
run: | | |
env | sort | |
- name: Build the conda package | |
shell: bash -l {0} | |
run: | | |
export BUILDDIR=$RUNNER_TEMP/spec2vec/_build | |
[ "$RUNNING_OS" = "Windows" ] && export BUILDDIR=$RUNNER_TEMP\\spec2vec\\_build\\ | |
conda config --set anaconda_upload no | |
conda build --no-include-recipe \ | |
--channel bioconda --channel conda-forge \ | |
--croot ${BUILDDIR} \ | |
./conda | |
- name: Upload package artifact from build | |
uses: actions/upload-artifact@v2 | |
with: | |
name: conda-package-artifact | |
path: ${{ runner.temp }}/spec2vec/_build |