Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
482 changes: 0 additions & 482 deletions cpp/.github/workflows/build.yml

This file was deleted.

138 changes: 138 additions & 0 deletions cpp/.github/workflows/build.yml.jinja
Original file line number Diff line number Diff line change
@@ -0,0 +1,138 @@
name: Build Status

on:
push:
branches:
- main
tags:
- v*
paths-ignore:
- LICENSE
- README.md
pull_request:
branches:
- main
workflow_dispatch:

concurrency:
group: {% raw %}${{ github.workflow }}-${{ github.head_ref || github.run_id }}{% endraw %}
cancel-in-progress: true

permissions:
contents: read
checks: write
pull-requests: write

jobs:
build:
runs-on: {% raw %}${{ matrix.os }}{% endraw %}

strategy:
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
python-version: ["3.9", "3.10", "3.11", "3.12"]
cibuildwheel: ["cp39", "cp310", "cp311", "cp312"]
exclude:
- python-version: "3.9"
cibuildwheel: "cp310"
- python-version: "3.9"
cibuildwheel: "cp311"
- python-version: "3.9"
cibuildwheel: "cp312"
- python-version: "3.10"
cibuildwheel: "cp39"
- python-version: "3.10"
cibuildwheel: "cp311"
- python-version: "3.10"
cibuildwheel: "cp312"
- python-version: "3.11"
cibuildwheel: "cp39"
- python-version: "3.11"
cibuildwheel: "cp310"
- python-version: "3.11"
cibuildwheel: "cp312"
- python-version: "3.12"
cibuildwheel: "cp39"
- python-version: "3.12"
cibuildwheel: "cp310"
- python-version: "3.12"
cibuildwheel: "cp311"

steps:
- uses: actions/checkout@v4

- name: Set up Python {% raw %}${{ matrix.python-version }}{% endraw %}
uses: actions/setup-python@v5
with:
python-version: {% raw %}${{ matrix.python-version }}{% endraw %}
cache: 'pip'
cache-dependency-path: 'pyproject.toml'

- name: Install dependencies
run: make develop
if: matrix.os != 'windows-latest'

- name: Install dependencies
run: |
call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars64.bat"
make develop
shell: cmd
if: matrix.os == 'windows-latest'

- name: Lint
run: make lint
if: matrix.os == 'ubuntu-latest' && matrix.python-version == '3.9'

- name: Checks
run: make checks
if: matrix.os == 'ubuntu-latest' && matrix.python-version == '3.9'

- name: Install build dependencies
run: pip install cibuildwheel

- name: Build (Linux)
run: make build-cibw
env:
CIBW_BUILD: {% raw %}"${{ matrix.cibuildwheel }}-manylinux*"{% endraw %}
CIBW_BUILD_VERBOSITY: 3
if: matrix.os == 'ubuntu-latest'

- name: Build (Macos)
run: make build-cibw
env:
CIBW_BUILD: {% raw %}"${{ matrix.cibuildwheel }}-macos*"{% endraw %}
CIBW_BUILD_VERBOSITY: 3
if: matrix.os == 'macos-latest'

- name: Build (Windows)
run: make build-cibw
env:
CIBW_BUILD: {% raw %}"${{ matrix.cibuildwheel }}-win_amd64"{% endraw %}
CIBW_BEFORE_ALL: call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars64.bat"
if: matrix.os == 'windows-latest'

- name: Test
run: make coverage

- name: Upload test results (Python)
uses: actions/upload-artifact@v4
with:
name: {% raw %}test-results-${{ matrix.os }}-${{ matrix.python-version }}{% endraw %}
path: junit.xml
if: matrix.os == 'ubuntu-latest' && matrix.python-version == '3.9'

- name: Publish Unit Test Results
uses: EnricoMi/publish-unit-test-result-action@v2
with:
files: '**/junit.xml'
if: matrix.os == 'ubuntu-latest' && matrix.python-version == '3.9'

- name: Upload coverage
uses: codecov/codecov-action@v5
with:
token: {% raw %}${{ secrets.CODECOV_TOKEN }}{% endraw %}

- uses: actions/upload-artifact@v4
with:
name: {% raw %}dist-${{matrix.os}}-${{matrix.python-version}}{% endraw %}
path: dist
151 changes: 151 additions & 0 deletions cpp/.gitignore.jinja
Original file line number Diff line number Diff line change
@@ -0,0 +1,151 @@
# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
*$py.class

# C extensions
*.a
*.so
*.obj
*.dll
*.exp
*.lib

# Distribution / packaging
.Python
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
pip-wheel-metadata/
share/python-wheels/
*.egg-info/
.installed.cfg
*.egg
MANIFEST

# PyInstaller
# Usually these files are written by a python script from a template
# before PyInstaller builds the exe, so as to inject date/other infos into it.
*.manifest
*.spec

# Installer logs
pip-log.txt
pip-delete-this-directory.txt

# Unit test / coverage reports
htmlcov/
.tox/
.nox/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
junit.xml
*.cover
*.py,cover
.hypothesis/
.pytest_cache/

# Translations
*.mo
*.pot

# Django stuff:
*.log
local_settings.py
db.sqlite3
db.sqlite3-journal

# Flask stuff:
instance/
.webassets-cache

# Scrapy stuff:
.scrapy

# PyBuilder
target/

# IPython
profile_default/
ipython_config.py

# pyenv
.python-version

# pipenv
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
# However, in case of collaboration, if having platform-specific dependencies or dependencies
# having no cross-platform support, pipenv may install dependencies that don't work, or not
# install all needed dependencies.
#Pipfile.lock

# PEP 582; used by e.g. github.com/David-OConnor/pyflow
__pypackages__/

# Celery stuff
celerybeat-schedule
celerybeat.pid

# SageMath parsed files
*.sage.py

# Environments
.env
.venv
env/
venv/
ENV/
env.bak/
venv.bak/

# Spyder project settings
.spyderproject
.spyproject

# Rope project settings
.ropeproject

# mkdocs documentation
/site

# mypy
.mypy_cache/
.dmypy.json
dmypy.json

# Pyre type checker
.pyre/

# Documentation
docs/_build/
/site
docs/api
docs/index.md
_template/labextension

# JS
js/node_modules
js/dist
{{module}}/extension

# Jupyter
.ipynb_checkpoints
.autoversion

# Mac
.DS_Store

# Rust
target
Loading
Loading