From 2f559dccb7bf6b3079b01fef41fec332c57a51ed Mon Sep 17 00:00:00 2001 From: "Victoria Terenina (torymur)" Date: Fri, 31 Jan 2025 18:20:44 +0000 Subject: [PATCH] Test wheels build --- .github/workflows/build_wheels.yml | 71 ++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 .github/workflows/build_wheels.yml diff --git a/.github/workflows/build_wheels.yml b/.github/workflows/build_wheels.yml new file mode 100644 index 00000000..ab119605 --- /dev/null +++ b/.github/workflows/build_wheels.yml @@ -0,0 +1,71 @@ +name: Build wheels + +on: + workflow_dispatch: + pull_request: + branches: [main] + +jobs: + build_wheels: + name: Build wheels on ${{ matrix.os }} + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [ubuntu-20.04, macos-14, macos-15, windows-latest] + + steps: + - uses: actions/checkout@v3 + + - name: Set up Python + uses: actions/setup-python@v4 + with: + python-version: '3.10' + + - name: Set up QEMU + if: runner.os == 'Linux' + uses: docker/setup-qemu-action@v3 + with: + platforms: all + image: tonistiigi/binfmt:qemu-v8.1.5 + + - name: Install cibuildwheel + run: python -m pip install cibuildwheel==2.21.3 + + - name: Set up Rust + uses: actions-rs/toolchain@v1 + with: + profile: minimal + toolchain: stable + override: true + + - name: Build wheels + run: python -m cibuildwheel --output-dir wheelhouse + env: + CIBW_BUILD: cp39-* cp310-* cp311-* cp312-* + CIBW_SKIP: "*musllinux*" + CIBW_ARCHS_LINUX: x86_64 aarch64 + CIBW_ARCHS_WINDOWS: AMD64 x86 + CIBW_ARCHS_MACOS: x86_64 arm64 + CIBW_BEFORE_ALL_LINUX: | + curl -sSf https://sh.rustup.rs | sh -s -- -y + # From https://github.com/Intreecom/scyllapy/blob/05fdab32dd7468c26533de5fdfe9627fa3e38445/.github/workflows/release.yaml#L38 + if command -v yum &> /dev/null; then + yum update -y && yum install -y perl-core openssl openssl-devel pkgconfig libatomic + + # If we're running on i686 we need to symlink libatomic + # in order to build openssl with -latomic flag. + if [[ ! -d "/usr/lib64" ]]; then + ln -s /usr/lib/libatomic.so.1 /usr/lib/libatomic.so + fi + elif command -v apt &> /dev/null; then + apt update -y && apt-get install -y libssl-dev openssl pkg-config + fi + CIBW_BEFORE_ALL_MACOS: | + curl -sSf https://sh.rustup.rs | sh -s -- -y + rustup target add aarch64-apple-darwin x86_64-apple-darwin + CIBW_BEFORE_ALL_WINDOWS: rustup target add i686-pc-windows-msvc + CIBW_BEFORE_BUILD: pip install setuptools-rust + CIBW_ENVIRONMENT: PATH="$HOME/.cargo/bin:$PATH" + CIBW_ENVIRONMENT_MACOS: MACOSX_DEPLOYMENT_TARGET=10.12 + CIBW_TEST_COMMAND: python -c "import outlines_core; print(outlines_core.__version__)" + CMAKE_PREFIX_PATH: ./dist