Merge pull request #347 from network-intelligence/dev #3
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: Mercury wheels Build and Publish to PyPI | |
on: | |
workflow_dispatch: | |
push: | |
branches: | |
- main | |
jobs: | |
build-mercury-wheels: | |
name: Build wheels on ${{ matrix.os }} | |
runs-on: ${{ matrix.os }} | |
environment: | |
name: pypi | |
url: https://pypi.org/p/mercury-python | |
permissions: | |
id-token: write | |
strategy: | |
matrix: | |
os: [ubuntu-latest] | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
detch-depth: 1 | |
- name: Install packages | |
run: sudo apt-get update && sudo apt-get install -y zlib1g-dev libssl-dev make | |
- name: Set up Python | |
uses: actions/setup-python@v3 | |
with: | |
python-version: '3.x' | |
- name: Set up QEMU | |
if: runner.os == 'Linux' | |
uses: docker/setup-qemu-action@v3 | |
with: | |
platforms: all | |
- name: Install pip packages | |
run: python -m pip install cython cibuildwheel==2.20.0 | |
- name: Build Mercury | |
run: ./configure && make && cp -r src/cython/* ./ | |
- name: Build wheels | |
uses: pypa/[email protected] | |
env: | |
CIBW_ARCHS_LINUX: x86_64 aarch64 | |
CIBW_ENVIRONMENT: CC='g++' CXX='g++' MERCURY_DIR='./' | |
CIBW_SKIP: "*-musllinux_* pp*" | |
CIBW_BEFORE_ALL: yum install -y openssl-devel make zlib-devel || apt-get install -y zlib1g-dev libssl-dev make || apk add zlib1g-dev libssl-dev make | |
CIBW_TEST_COMMAND: cd {project} && python mercury_python_test.py | |
- name: Upload to S3 | |
env: | |
AWS_ACCESS_KEY_ID: ${{secrets.ACCESS_KEY_ID}} | |
AWS_SECRET_ACCESS_KEY: ${{secrets.ACCESS_KEY_SECRET}} | |
AWS_DEFAULT_REGION: us-east-1 | |
S3_BUCKET: ${{secrets.S3_BUCKET}} | |
run: VERSION=$(cat src/cython/_version.py | tr -d '\n' | cut -d \' -f2) && aws s3 cp wheelhouse/ "s3://$S3_BUCKET/version=$VERSION" --recursive |