-
Notifications
You must be signed in to change notification settings - Fork 13
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
7 changed files
with
310 additions
and
5 deletions.
There are no files selected for viewing
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,173 @@ | ||
name: CI | ||
|
||
on: | ||
push: | ||
branches: | ||
- main | ||
- master | ||
#tags: | ||
# - '*' | ||
pull_request: | ||
workflow_dispatch: | ||
|
||
permissions: | ||
contents: read | ||
|
||
jobs: | ||
# If it compiles on ubuntu x86_64, then we can start compiling on other | ||
# platforms, otherwise we want to break early | ||
canary_build: | ||
runs-on: ubuntu-latest | ||
#if: "startsWith(github.ref, 'refs/tags/')" | ||
container: | ||
image: quay.io/pypa/manylinux2014_x86_64 | ||
env: | ||
RUSTFLAGS: "" # for some reason it has -D warnings by default | ||
steps: | ||
# setup env | ||
- uses: actions/checkout@v4 | ||
- name: Install Openssl | ||
run: apk add openssl-dev py3-pip | ||
- uses: korandoru/setup-zig@v1 | ||
with: | ||
zig-version: 0.13.0 | ||
- uses: actions-rust-lang/setup-rust-toolchain@v1 | ||
with: | ||
toolchain: nightly-2024-06-13 | ||
components: rustfmt | ||
cache-workspaces: bindings/python/ | ||
- name: Install Maturin | ||
run: python3 -m pip install 'maturin' | ||
# Check | ||
- name: Check that the package compiles | ||
run: cargo check --manifest-path=bindings/python/Cargo.toml | ||
# actually build | ||
- name: Build the package | ||
run: python3 build.py | ||
working-directory: bindings/python/ | ||
# upload on pypi | ||
- name: Upload wheels | ||
uses: actions/upload-artifact@v4 | ||
with: | ||
name: wheels-linux-x86_64 | ||
path: dist | ||
|
||
linux: | ||
runs-on: ${{ matrix.platform.runner }} | ||
if: "startsWith(github.ref, 'refs/tags/')" | ||
needs: [canary_build] | ||
strategy: | ||
matrix: | ||
platform: | ||
- runner: ubuntu-latest | ||
target: x86_64 | ||
- runner: ubuntu-latest | ||
target: x86 | ||
- runner: ubuntu-latest | ||
target: aarch64 | ||
steps: | ||
- uses: actions/checkout@v4 | ||
- uses: actions/setup-python@v5 | ||
with: | ||
python-version: '3.10' | ||
- name: Build wheels | ||
uses: PyO3/maturin-action@v1 | ||
with: | ||
target: ${{ matrix.platform.target }} | ||
args: --release --out dist --find-interpreter | ||
sccache: 'true' | ||
manylinux: musllinux_1_1 | ||
- name: Upload wheels | ||
uses: actions/upload-artifact@v4 | ||
with: | ||
name: wheels-linux-${{ matrix.platform.target }} | ||
path: dist | ||
|
||
windows: | ||
runs-on: ${{ matrix.platform.runner }} | ||
needs: [canary_build] | ||
if: "startsWith(github.ref, 'refs/tags/')" | ||
strategy: | ||
matrix: | ||
platform: | ||
- runner: windows-latest | ||
target: x64 | ||
- runner: windows-latest | ||
target: x86 | ||
steps: | ||
- uses: actions/checkout@v4 | ||
- uses: actions/setup-python@v5 | ||
with: | ||
python-version: '3.10' | ||
architecture: ${{ matrix.platform.target }} | ||
- name: Build wheels | ||
uses: PyO3/maturin-action@v1 | ||
with: | ||
target: ${{ matrix.platform.target }} | ||
args: --release --out dist --find-interpreter | ||
sccache: 'true' | ||
- name: Upload wheels | ||
uses: actions/upload-artifact@v4 | ||
with: | ||
name: wheels-windows-${{ matrix.platform.target }} | ||
path: dist | ||
|
||
macos: | ||
runs-on: ${{ matrix.platform.runner }} | ||
needs: [canary_build] | ||
if: "startsWith(github.ref, 'refs/tags/')" | ||
strategy: | ||
matrix: | ||
platform: | ||
- runner: macos-latest | ||
target: x86_64 | ||
- runner: macos-14 | ||
target: aarch64 | ||
steps: | ||
- uses: actions/checkout@v4 | ||
- uses: actions/setup-python@v5 | ||
with: | ||
python-version: '3.10' | ||
- name: Build wheels | ||
uses: PyO3/maturin-action@v1 | ||
with: | ||
target: ${{ matrix.platform.target }} | ||
args: --release --out dist --find-interpreter | ||
sccache: 'true' | ||
- name: Upload wheels | ||
uses: actions/upload-artifact@v4 | ||
with: | ||
name: wheels-macos-${{ matrix.platform.target }} | ||
path: dist | ||
|
||
sdist: | ||
runs-on: ubuntu-latest | ||
needs: [canary_build] | ||
if: "startsWith(github.ref, 'refs/tags/')" | ||
steps: | ||
- uses: actions/checkout@v4 | ||
- name: Build sdist | ||
uses: PyO3/maturin-action@v1 | ||
with: | ||
command: sdist | ||
args: --out dist | ||
- name: Upload sdist | ||
uses: actions/upload-artifact@v4 | ||
with: | ||
name: wheels-sdist | ||
path: dist | ||
|
||
release: | ||
name: Release | ||
runs-on: ubuntu-latest | ||
if: "startsWith(github.ref, 'refs/tags/')" | ||
needs: [linux, windows, macos, sdist] | ||
permissions: | ||
id-token: write | ||
steps: | ||
- uses: actions/download-artifact@v4 | ||
- name: Publish to PyPI | ||
uses: PyO3/maturin-action@v1 | ||
with: | ||
command: upload | ||
args: --non-interactive --skip-existing wheels-*/* |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,7 @@ | ||
# Nix shells folders | ||
.cargo_home | ||
.rustup | ||
|
||
# Generated by Cargo | ||
# will have compiled files and executables | ||
target | ||
|
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
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
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,4 @@ | ||
#![allow(internal_features)] | ||
#![feature(core_intrinsics)] | ||
mod cosine_similarity; | ||
mod element_wise_operations; | ||
|
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
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,40 @@ | ||
# Nix shell for building the python wheels ready for publication | ||
{ pkgs ? import <nixpkgs> {} }: | ||
|
||
let | ||
rustupToolchain = "nightly-2024-06-13"; | ||
in | ||
pkgs.mkShell { | ||
buildInputs = with pkgs; [ | ||
python311 | ||
|
||
rustup | ||
maturin | ||
|
||
stdenv | ||
pkg-config | ||
openssl | ||
which | ||
gcc | ||
binutils | ||
|
||
# All the C libraries that a manylinux_1 wheel might depend on: | ||
ncurses | ||
xorg.libX11 | ||
xorg.libXext | ||
xorg.libXrender | ||
xorg.libICE | ||
xorg.libSM | ||
glib | ||
]; | ||
|
||
RUST_BACKTRACE = 1; | ||
# use nightly bcz all the features we need are in nightly | ||
RUSTUP_TOOLCHAIN = rustupToolchain; | ||
# make everything self-contained to this folder | ||
CARGO_HOME = toString ./.cargo_home; | ||
RUSTUP_HOME = toString ./.rustup; | ||
|
||
CXX = "zig c++ -target x86_64-linux-gnu.2.16"; | ||
CC = "zig cc -target x86_64-linux-gnu.2.16"; | ||
} |