Skip to content

wip

wip #3

Workflow file for this run

name: CI
on:
pull_request: {}
push:
branches:
- main
- '*.x'
- win-arm64-wheels
tags:
- '*'
jobs:
linux:
runs-on: ubuntu-20.04
strategy:
fail-fast: false
matrix:
PYTHON:
- {VERSION: "3.12", NOXSESSION: "docs", COVERAGE: "false"}
- {VERSION: "3.12", NOXSESSION: "meta", COVERAGE: "false"}
- {VERSION: "3.12", NOXSESSION: "mypy", COVERAGE: "false"}
- {VERSION: "pypy-3.9", NOXSESSION: "tests"}
- {VERSION: "pypy-3.10", NOXSESSION: "tests"}
- {VERSION: "3.7", NOXSESSION: "tests"}
- {VERSION: "3.8", NOXSESSION: "tests"}
- {VERSION: "3.9", NOXSESSION: "tests"}
- {VERSION: "3.10", NOXSESSION: "tests"}
- {VERSION: "3.11", NOXSESSION: "tests"}
- {VERSION: "3.12", NOXSESSION: "tests"}
- {VERSION: "3.13", NOXSESSION: "tests"}
- {VERSION: "3.13", NOXSESSION: "tests", NOTE: "system", SODIUM_INSTALL: "system"}
- {VERSION: "3.13", NOXSESSION: "tests", NOTE: "minimal", SODIUM_INSTALL_MINIMAL: "1"}
name: "Linux ${{ matrix.PYTHON.VERSION }} ${{ matrix.PYTHON.NOXSESSION }} ${{ matrix.PYTHON.NOTE }}"
steps:
- uses: actions/[email protected]
- name: Setup python
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.PYTHON.VERSION }}
- name: Install nox and coverage
run: pip install nox coverage
- name: Install libsodium (system install only)
run: |
wget --timeout=60 https://download.libsodium.org/libsodium/releases/LATEST.tar.gz || \
wget --timeout=60 https://download.libsodium.org/libsodium/releases/LATEST.tar.gz
tar zxvf LATEST.tar.gz
cd libsodium-*
./configure ${SODIUM_INSTALL_MINIMAL:+--enable-minimal}
make
make check
sudo make install
sudo ldconfig
env:
SODIUM_INSTALL_MINIMAL: ${{ matrix.PYTHON.SODIUM_INSTALL_MINIMAL }}
if: matrix.PYTHON.SODIUM_INSTALL == 'system'
- name: Run tests
run: LIBSODIUM_MAKE_ARGS="-j$(nproc)" nox -s ${{ matrix.python.NOXSESSION }}
env:
SODIUM_INSTALL_MINIMAL: ${{ matrix.PYTHON.SODIUM_INSTALL_MINIMAL }}
SODIUM_INSTALL: ${{ matrix.PYTHON.SODIUM_INSTALL }}
- name: Upload coverage
run: |
curl -o codecov.sh -f https://codecov.io/bash || curl -o codecov.sh -f https://codecov.io/bash || curl -o codecov.sh -f https://codecov.io/bash || curl -o codecov.sh -f https://codecov.io/bash || curl -o codecov.sh -f https://codecov.io/bash
bash codecov.sh -n "Python ${{ matrix.PYTHON.VERSION }}${{ matrix.PYTHON.NOTE }} on Linux"
if: matrix.PYTHON.COVERAGE != 'false'
macos:
runs-on: ${{ matrix.RUNNER }}
strategy:
matrix:
RUNNER:
- 'macos-13'
- 'macos-latest'
PYTHON:
- {VERSION: "3.7", NOXSESSION: "tests"}
- {VERSION: "3.13", NOXSESSION: "tests"}
- {VERSION: "3.13", NOXSESSION: "tests", NOTE: " (minimal build)", SODIUM_INSTALL_MINIMAL: "1"}
exclude:
- PYTHON: {VERSION: "3.7", NOXSESSION: "tests"}
RUNNER: macos-latest
name: "${{ matrix.RUNNER }} ${{ matrix.PYTHON.VERSION }} ${{ matrix.python.NOXSESSION }} ${{ matrix.PYTHON.NOTE }}"
steps:
- uses: actions/[email protected]
- name: Setup python
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.PYTHON.VERSION }}
- name: Install nox and coverage
run: pip install nox coverage
- name: Run tests
run: LIBSODIUM_MAKE_ARGS="-j$(sysctl -n hw.ncpu)" nox -s ${{ matrix.python.NOXSESSION }}
env:
SODIUM_INSTALL_MINIMAL: ${{ matrix.PYTHON.SODIUM_INSTALL_MINIMAL }}
- name: Upload coverage
run: |
curl -o codecov.sh -f https://codecov.io/bash || curl -o codecov.sh -f https://codecov.io/bash || curl -o codecov.sh -f https://codecov.io/bash || curl -o codecov.sh -f https://codecov.io/bash || curl -o codecov.sh -f https://codecov.io/bash
bash codecov.sh -n "Python ${{ matrix.PYTHON.VERSION }}${{ matrix.PYTHON.NOTE }} on macOS"
windows:
runs-on: ${{ matrix.WINDOWS.IMAGE }}
strategy:
fail-fast: false
matrix:
WINDOWS:
- {ARCH: 'x86', SODIUM_ARCH: 'Win32', IMAGE: "windows-latest"}
- {ARCH: 'x64', SODIUM_ARCH: 'x64', IMAGE: "windows-latest"}
- {ARCH: 'arm64', SODIUM_ARCH: 'ARM64', IMAGE: "windows-11-arm"}
PYTHON:
- {VERSION: "3.7", NOXSESSION: "tests", SODIUM_MSVC_VERSION: "v143"}
- {VERSION: "3.8", NOXSESSION: "tests", SODIUM_MSVC_VERSION: "v143"}
- {VERSION: "3.9", NOXSESSION: "tests", SODIUM_MSVC_VERSION: "v143"}
- {VERSION: "3.10", NOXSESSION: "tests", SODIUM_MSVC_VERSION: "v143"}
- {VERSION: "3.11", NOXSESSION: "tests", SODIUM_MSVC_VERSION: "v143"}
- {VERSION: "3.12", NOXSESSION: "tests", SODIUM_MSVC_VERSION: "v143"}
- {VERSION: "3.13", NOXSESSION: "tests", SODIUM_MSVC_VERSION: "v143"}
name: "Windows ${{ matrix.WINDOWS.ARCH }} ${{ matrix.PYTHON.VERSION }} ${{ matrix.PYTHON.NOXSESSION }}"
steps:
- uses: actions/[email protected]
- name: Setup python
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.PYTHON.VERSION }}
architecture: ${{ matrix.WINDOWS.ARCH }}
- name: 'Extract libsodium libraries'
run: |
Expand-Archive src/libsodium-1.0.20-stable-msvc.zip -DestinationPath c:\
shell: powershell
- name: Install nox and coverage
run: pip install nox coverage
- name: Run tests
run: |
set PYNACL_SODIUM_LIBRARY_NAME=sodium
set PYNACL_SODIUM_STATIC=1
set SODIUM_INSTALL=system
set INCLUDE=C:/libsodium/include;%INCLUDE%
set LIB=C:/libsodium/${{ matrix.WINDOWS.SODIUM_ARCH }}/release/${{ matrix.PYTHON.SODIUM_MSVC_VERSION }}/static;%LIB%
nox -s ${{ matrix.PYTHON.NOXSESSION }}
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
shell: cmd
- name: Upload coverage
run: |
curl -o codecov.sh -f https://codecov.io/bash || curl -o codecov.sh -f https://codecov.io/bash || curl -o codecov.sh -f https://codecov.io/bash || curl -o codecov.sh -f https://codecov.io/bash || curl -o codecov.sh -f https://codecov.io/bash
bash codecov.sh -n "Python ${{ matrix.PYTHON.VERSION }} on Windows ${{ matrix.WINDOWS.ARCH }}"