Skip to content

Fixed: Node.__hash__() to instance-based hashing strategy. #79

Fixed: Node.__hash__() to instance-based hashing strategy.

Fixed: Node.__hash__() to instance-based hashing strategy. #79

name: Run tests and build the Python distribution
on:
push:
branches:
- main
# --------------------------------------------------------------------------------------------------------------------
workflow_call:
inputs:
version:
required: true
type: string
python-versions:
required: true
type: string
default: "cp38-cp38"
# ----------------------------------------------------------------------------------------------------------------------
defaults:
run:
shell: bash
working-directory: .
# ----------------------------------------------------------------------------------------------------------------------
concurrency:
group: 'jpt-building-and-deployment'
cancel-in-progress: true
# ----------------------------------------------------------------------------------------------------------------------
jobs:
test-and-build:
name: Build and Test the Python distribution
runs-on: ubuntu-22.04
steps:
- name: Checkout πŸ›Ž
uses: actions/checkout@v3
# ----------------------------------------------------------------------------------------------------------------
- name: Setup python 🐍
uses: actions/setup-python@v4
with:
python-version: 3.8
cache: pip
# ----------------------------------------------------------------------------------------------------------------
- name: Setup Graphviz πŸ“Š
uses: ts-graphviz/setup-graphviz@v1
# ----------------------------------------------------------------------------------------------------------------
- name: Install user dependencies 🍼
uses: py-actions/py-dependency-install@v4
with:
path: "requirements.txt"
# ----------------------------------------------------------------------------------------------------------------
- name: Install developer dependencies πŸ“
uses: py-actions/py-dependency-install@v4
with:
path: "requirements-dev.txt"
# ----------------------------------------------------------------------------------------------------------------
- name: "Create .version file if necessary [Version # passed is '${{ inputs.version }}'] πŸ”’"
if: ${{ inputs.version != '' }}
run: |
echo "${{ inputs.version }}" > src/jpt/.version
# ----------------------------------------------------------------------------------------------------------------
- name: Run Tests πŸŽ“
run: |
cd test
PYTHONPATH=../src python -m unittest discover
# ----------------------------------------------------------------------------------------------------------------
- name: Build binary wheels πŸ”¨
uses: RalfG/python-wheels-manylinux-build@v0.7.1
with:
python-versions: ${{ inputs.python-versions || 'cp38-cp38' }}
build-requirements: 'cython<=0.29.35 numpy'
pip-wheel-args: '-w ./dist-raw --no-deps'
# ----------------------------------------------------------------------------------------------------------------
- name: Install Sphinx dependencies πŸ“š
uses: py-actions/py-dependency-install@v4
with:
path: "doc/requirements.txt"
# ----------------------------------------------------------------------------------------------------------------
- name: Build Sphinx documentation πŸ“
working-directory: ./doc
run: |
sudo apt install pandoc
make html
# ----------------------------------------------------------------------------------------------------------------
- name: Make wheel available πŸ”§
id: wheel_url
uses: actions/upload-artifact@v3
with:
name: pyjpt-wheel
path: dist-raw/*manylinux*.whl