Skip to content

Upped Pybind11, Replaced Release version with PyPi version, added all… #460

Upped Pybind11, Replaced Release version with PyPi version, added all…

Upped Pybind11, Replaced Release version with PyPi version, added all… #460

Workflow file for this run

name: CI-CD
on:
push:
inputs:
allowDeploy:
description: "Whether to deploy."
required: true
default: true
type: boolean
pull_request:
types: [opened, edited, synchronize, reopened]
inputs:
allowDeploy:
description: "Whether to deploy."
required: true
default: true
type: boolean
workflow_dispatch:
inputs:
allowDeploy:
description: "Whether to deploy."
required: true
default: false
type: boolean
jobs:
matrix_prep:
name: Prepare Matrix
runs-on: ubuntu-latest
outputs:
matrix: ${{ steps.set-matrix.outputs.matrix }}
steps:
- uses: actions/checkout@v3
- id: set-matrix
uses: JoshuaTheMiller/conditional-build-matrix@main
env:
BRANCH_NAME: ${GITHUB_REF#refs/heads/}
with:
inputFile: '.github/workflows/matrix_includes.json'
filter: '[?starts_with(`${{ env.BRANCH_NAME }}`, runOn)] || [?runOn == `always`]'
syntax_check:
name: Check for syntax errors
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Flake8 - Error on syntax errors or undefined names
uses: py-actions/flake8@v2
with:
args: --count --select=E9,F63,F7,F82 --show-source --statistics
update-pip: "true"
- name: Flake8 - Warn on everything else
uses: py-actions/flake8@v2
with:
args: --count --exit-zero --max-complexity=10 --statistics
max-line-length: 127
update-pip: "true"
pytest:
name: Pytest
needs: syntax_check
strategy:
matrix:
python-version: [3.9]
os: [ubuntu-latest, macos-latest]
# os: [ubuntu-latest, windows-latest, macos-latest]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v3
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: |
pip install --upgrade pip
pip install -r requirements.txt
- name: Build and install
run: pip install --verbose .
# Exclude beam_width specification for macOS as it has different results.
- name: Test with pytest
run: |
if [ "$RUNNER_OS" == "Linux" ] || [ "$RUNNER_OS" == "Windows" ]; then
pytest
elif [ "$RUNNER_OS" == "macOS" ]; then
pytest -k 'not TestBeamSearch'; \
pytest -k '_no_bw or _bw_m1'
fi
shell: bash
build_wheels:
name: Build wheels
needs: [pytest, matrix_prep]
strategy:
matrix: ${{ fromJson(needs.matrix_prep.outputs.matrix) }}
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v3
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: "3.9"
- name: Build wheels
uses: pypa/cibuildwheel@v2.11.3
env:
CIBW_BUILD: ${{ matrix.cibw_build }}
CIBW_SKIP: ${{ matrix.cibw_skip }}
CIBW_PROJECT_REQUIRES_PYTHON: ">=3.9"
- uses: actions/upload-artifact@v3
with:
path: ./wheelhouse/*.whl
build_sdist:
name: Build source distribution
needs: pytest
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Setup Python
uses: actions/setup-python@v4
with:
python-version: "3.9"
- name: Install dependencies
run: python -m pip install twine build
- name: Build sdist
run: python -m build -s
- name: Check metadata
run: twine check dist/*
- uses: actions/upload-artifact@v3
with:
path: dist/*.tar.gz
deploy:
if: github.ref == 'refs/heads/master' && ${{ inputs.allowDeploy }} == 'true'
needs: [build_wheels, build_sdist]
runs-on: ubuntu-latest
steps:
- uses: actions/setup-python@v4
with:
python-version: "3.9"
- uses: actions/download-artifact@v3
with:
name: artifact
path: dist
- name: Publish distribution to PyPI
uses: pypa/gh-action-pypi-publish@release/v1
with:
user: __token__
password: ${{ secrets.PYPI_API_TOKEN }}