Skip to content

Update github workflow for Python 3.11. #56

Update github workflow for Python 3.11.

Update github workflow for Python 3.11. #56

Workflow file for this run

name: Python package
on:
push:
branches: [ develop ]
pull_request:
branches: [ develop ]
jobs:
build-sdist:
runs-on: 'ubuntu-latest'
steps:
- name: Set up Python
uses: actions/setup-python@v2
with:
python-version: '3.11'
- uses: actions/checkout@v2
with:
submodules: recursive
- name: Create sdist
run: |
./cddlib-makefile-gmp.sh
python setup.py sdist
- name: Upload sdist
uses: actions/upload-artifact@v3
with:
name: sdist
path: dist/*
if-no-files-found: error
test-ubuntu-macos:
runs-on: ${{ matrix.os }}
needs: build-sdist
strategy:
fail-fast: false
matrix:
os: ['ubuntu-latest', 'macos-latest']
python-version: ['3.7', '3.8', '3.9', '3.10', '3.11']
cython-version: ['']
include:
# test oldest supported Cython version
- os: 'ubuntu-latest'
python-version: '3.11'
cython-version: '==0.29.22'
steps:
- uses: actions/checkout@v2 # no submodules needed here, just checking out for the test suite
- name: Download sdist
uses: actions/download-artifact@v3
with:
name: sdist
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python-version }}
- name: Install libgmp (Ubuntu)
if: matrix.os == 'ubuntu-latest'
run: sudo apt-get install -y libgmp-dev
- name: Install libgmp (MacOS)
if: matrix.os == 'macos-latest'
run: brew install gmp
- name: Install Python dependencies
run: |
python -m pip install Cython${{ matrix.cython-version }} Sphinx pytest wheel numpy
- name: Install tarball
run: |
ls
python -m pip install --pre --no-index --find-links=. pycddlib
- name: Run test suite
run: |
pytest
cd docs
make doctest
build-mpir:
runs-on: 'windows-latest'
strategy:
fail-fast: false
matrix:
architecture: ['x86', 'x64']
platformtoolset: ['v143'] # all supported python versions can use this one
steps:
- name: Setup msbuild (Windows)
uses: microsoft/setup-msbuild@v1.1
- uses: actions/cache@v2
id: mpir-installed-cache
with:
path: mpir-mpir-3.0.0/lib/*/Release/
key: mpir-0-${{ matrix.platformtoolset }}-${{ matrix.architecture }}
- name: Install mpir
if: steps.mpir-installed-cache.outputs.cache-hit != 'true'
run: |
"Invoke-WebRequest -Uri "https://github.com/wbhart/mpir/archive/refs/heads/mpir-3.0.0.zip" -OutFile "mpir-3.0.0.zip"
7z x mpir-3.0.0.zip > NUL
if ("${{ matrix.architecture }}" -eq "x86") { $platform = "Win32" } else { $platform = "x64" }
msbuild mpir-mpir-3.0.0\build.vc14\lib_mpir_gc\lib_mpir_gc.vcxproj /p:Configuration=Release /p:Platform=$platform /p:PlatformToolset=${{ matrix.platformtoolset }} /verbosity:normal
dir mpir-mpir-3.0.0/lib/$platform/Release/
- name: Upload mpir
uses: actions/upload-artifact@v3
with:
name: mpir-${{ matrix.platformtoolset }}-${{ matrix.architecture }}
path: mpir-mpir-3.0.0/lib/*/Release/
if-no-files-found: error
build-test-windows:
runs-on: 'windows-latest'
needs: build-mpir
strategy:
fail-fast: false
matrix:
python-version: ['3.6', '3.7', '3.8', '3.9', '3.10', '3.11']
architecture: ['x86', 'x64']
platformtoolset: ['v143'] # all supported python versions can use this one
steps:
- uses: actions/checkout@v2
with:
submodules: recursive
- name: Download mpir
uses: actions/download-artifact@v3
with:
name: mpir-${{ matrix.platformtoolset }}-${{ matrix.architecture }}
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python-version }}
architecture: ${{ matrix.architecture }}
- name: Check Python
run: |
if ("${{ matrix.architecture }}" -eq "x86") { $platform = "Win32" } else { $platform = "x64" }
ls $platform/Release/
python --version
python -c "import struct; print(struct.calcsize('P') * 8)"
- name: Install Python dependencies
run: |
python -m pip install Cython Sphinx pytest wheel numpy
- name: Create bdist_wheel
run: |
./cddlib-makefile-gmp.ps1
dir cddlib/lib-src/
if ("${{ matrix.architecture }}" -eq "x86") { $platform = "Win32" } else { $platform = "x64" }
python setup.py build build_ext -I"$platform/Release/" -L"$platform/Release/"
python setup.py bdist_wheel
- name: Upload wheel
uses: actions/upload-artifact@v3
with:
name: windows-wheels
path: dist/*
if-no-files-found: error
- name: Install wheel
run: |
cd dist
ls
pip install --pre --no-index --find-links=. pycddlib
cd ..
- name: Run test suite
run: |
pytest
cd docs
make doctest