bump: version 1.0.1 → 1.1.0 #109
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: Integration Workflow | |
on: | |
pull_request: | |
push: | |
branches: [main] | |
tags: ["*"] | |
workflow_dispatch: | |
inputs: | |
pytest_addopts: | |
description: Extra options for pytest; use -vv for full details; see | |
https://docs.pytest.org/en/latest/example/simple.html#how-to-change-command-line-options-defaults | |
required: false | |
default: "" | |
env: | |
LANG: "en_US.utf-8" | |
LC_ALL: "en_US.utf-8" | |
PIP_CACHE_DIR: ${{ github.workspace }}/.cache/pip | |
POETRY_CACHE_DIR: ${{ github.workspace }}/.cache/pypoetry | |
POETRY_VIRTUALENVS_IN_PROJECT: "true" | |
PRE_COMMIT_HOME: ${{ github.workspace }}/.cache/pre-commit | |
PYTEST_ADDOPTS: ${{ github.event.inputs.pytest_addopts }} | |
PYTHONIOENCODING: "UTF-8" | |
TARGET_PYTHON_VERSION: "3.9" | |
jobs: | |
quality-test: | |
# This job is used to run pre-commit checks to ensure that all files are | |
# are formatted correctly. | |
name: Pre-commit checks | |
# Runs pre-commit checks on all files | |
# This job doesn't fail fast to ensure that feedback on function is still provided | |
strategy: | |
fail-fast: false | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repo | |
uses: actions/checkout@v4 | |
with: | |
# Full history required for branch-based pre-commit checks | |
fetch-depth: 0 | |
- name: Setup python, and check pre-commit cache | |
uses: ./.github/actions/setup-env | |
with: | |
python-version: ${{ env.TARGET_PYTHON_VERSION }} | |
cache-pre-commit: true | |
cache-venv: false | |
setup-poetry: false | |
install-deps: false | |
- name: Run pre-commit checks on all files | |
uses: pre-commit/[email protected] | |
with: | |
extra_args: --all-files | |
integration-test: | |
name: Pytest (Python ${{ matrix.python-version }} on ${{ matrix.os }}) | |
# Runs pytest on all tested versions of python and OSes | |
strategy: | |
fail-fast: false | |
matrix: | |
os: | |
- macos-latest | |
- ubuntu-latest | |
python-version: ["3.8", "3.9", "3.10", "3.11"] | |
runs-on: ${{ matrix.os }} | |
env: | |
OS: ${{ matrix.os }} | |
# This is needed to avoid a warning from SQLAlchemy | |
# https://sqlalche.me/e/b8d9 | |
# We can remove this once we upgrade to SQLAlchemy >= 2.0 | |
SQLALCHEMY_SILENCE_UBER_WARNING: "1" | |
steps: | |
- name: Checkout repo | |
uses: actions/checkout@v4 | |
- name: Setup python, and load cache | |
uses: ./.github/actions/setup-env | |
with: | |
python-version: ${{ matrix.python-version }} | |
cache-pre-commit: false | |
cache-venv: true | |
setup-poetry: true | |
install-deps: true | |
- name: Run pytest and generate coverage report | |
# For the target version and ubuntu, run pytest and generate coverage report | |
if: (matrix.os == 'ubuntu-latest') && (matrix.python-version == env.TARGET_PYTHON_VERSION) | |
run: poetry run pytest --cov=./ --cov-report=xml ${{ github.event.inputs.pytest_addopts }} | |
- name: Upload coverage to Codecov | |
# For the target version and ubuntu, upload coverage to Codecov | |
continue-on-error: true | |
if: (matrix.os == 'ubuntu-latest') && (matrix.python-version == env.TARGET_PYTHON_VERSION ) | |
uses: codecov/codecov-action@v3 | |
env: | |
OS: ${{ matrix.os }} | |
PYTHON: ${{ matrix.python-version }} | |
with: | |
file: ./coverage.xml | |
files: ./coverage1.xml,./coverage2.xml | |
directory: ./coverage/reports/ | |
env_vars: OS,PYTHON | |
fail_ci_if_error: true | |
flags: unittests | |
name: pycytominer | |
- name: Run pytest | |
# For every other version and/or OS, run pytest without coverage | |
if: (matrix.os != 'ubuntu-latest') || (matrix.python-version != env.TARGET_PYTHON_VERSION ) | |
run: poetry run pytest ${{ github.event.inputs.pytest_addopts }} | |
build: | |
name: Build versioned package | |
# This job is used to build the package and upload the artifacts to GitHub Actions workflow results. | |
# See https://github.com/actions/upload-artifact?tab=readme-ov-file#where-does-the-upload-go | |
runs-on: ubuntu-latest | |
outputs: | |
version: ${{ steps.get_version.outputs.version }} | |
steps: | |
- name: Checkout repo | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Setup python, and load cache | |
uses: ./.github/actions/setup-env | |
with: | |
python-version: ${{ env.TARGET_PYTHON_VERSION }} | |
cache-pre-commit: false | |
cache-venv: true | |
setup-poetry: true | |
install-deps: true | |
- name: Build | |
run: poetry build | |
- name: Get pycytominer version | |
id: get_version | |
run: | | |
echo "version=$(poetry version | cut -d' ' -f2 )" >> "$GITHUB_OUTPUT" | |
- name: Upload artifacts | |
uses: actions/upload-artifact@v4 | |
with: | |
name: wheel | |
path: dist/*.whl | |
if-no-files-found: error | |
retention-days: 90 | |
- name: Upload artifacts | |
uses: actions/upload-artifact@v4 | |
with: | |
name: sdist | |
path: dist/*.tar.gz | |
if-no-files-found: error | |
retention-days: 90 |