Update version, license, Read the Docs config, and dependency version… #176
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
name: lint-test-cover-docs-build-upload | |
on: | |
push | |
jobs: | |
manylinux: | |
runs-on: ubuntu-latest | |
container: quay.io/pypa/manylinux2014_x86_64 | |
strategy: | |
matrix: | |
python: | |
- {version: '3.7', version-abi: 'cp37', version-abi-suffix: 'cp37m'} | |
- {version: '3.8', version-abi: 'cp38', version-abi-suffix: 'cp38'} | |
- {version: '3.9', version-abi: 'cp39', version-abi-suffix: 'cp39'} | |
- {version: '3.10', version-abi: 'cp310', version-abi-suffix: 'cp310'} | |
- {version: '3.11', version-abi: 'cp311', version-abi-suffix: 'cp311'} | |
name: Python ${{ matrix.python.version }} with ABI ${{ matrix.python.version-abi }} for manylinux2014_x86_64 | |
env: | |
WHEELNAME: rbcl-${{ github.ref_name }}-${{ matrix.python.version-abi }}-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64 | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Install development dependencies. | |
run: | | |
yum -y install wget libffi-devel | |
- name: Download libsodium source tree archive. | |
run: | | |
wget https://download.libsodium.org/libsodium/releases/libsodium-1.0.18.tar.gz | |
mv libsodium-1.0.18.tar.gz src/rbcl/libsodium.tar.gz | |
- name: Install Python. | |
run: | | |
/opt/python/${{ matrix.python.version-abi }}-${{ matrix.python.version-abi-suffix }}/bin/python -m pip install virtualenv | |
/opt/python/${{ matrix.python.version-abi }}-${{ matrix.python.version-abi-suffix }}/bin/python -m virtualenv .venv | |
- name: Install Python dependencies for build process. | |
run: | | |
.venv/bin/pip install -U pip .[build] | |
- name: Build wheel file. | |
run: | | |
mkdir tmpwheelhouse | |
LIBSODIUM_MAKE_ARGS="-j$(nproc)" .venv/bin/python -m build --wheel | |
mv dist/rbcl*.whl tmpwheelhouse | |
mkdir wheelhouse | |
mv tmpwheelhouse/rbcl*.whl wheelhouse/ | |
cp build/lib*/rbcl/_sodium.py src/rbcl/_sodium.py | |
- name: Test wheel installation. | |
run: | | |
.venv/bin/pip install -f wheelhouse --no-index --force-reinstall --no-dependencies rbcl | |
- name: Lint and test module (and compiled libsodium shared library file). | |
run: | | |
.venv/bin/pip install -U .[lint,test] | |
.venv/bin/python -m pylint rbcl src/rbcl/_sodium.tmpl src/rbcl/_sodium_build.py --disable=duplicate-code # Check against linting rules. | |
.venv/bin/python src/rbcl/rbcl.py -v # Run doctests. | |
.venv/bin/python -m pytest # Run tests. | |
- name: Publish coverage results. | |
run: | | |
.venv/bin/pip install -U .[coveralls] | |
.venv/bin/python -m coveralls --service=github # Submit to coveralls. | |
if: matrix.python.version == '3.11' | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
COVERALLS_REPO_TOKEN: ${{ secrets.COVERALLS_REPO_TOKEN }} | |
- name: Test auto-generation of documentation. | |
run: | | |
.venv/bin/pip install -U .[docs] | |
cd docs | |
../.venv/bin/sphinx-apidoc -f -E --templatedir=_templates -o _source .. ../src/rbcl/_sodium_build.py | |
make html SPHINXBUILD='../.venv/bin/sphinx-build' | |
cd .. | |
- name: Upload wheel file. | |
run: | | |
mkdir rbcl-wheelhouse | |
mv wheelhouse/rbcl*.whl rbcl-wheelhouse/${{ env.WHEELNAME }}.whl | |
- uses: actions/upload-artifact@v1 | |
with: | |
name: ${{ env.WHEELNAME }} | |
path: rbcl-wheelhouse/ | |
macos: | |
runs-on: macos-latest | |
strategy: | |
matrix: | |
python: | |
- {version: '3.7', version-abi: 'cp37', version-url: '3.7.9'} | |
- {version: '3.8', version-abi: 'cp38', version-url: '3.8.9'} | |
- {version: '3.9', version-abi: 'cp39', version-url: '3.9.9'} | |
name: Python ${{ matrix.python.version }} with ABI ${{ matrix.python.version-abi }} for macOS 10.9 | |
env: | |
WHEELNAME: rbcl-${{ github.ref_name }}-${{ matrix.python.version-abi }}-abi3-macosx_10_9_x86_64 | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Download libsodium source tree archive. | |
run: | | |
wget https://download.libsodium.org/libsodium/releases/libsodium-1.0.18.tar.gz | |
mv libsodium-1.0.18.tar.gz src/rbcl/libsodium.tar.gz | |
- name: Install Python. | |
run: | | |
curl "https://www.python.org/ftp/python/${{ matrix.python.version-url }}/python-${{ matrix.python.version-url }}-macosx10.9.pkg" -o python.pkg | |
sudo installer -pkg python.pkg -target / | |
/Library/Frameworks/Python.framework/Versions/${{ matrix.python.version }}/bin/python3 -m pip install -U virtualenv | |
/Library/Frameworks/Python.framework/Versions/${{ matrix.python.version }}/bin/python3 -m virtualenv venv | |
- name: Install Python dependencies for build process. | |
run: | | |
venv/bin/pip install -U pip .[build] | |
- name: Build wheel file. | |
run: | | |
mkdir wheelhouse | |
rm -f dist/*.* | |
LIBSODIUM_MAKE_ARGS="-j$(sysctl -n hw.ncpu)" CFLAGS="-mmacosx-version-min=10.9 -march=core2" \ | |
venv/bin/python -m build --wheel && mv dist/rbcl*.whl wheelhouse | |
cp build/lib*/rbcl/_sodium.py src/rbcl/_sodium.py | |
- name: Test wheel installation. | |
run: | | |
venv/bin/pip install -f wheelhouse --no-index --force-reinstall --no-dependencies rbcl | |
- name: Lint and test module (and compiled libsodium shared library file). | |
run: | | |
venv/bin/pip install -U pip .[lint,test] | |
venv/bin/python -m pylint rbcl src/rbcl/_sodium.tmpl src/rbcl/_sodium_build.py --disable=duplicate-code # Check against linting rules. | |
venv/bin/python src/rbcl/rbcl.py -v # Run doctests. | |
venv/bin/python -m pytest # Run tests. | |
- name: Test auto-generation of documentation. | |
run: | | |
venv/bin/pip install -U .[docs] | |
cd docs | |
../venv/bin/sphinx-apidoc -f -E --templatedir=_templates -o _source .. ../src/rbcl/_sodium_build.py | |
make html SPHINXBUILD='../venv/bin/sphinx-build' | |
cd .. | |
- name: Upload wheel file. | |
run: | | |
mkdir rbcl-wheelhouse | |
mv wheelhouse/rbcl*.whl rbcl-wheelhouse/${{ env.WHEELNAME }}.whl | |
- uses: actions/upload-artifact@v1 | |
with: | |
name: ${{ env.WHEELNAME }} | |
path: rbcl-wheelhouse/ | |
macos-arm: | |
runs-on: [self-hosted, macos, ARM64] | |
strategy: | |
matrix: | |
python: | |
- {version: '3.9', version-abi: 'cp39', version-url: '3.9.9'} | |
- {version: '3.10', version-abi: 'cp310', version-url: '3.10.6'} | |
- {version: '3.11', version-abi: 'cp311', version-url: '3.11.3'} | |
name: Python ${{ matrix.python.version }} with ABI ${{ matrix.python.version-abi }} for macOS 11 ARM | |
env: | |
WHEELNAME: rbcl-${{ github.ref_name }}-${{ matrix.python.version-abi }}-abi3-macosx_10_10_universal2 | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Download libsodium source tree archive. | |
run: | | |
wget https://download.libsodium.org/libsodium/releases/libsodium-1.0.18.tar.gz | |
mv libsodium-1.0.18.tar.gz src/rbcl/libsodium.tar.gz | |
- name: Install Python. | |
run: | | |
curl "https://www.python.org/ftp/python/${{ matrix.python.version-url }}/python-${{ matrix.python.version-url }}-macos11.pkg" -o python.pkg | |
sudo installer -pkg python.pkg -target / | |
/Library/Frameworks/Python.framework/Versions/${{ matrix.python.version }}/bin/python3 -m pip install -U virtualenv | |
/Library/Frameworks/Python.framework/Versions/${{ matrix.python.version }}/bin/python3 -m virtualenv venv | |
- name: Install Python dependencies for build process. | |
run: | | |
venv/bin/pip install -U pip .[build] | |
- name: Build wheel file. | |
run: | | |
mkdir wheelhouse | |
rm -f dist/*.* | |
LIBSODIUM_MAKE_ARGS="-j$(sysctl -n hw.ncpu)" MACOSX_DEPLOYMENT_TARGET="10.10" CFLAGS="-arch arm64" ARCHFLAGS="-arch arm64" _PYTHON_HOST_PLATFORM="macosx-10.9-universal2" \ | |
venv/bin/python -m build --wheel && mv dist/rbcl*.whl wheelhouse | |
cp build/lib*/rbcl/_sodium.py src/rbcl/_sodium.py | |
- name: Test wheel installation. | |
run: | | |
venv/bin/pip install -f wheelhouse --no-index --force-reinstall --no-dependencies rbcl | |
- name: Lint and test module (and compiled libsodium shared library file). | |
run: | | |
venv/bin/pip install -U pip .[lint,test] | |
venv/bin/python -m pylint rbcl src/rbcl/_sodium.tmpl src/rbcl/_sodium_build.py --disable=duplicate-code # Check against linting rules. | |
venv/bin/python src/rbcl/rbcl.py -v # Run doctests. | |
venv/bin/python -m pytest # Run tests. | |
- name: Test auto-generation of documentation. | |
run: | | |
venv/bin/pip install -U .[docs] | |
cd docs | |
../venv/bin/sphinx-apidoc -f -E --templatedir=_templates -o _source .. ../src/rbcl/_sodium_build.py | |
make html SPHINXBUILD='../venv/bin/sphinx-build' | |
cd .. | |
- name: Upload wheel file. | |
run: | | |
mkdir rbcl-wheelhouse | |
mv wheelhouse/rbcl*.whl rbcl-wheelhouse/${{ env.WHEELNAME }}.whl | |
- uses: actions/upload-artifact@v1 | |
with: | |
name: ${{ env.WHEELNAME }} | |
path: rbcl-wheelhouse/ | |
windows: | |
runs-on: windows-latest | |
strategy: | |
matrix: | |
windows: | |
- {version: 'win32', arch: 'x86', arch-sodium: 'Win32', arch-vs: 'x86'} | |
- {version: 'win_amd64', arch: 'x64', arch-sodium: 'x64', arch-vs: 'amd64'} | |
python: | |
- {version: '3.7', version-abi: 'cp37'} | |
- {version: '3.8', version-abi: 'cp38'} | |
- {version: '3.9', version-abi: 'cp39'} | |
- {version: '3.10', version-abi: 'cp310'} | |
- {version: '3.11', version-abi: 'cp311'} | |
name: Python ${{ matrix.python.version }} with ABI ${{ matrix.python.version-abi }} for Windows ${{ matrix.windows.arch }} | |
env: | |
WHEELNAME: rbcl-${{ github.ref_name }}-${{ matrix.python.version-abi }}-abi3-${{ matrix.windows.version }} | |
INCLUDE: C:\libsodium\include | |
LIB: C:\libsodium\${{ matrix.windows.arch-sodium }}\Release\v142\dynamic\ | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Download and extract libsodium dynamic library file. | |
run: | | |
wget -O C:\libsodium-1.0.18-msvc.zip https://download.libsodium.org/libsodium/releases/libsodium-1.0.18-msvc.zip | |
Expand-Archive C:\libsodium-1.0.18-msvc.zip -DestinationPath C:\ | |
shell: powershell | |
- name: Install Python. | |
uses: actions/setup-python@v4 | |
with: | |
python-version: ${{ matrix.python.version }} | |
architecture: ${{ matrix.windows.arch }} | |
- name: Install Python dependencies for build process. | |
run: | | |
python -m pip install -U pip .[build] | |
shell: bash | |
- name: Build wheel file. | |
run: | | |
mkdir wheelhouse | |
call "C:\Program Files (x86)\Microsoft Visual Studio\2022\Enterprise\Common7\Tools\VsDevCmd.bat" -no_logo -arch=${{ matrix.windows.arch-vs }} | |
python -m build --wheel | |
mv dist/rbcl*.whl wheelhouse | |
cp build/lib*/rbcl/_sodium.py src/rbcl/_sodium.py | |
shell: cmd | |
- name: Test wheel installation. | |
run: | | |
pip install -f wheelhouse rbcl --no-index --force-reinstall --no-dependencies | |
shell: bash | |
- name: Lint and test module (and compiled libsodium shared library file). | |
run: | | |
python -m pip install -U pip .[lint,test] | |
python -m pylint rbcl src/rbcl/_sodium.tmpl src/rbcl/_sodium_build.py --disable=duplicate-code # Check against linting rules. | |
python src/rbcl/rbcl.py -v # Run doctests. | |
python -m pytest # Run tests. | |
shell: bash | |
- name: Test auto-generation of documentation. | |
run: | | |
python -m pip install -U .[docs] | |
cd docs | |
sphinx-apidoc -f -E --templatedir=_templates -o _source .. ../src/rbcl/_sodium_build.py | |
make html | |
cd .. | |
shell: bash | |
- name: Upload wheel file. | |
run: | | |
mkdir rbcl-wheelhouse | |
move wheelhouse\rbcl*.whl rbcl-wheelhouse\${{ env.WHEELNAME }}.whl | |
shell: cmd | |
- uses: actions/upload-artifact@v1 | |
with: | |
name: ${{ env.WHEELNAME }} | |
path: rbcl-wheelhouse\ |