-
Notifications
You must be signed in to change notification settings - Fork 17
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
14 changed files
with
55 additions
and
147 deletions.
There are no files selected for viewing
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,142 +1,41 @@ | ||
|
||
name: Python PySDD package | ||
|
||
on: | ||
push: | ||
branches: [ deploy ] | ||
# pull_request: | ||
# branches: [ deploy ] | ||
|
||
jobs: | ||
build_unix: | ||
build_wheels: | ||
name: Build wheels on ${{ matrix.os }} | ||
runs-on: ${{ matrix.os }} | ||
strategy: | ||
fail-fast: true | ||
fail-fast: false | ||
matrix: | ||
# os: [ubuntu-20.04,ubuntu-18.04] | ||
python-version: ["3.11"] | ||
os: [ ubuntu-22.04 ] | ||
# cibuildwheel will automatically provide all Python versions | ||
# python-version: [ "3.9" ] | ||
steps: | ||
- uses: actions/checkout@v4 | ||
- name: Set up Python ${{ matrix.python-version }} | ||
uses: actions/setup-python@v5 | ||
with: | ||
python-version: ${{ matrix.python-version }} | ||
- name: Install dependencies | ||
run: | | ||
python -m pip install --upgrade pip | ||
if [ -f requirements.txt ]; then pip install -r requirements.txt; fi | ||
python -m pip install cibuildwheel==2.19.1 | ||
- name: Build wheel | ||
run: | | ||
pwd | ||
ls | ||
python -m cibuildwheel --output-dir dist/ | ||
env: | ||
CIBW_BUILD_VERBOSITY: 2 | ||
# cp36-* and cp37-* do not support f-strings | ||
CIBW_SKIP: cp36-* cp37-* pp* *-manylinux_i686 *-musllinux_i686 *-musllinux_x86_64 | ||
CIBW_TEST_EXTRAS: "dev" | ||
CIBW_TEST_COMMAND: python -m pytest --ignore=venv {project}/tests | ||
- name: Store wheels | ||
uses: actions/upload-artifact@v4 | ||
with: | ||
name: dist-${{ matrix.os }}-${{ matrix.python-version }} | ||
path: dist/*.whl | ||
os: [windows-latest, ubuntu-latest, macos-13, macos-14] | ||
|
||
|
||
build_macos: | ||
name: Build wheels on ${{ matrix.os }} | ||
runs-on: ${{ matrix.os }} | ||
strategy: | ||
fail-fast: true | ||
matrix: | ||
os: [ macos-12, macos-13, macos-14 ] | ||
python-version: ["3.8","3.9","3.10", "3.11", "3.12"] | ||
steps: | ||
- uses: actions/checkout@v4 | ||
- name: Set up Python ${{ matrix.python-version }} | ||
uses: actions/setup-python@v5 | ||
with: | ||
python-version: ${{ matrix.python-version }} | ||
- name: Install dependencies | ||
run: | | ||
python -m pip install --upgrade pip | ||
python -m pip install pytest build | ||
if [ -f requirements.txt ]; then pip install -r requirements.txt; fi | ||
- name: Compile and install | ||
run: | | ||
python -m pip install . -v | ||
ls ${{ github.workspace }}/build || true | ||
- name: Test with pytest | ||
run: | | ||
mv pysdd pysdd_pkg | ||
python -m pytest --ignore=venv | ||
mv pysdd_pkg pysdd | ||
- name: Build | ||
run: | | ||
python -m build | ||
- name: Store wheels | ||
uses: actions/upload-artifact@v4 | ||
with: | ||
name: dist-${{ matrix.os }}-${{ matrix.python-version }} | ||
path: dist/*.whl | ||
|
||
build_windows: | ||
name: Build wheels on ${{ matrix.os }} | ||
runs-on: ${{ matrix.os }} | ||
strategy: | ||
fail-fast: true | ||
matrix: | ||
os: [ windows-2022 ] # windows-2019 (produces same filenames as 2022) | ||
python-version: ["3.8","3.9","3.10", "3.11", "3.12"] | ||
steps: | ||
- uses: actions/checkout@v4 | ||
- name: Set up Python ${{ matrix.python-version }} | ||
id: setuppython | ||
uses: actions/setup-python@v5 | ||
- name: Set up QEMU | ||
if: runner.os == 'Linux' | ||
uses: docker/setup-qemu-action@v3 | ||
with: | ||
python-version: ${{ matrix.python-version }} | ||
- name: Install dependencies | ||
run: | | ||
python -m pip install --upgrade pip | ||
python -m pip install --upgrade setuptools | ||
python -m pip install pytest build SCons | ||
python -m pip install "cython>=0.29.6" | ||
- name: Compile libsdd | ||
run: | | ||
cd ${{ github.workspace }}/pysdd/lib/libsdd-2.0 | ||
ls | ||
scons | ||
cp ${{ github.workspace }}/pysdd/lib/libsdd-2.0/build/sdd.dll ${{ github.workspace }}/pysdd/lib/sdd-2.0/lib/Windows/ | ||
cp ${{ github.workspace }}/pysdd/lib/libsdd-2.0/build/sdd.dll ${{ github.workspace }}/pysdd/ | ||
cp ${{ github.workspace }}/pysdd/lib/libsdd-2.0/build/sdd.lib ${{ github.workspace }}/pysdd/lib/sdd-2.0/lib/Windows/ | ||
- name: Store pysdd library | ||
uses: actions/upload-artifact@v4 | ||
with: | ||
name: library-${{ matrix.os }}-${{ matrix.python-version }} | ||
path: ${{ github.workspace }}/pysdd/lib/libsdd-2.0/build/sdd.dll | ||
- name: Compile and install | ||
run: | | ||
python -m pip install . -vvv | ||
ls ${{ github.workspace }}/build || true | ||
- name: Test with pytest | ||
run: | | ||
mv pysdd pysdd_pkg | ||
python -m pytest --ignore=venv | ||
mv pysdd_pkg pysdd | ||
- name: Build | ||
run: | | ||
python -m build | ||
- name: Store wheels | ||
uses: actions/upload-artifact@v4 | ||
with: | ||
name: dist-${{ matrix.os }}-${{ matrix.python-version }} | ||
path: dist/*.whl | ||
platforms: all | ||
|
||
- name: Build wheels | ||
uses: pypa/[email protected] | ||
env: | ||
# configure cibuildwheel to build native archs ('auto') and ARM64 | ||
CIBW_ARCHS_LINUX: auto aarch64 | ||
CIBW_SKIP: cp36-* cp37-* pp* *i686 *ppc64le *s390x *win32* | ||
CIBW_TEST_REQUIRES: pytest | ||
CIBW_TEST_COMMAND: "pytest {project}/tests" | ||
CIBW_BEFORE_ALL: "pip install SCons && cd pysdd/lib/libsdd-2.0 && scons && cp -r build ../sdd-2.0/lib" | ||
|
||
- uses: actions/upload-artifact@v4 | ||
with: | ||
name: cibw-wheels-${{ matrix.os }}-${{ strategy.job-index }} | ||
path: ./wheelhouse/*.whl | ||
build_sdist: | ||
name: Prepare source distribution | ||
runs-on: ubuntu-latest | ||
|
@@ -163,7 +62,7 @@ jobs: | |
runs-on: ubuntu-latest | ||
# upload to PyPI on every tag starting with 'v' | ||
# if: github.event_name == 'push' && startsWith(github.event.ref, 'refs/tags/v') | ||
needs: [ build_unix,build_macos,build_windows,build_sdist ] | ||
needs: [ build_wheels,build_sdist ] | ||
|
||
steps: | ||
- uses: actions/download-artifact@v4 | ||
|
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 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
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
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