[Refactor] Migrate dependencies in docs/requirements.txt to pyproject.toml #30
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
# This workflow will install Python dependencies, run tests and black with a single version of Python | |
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions | |
name: Python build | |
on: | |
push: | |
branches: | |
- main | |
# Temporary inclusion of master branch during default branch name transition | |
- master | |
pull_request: | |
branches: | |
- main | |
# Temporary inclusion of master branch during default branch name transition | |
- master | |
jobs: | |
build: | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
python-version: ["3.8", "3.9", "3.10", "3.11"] | |
os: [ubuntu-latest, macos-latest] | |
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: | |
- uses: actions/checkout@v2 | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v2 | |
with: | |
python-version: ${{ matrix.python-version }} | |
#---------------------------------------------- | |
# ----- install & configure poetry ----- | |
#---------------------------------------------- | |
- name: Install Poetry | |
run: | | |
python -m pip install poetry | |
poetry config virtualenvs.in-project true --local | |
#---------------------------------------------- | |
# load cached venv if cache exists | |
#---------------------------------------------- | |
- name: Load cached venv | |
id: cached-poetry-dependencies | |
uses: actions/cache@v3 | |
with: | |
path: .venv | |
key: venv-${{ runner.os }}-${{ steps.setup-python.outputs.python-version }}-${{ hashFiles('**/poetry.lock') }} | |
#---------------------------------------------- | |
# install dependencies if cache does not exist | |
#---------------------------------------------- | |
- name: Install dependencies | |
if: steps.cached-poetry-dependencies.outputs.cache-hit != 'true' | |
run: poetry install --no-interaction --no-root --all-extras --without docs | |
#---------------------------------------------- | |
# install pycytominer | |
#---------------------------------------------- | |
- name: Install library | |
run: poetry install --no-interaction --only-root | |
#---------------------------------------------- | |
# run test suite and output coverage file | |
#---------------------------------------------- | |
- name: Test with pytest | |
run: | | |
poetry run pytest |