Revert temporary fix for openssl #117
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: Build and Test | |
on: | |
push: | |
branches: [master] | |
pull_request: | |
types: [opened, synchronize, reopened] | |
paths-ignore: | |
- "*.md" | |
- "*.example" | |
- ".gitignore" | |
- "benchmarks/**" | |
permissions: | |
contents: read | |
jobs: | |
code_checks: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-python@v5 | |
with: | |
python-version-file: 'pyproject.toml' | |
check-latest: true | |
allow-prereleases: true | |
- name: Run pre-commit checks | |
run: | | |
pip install pre-commit | |
pre-commit run --all-files | |
sdist: | |
needs: [code_checks] | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Build sdist | |
uses: PyO3/maturin-action@main | |
with: | |
command: sdist | |
args: --out dist | |
- name: Upload sdist | |
uses: actions/upload-artifact@v4 | |
with: | |
name: wheels-sdist | |
path: dist | |
linux: | |
needs: [code_checks] | |
runs-on: ${{ matrix.platform.runner }} | |
strategy: | |
matrix: | |
platform: | |
- runner: ubuntu-latest | |
target: x86_64 | |
- runner: ubuntu-latest | |
target: x86 | |
- runner: ubuntu-latest | |
target: aarch64 | |
- runner: ubuntu-latest | |
target: armv7 | |
# s390x currently has issues building openssl | |
# - runner: ubuntu-latest | |
# target: s390x | |
- runner: ubuntu-latest | |
target: ppc64le | |
services: | |
hussh-test-server: | |
image: ghcr.io/jacobcallahan/hussh/hussh-test-server:latest | |
options: >- | |
--health-cmd "ssh -p 22 -o StrictHostKeyChecking=no root@localhost echo ready" | |
--health-interval 10s | |
--health-timeout 5s | |
--health-retries 5 | |
--name hussh-test-server | |
ports: | |
- 8022:22 | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-python@v5 | |
with: | |
python-version-file: 'pyproject.toml' | |
check-latest: true | |
allow-prereleases: true | |
- name: Build wheels | |
uses: PyO3/maturin-action@main | |
env: | |
PKG_CONFIG_PATH: "/usr/share/miniconda/lib/pkgconfig/" | |
OPENSSL_NO_VENDOR: 1 | |
with: | |
target: ${{ matrix.platform.target }} | |
# args: --release --out dist --find-interpreter <-- TODO: Add this back when maturin supports it | |
args: --release --out dist -i 3.8 3.9 3.10 3.11 3.12 3.13 pypy3.9 pypy3.10 | |
# sccache: 'true' | |
manylinux: auto | |
before-script-linux: | | |
# If we're running on rhel centos, install needed packages. thx s3rius! | |
if command -v yum &> /dev/null; then | |
yum update -y && yum install -y gcc perl-core openssl openssl-devel pkgconfig libatomic | |
else | |
# If we're running on debian-based system. | |
apt update -y && apt-get install -y libssl-dev openssl pkg-config libatomic1 | |
fi | |
# Create symlink for x86 | |
if [ "${{ matrix.platform.target }}" = "x86" ]; then | |
ln -s /usr/lib/libatomic.so.1 /usr/lib/libatomic.so | |
fi | |
- name: Print hussh-test-server container info | |
run: | | |
docker ps -a --filter "name=hussh-test-server" | |
docker logs hussh-test-server | |
- name: Upload wheels | |
uses: actions/upload-artifact@v4 | |
with: | |
name: wheels-linux-${{ matrix.platform.target }} | |
path: dist | |
- name: Install and Test | |
shell: bash | |
run: | | |
set -e | |
pip install .[dev] --find-links dist --force-reinstall | |
pytest -v tests/ | |
musllinux: | |
needs: [code_checks] | |
runs-on: ${{ matrix.platform.runner }} | |
strategy: | |
matrix: | |
platform: | |
- runner: ubuntu-latest | |
target: x86_64 | |
- runner: ubuntu-latest | |
target: x86 | |
- runner: ubuntu-latest | |
target: aarch64 | |
- runner: ubuntu-latest | |
target: armv7 | |
services: | |
hussh-test-server: | |
image: ghcr.io/jacobcallahan/hussh/hussh-test-server:latest | |
options: >- | |
--health-cmd "ssh -p 22 -o StrictHostKeyChecking=no root@localhost echo ready" | |
--health-interval 10s | |
--health-timeout 5s | |
--health-retries 5 | |
--name hussh-test-server | |
ports: | |
- 8022:22 | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-python@v5 | |
with: | |
python-version-file: 'pyproject.toml' | |
check-latest: true | |
allow-prereleases: true | |
- name: Build wheels | |
uses: PyO3/maturin-action@main | |
env: | |
PKG_CONFIG_PATH: "/usr/share/miniconda/lib/pkgconfig/" | |
with: | |
target: ${{ matrix.platform.target }} | |
args: --release --out dist -i 3.8 3.9 3.10 3.11 3.12 3.13 pypy3.9 pypy3.10 | |
# sccache: 'true' | |
manylinux: musllinux_1_2 | |
before-script-linux: | | |
# If we're running on rhel centos, install needed packages. thx s3rius! | |
if command -v yum &> /dev/null; then | |
yum update -y && yum install -y gcc perl-core openssl openssl-devel pkgconfig libatomic | |
else | |
# If we're running on debian-based system. | |
apt update -y && apt-get install -y libssl-dev openssl pkg-config libatomic1 | |
fi | |
- name: Print hussh-test-server container info | |
run: | | |
docker ps -a --filter "name=hussh-test-server" | |
docker logs hussh-test-server | |
- name: Upload wheels | |
uses: actions/upload-artifact@v4 | |
with: | |
name: wheels-musllinux-${{ matrix.platform.target }} | |
path: dist | |
- name: Install and Test | |
shell: bash | |
run: | | |
set -e | |
pip install .[dev] --find-links dist --force-reinstall | |
pytest -v tests/ | |
windows: | |
needs: [code_checks] | |
runs-on: ${{ matrix.platform.runner }} | |
strategy: | |
matrix: | |
platform: | |
- runner: windows-latest | |
target: x64 | |
- runner: windows-latest | |
target: x86 | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install OpenSSL | |
shell: powershell | |
run: | | |
choco install openssl | |
# using main for windows due to this issue | |
# https://github.com/actions/setup-python/issues/935 | |
- uses: actions/setup-python@main | |
with: | |
python-version-file: 'pyproject.toml' | |
check-latest: true | |
allow-prereleases: true | |
architecture: ${{ matrix.platform.target }} | |
- name: Build wheels | |
uses: PyO3/maturin-action@main | |
env: | |
OPENSSL_DIR: C:\Program Files\OpenSSL-Win64 | |
OPENSSL_STATIC: 1 | |
with: | |
args: --release --out dist -i 3.8 3.9 3.10 3.11 3.12 | |
sccache: 'true' | |
- name: Upload wheels | |
uses: actions/upload-artifact@v4 | |
with: | |
name: wheels-windows-${{ matrix.platform.target }} | |
path: dist | |
macos: | |
needs: [code_checks] | |
runs-on: ${{ matrix.platform.runner }} | |
strategy: | |
matrix: | |
platform: | |
- runner: macos-12 | |
target: x86_64 | |
- runner: macos-14 | |
target: aarch64 | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install OpenSSL | |
run: | | |
brew install [email protected] | |
- uses: actions/setup-python@v5 | |
with: | |
python-version-file: 'pyproject.toml' | |
check-latest: true | |
allow-prereleases: true | |
- name: Set OPENSSL_DIR | |
run: echo "OPENSSL_DIR=$(brew --prefix openssl@3)" >> $GITHUB_ENV | |
- name: Build wheels | |
uses: PyO3/maturin-action@main | |
with: | |
target: ${{ matrix.target }} | |
args: --release --out dist -i 3.8 3.9 3.10 3.11 3.12 3.13 pypy3.9 pypy3.10 | |
sccache: 'true' | |
- name: Upload wheels | |
uses: actions/upload-artifact@v4 | |
with: | |
name: wheels-macos-${{ matrix.platform.target }} | |
path: dist |