Bump actions/checkout from 3.5.3 to 3.6.0 #77
Workflow file for this run
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: Wheel Builder | |
permissions: | |
contents: read | |
on: | |
workflow_dispatch: | |
inputs: | |
version: | |
description: The version to build | |
required: false | |
pull_request: | |
paths: | |
- .github/workflows/wheel-builder.yml | |
- setup.py | |
- setup.cfg | |
- pyproject.toml | |
jobs: | |
manylinux: | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
PYTHON: | |
- { VERSION: "cp37-cp37m", ABI_VERSION: 'cp37' } | |
- { VERSION: "pp39-pypy39_pp73" } | |
- { VERSION: "pp310-pypy310_pp73" } | |
MANYLINUX: | |
- { CONTAINER: "cryptography-manylinux2014:x86_64", NAME: "manylinux2014" } | |
- { CONTAINER: "cryptography-manylinux_2_28:x86_64", NAME: "manylinux_2_28" } | |
- { CONTAINER: "cryptography-musllinux_1_1:x86_64", NAME: "musllinux_1_1" } | |
exclude: | |
# There are no readily available musllinux PyPy distributions | |
- PYTHON: { VERSION: "pp39-pypy39_pp73" } | |
MANYLINUX: { NAME: "musllinux_1_1", CONTAINER: "cryptography-musllinux_1_1:x86_64"} | |
- PYTHON: { VERSION: "pp310-pypy310_pp73" } | |
MANYLINUX: { NAME: "musllinux_1_1", CONTAINER: "cryptography-musllinux_1_1:x86_64"} | |
name: "${{ matrix.PYTHON.VERSION }} for ${{ matrix.MANYLINUX.NAME }}" | |
container: ghcr.io/pyca/${{ matrix.MANYLINUX.CONTAINER }} | |
steps: | |
- uses: actions/[email protected] | |
with: | |
# The tag to build or the tag received by the tag event | |
ref: ${{ github.event.inputs.version || github.ref }} | |
- run: /opt/python/${{ matrix.PYTHON.VERSION }}/bin/python -m venv .venv | |
- name: Install python dependencies | |
run: .venv/bin/pip install -U pip wheel setuptools-rust | |
- name: Make sdist | |
run: .venv/bin/python setup.py sdist | |
- run: tar zxvf dist/bcrypt*.tar.gz && mkdir tmpwheelhouse | |
- name: Build the wheel | |
run: | | |
if [ -n "${{ matrix.PYTHON.ABI_VERSION }}" ]; then | |
PY_LIMITED_API="--py-limited-api=${{ matrix.PYTHON.ABI_VERSION }}" | |
fi | |
cd bcrypt* && ../.venv/bin/python setup.py bdist_wheel $PY_LIMITED_API && mv dist/bcrypt*.whl ../tmpwheelhouse | |
env: | |
RUSTUP_HOME: /root/.rustup | |
- run: auditwheel repair tmpwheelhouse/bcrypt*.whl -w wheelhouse/ | |
- run: .venv/bin/pip install bcrypt --no-index -f wheelhouse/ | |
- run: | | |
.venv/bin/python -c "import bcrypt; password = b'super secret password';hashed = bcrypt.hashpw(password, bcrypt.gensalt());bcrypt.checkpw(password, hashed)" | |
- run: mkdir bcrypt-wheelhouse | |
- run: mv wheelhouse/bcrypt*.whl bcrypt-wheelhouse/ | |
- uses: actions/[email protected] | |
with: | |
name: "bcrypt-${{ github.event.inputs.version }}-${{ matrix.MANYLINUX.NAME }} -${{ matrix.PYTHON.ABI_VERSION }}" | |
path: bcrypt-wheelhouse/ | |
macos: | |
runs-on: macos-11 | |
strategy: | |
matrix: | |
PYTHON: | |
- VERSION: '3.11' | |
ABI_VERSION: 'cp37' | |
DOWNLOAD_URL: 'https://www.python.org/ftp/python/3.11.3/python-3.11.3-macos11.pkg' | |
BIN_PATH: '/Library/Frameworks/Python.framework/Versions/3.11/bin/python3' | |
name: "Python ${{ matrix.PYTHON.VERSION }} for ABI ${{ matrix.PYTHON.ABI_VERSION }} on macOS" | |
steps: | |
- uses: actions/[email protected] | |
with: | |
# The tag to build or the tag received by the tag event | |
ref: ${{ github.event.inputs.version || github.ref }} | |
persist-credentials: false | |
- run: | | |
curl "${{ matrix.PYTHON.DOWNLOAD_URL }}" -o python.pkg | |
sudo installer -pkg python.pkg -target / | |
- uses: dtolnay/rust-toolchain@0e66bd3e6b38ec0ad5312288c83e47c143e6b09e | |
with: | |
toolchain: stable | |
# Add the arm64 target in addition to the native arch (x86_64) | |
target: aarch64-apple-darwin | |
- run: ${{ matrix.PYTHON.BIN_PATH }} -m venv venv | |
- run: venv/bin/pip install -U pip wheel setuptools-rust | |
- name: Make sdist | |
run: venv/bin/python setup.py sdist | |
- run: tar zxvf dist/bcrypt*.tar.gz && mkdir wheelhouse | |
- name: Build the wheel | |
run: cd bcrypt* && ../venv/bin/python setup.py bdist_wheel --py-limited-api=${{ matrix.PYTHON.ABI_VERSION }} && mv dist/bcrypt*.whl ../wheelhouse | |
env: | |
PYTHON_VERSION: ${{ matrix.PYTHON.ABI_VERSION }} | |
MACOSX_DEPLOYMENT_TARGET: '10.10' | |
CFLAGS: '-arch arm64 -arch x86_64' | |
ARCHFLAGS: '-arch arm64 -arch x86_64' | |
_PYTHON_HOST_PLATFORM: 'macosx-10.9-universal2' | |
- run: venv/bin/pip install -f wheelhouse --no-index bcrypt | |
- run: | | |
venv/bin/python -c "import bcrypt;password = b'super secret password';hashed = bcrypt.hashpw(password, bcrypt.gensalt());bcrypt.checkpw(password, hashed)" | |
- run: mkdir bcrypt-wheelhouse | |
- run: mv wheelhouse/bcrypt*.whl bcrypt-wheelhouse/ | |
- uses: actions/[email protected] | |
with: | |
name: "bcrypt-${{ github.event.inputs.version }}-macOS-${{ matrix.PYTHON.ABI_VERSION }}" | |
path: bcrypt-wheelhouse/ | |
windows: | |
runs-on: windows-latest | |
strategy: | |
matrix: | |
WINDOWS: | |
- {ARCH: 'x86', RUST_TRIPLE: 'i686-pc-windows-msvc'} | |
- {ARCH: 'x64', RUST_TRIPLE: 'x86_64-pc-windows-msvc'} | |
PYTHON: | |
- {VERSION: "3.7", ABI_VERSION: "cp37"} | |
name: "${{ matrix.PYTHON.VERSION }} ${{ matrix.PYTHON.ABI_VERSION }} ${{ matrix.WINDOWS.ARCH }}" | |
steps: | |
- uses: actions/[email protected] | |
with: | |
# The tag to build or the tag received by the tag event | |
ref: ${{ github.event.inputs.version || github.ref }} | |
persist-credentials: false | |
- name: Setup python | |
uses: actions/[email protected] | |
with: | |
python-version: ${{ matrix.PYTHON.VERSION }} | |
architecture: ${{ matrix.WINDOWS.ARCH }} | |
- uses: dtolnay/rust-toolchain@0e66bd3e6b38ec0ad5312288c83e47c143e6b09e | |
with: | |
toolchain: stable | |
target: ${{ matrix.WINDOWS.RUST_TRIPLE }} | |
- run: python -m pip install -U pip wheel setuptools-rust | |
- name: Make sdist | |
run: python setup.py sdist | |
- run: tar zxvf dist/bcrypt*.tar.gz && mkdir wheelhouse | |
shell: bash | |
- run: cd bcrypt* && python setup.py bdist_wheel --py-limited-api=${{ matrix.PYTHON.ABI_VERSION }} && mv dist/bcrypt*.whl ../wheelhouse | |
- run: pip install -f wheelhouse --no-index bcrypt | |
- run: | | |
python -c "import bcrypt; password = b'super secret password';hashed = bcrypt.hashpw(password, bcrypt.gensalt());bcrypt.checkpw(password, hashed)" | |
# TODO: can we setup another python and test in the same job? this would catch bad linking problems (e.g. build and test on py36, but then install py38 and see if it works | |
- run: mkdir bcrypt-wheelhouse | |
- run: move wheelhouse\bcrypt*.whl bcrypt-wheelhouse\ | |
- uses: actions/[email protected] | |
with: | |
name: "bcrypt-${{ github.event.inputs.version }}-${{ matrix.WINDOWS.ARCH }}-${{ matrix.PYTHON.ABI_VERSION }}" | |
path: bcrypt-wheelhouse\ |