Skip to content

v0.3.24-beta2

v0.3.24-beta2 #127

Workflow file for this run

name: CI
on:
release:
types: [published]
jobs:
macos:
runs-on: macos-13
strategy:
fail-fast: false
matrix:
py_version: [3.7, 3.8, 3.9, "3.10", "3.11", "3.12"]
steps:
- uses: actions/checkout@v2
with:
submodules: recursive
- name: Install llvm-18
run: |
brew update
brew install llvm@18
- uses: actions/setup-python@v5
with:
python-version: ${{ matrix.py_version }}
architecture: x64
- name: Install Rust toolchain
uses: actions-rs/toolchain@v1
with:
toolchain: 1.78.0
default: true
- name: Build wheels
run: |
rustup target add aarch64-apple-darwin
pip install maturin
eval "$(brew shellenv)"
export MACOSX_DEPLOYMENT_TARGET=10.14
export LIBCLANG_PATH=${HOMEBREW_PREFIX}/opt/llvm/lib
export CC=${HOMEBREW_PREFIX}/opt/llvm/bin/clang
export CXX=${HOMEBREW_PREFIX}/opt/llvm/bin/clang++
export AR=${HOMEBREW_PREFIX}/opt/llvm/bin/llvm-ar
export CFLAGS="-flto=thin -O3"
export CXXFLAGS="-flto=thin -O3"
export LLD=${HOMEBREW_PREFIX}/opt/llvm/bin/ld64.lld
export RUSTFLAGS="-Clinker-plugin-lto -Clinker=$PWD/macos-linker.sh -Clink-arg=-fuse-ld=${LLD}"
maturin build --release --target aarch64-apple-darwin --out dist -i python${{ matrix.py_version }}
maturin build --release --target x86_64-apple-darwin --out dist -i python${{ matrix.py_version }}
- name: Install built wheel
run: |
pip install rocksdict --no-index --find-links dist --force-reinstall || true
pip install speedict --no-index --find-links dist --force-reinstall || true
- name: Python UnitTest
run: |
python -m unittest discover -v test
- name: Upload wheels
uses: actions/upload-artifact@v2
with:
name: wheels
path: dist
windows:
runs-on: windows-latest
strategy:
fail-fast: false
matrix:
target: [x64]
py_version: [3.7, 3.8, 3.9, "3.10", "3.11", "3.12"]
steps:
- uses: actions/checkout@v2
with:
submodules: recursive
- uses: actions/setup-python@v5
with:
python-version: ${{ matrix.py_version }}
architecture: ${{ matrix.target }}
- name: Install LLVM and Clang
uses: KyleMayes/install-llvm-action@v2
with:
version: 18.1
directory: ${{ runner.temp }}/llvm-18.1
- name: Install Rust toolchain
uses: actions-rs/toolchain@v1
with:
toolchain: 1.78.0
default: true
- name: Build wheels
uses: messense/maturin-action@v1
with:
target: ${{ matrix.target }}
args: --release --out dist
env:
LIBCLANG_PATH: ${{ runner.temp }}/llvm-18.1/lib
CC: ${{ runner.temp }}/llvm-18.1/bin/clang-cl
CXX: ${{ runner.temp }}/llvm-18.1/bin/clang-cl
AR: ${{ runner.temp }}/llvm-18.1/bin/llvm-lib
CFLAGS: "/clang:-flto=thin /clang:-O3 /clang:-fuse-ld=lld-link"
CXXFLAGS: "/clang:-flto=thin /clang:-O3 /clang:-fuse-ld=lld-link"
RUSTFLAGS: "-Clinker-plugin-lto -Clinker=lld-link"
- name: Install built wheel and test
run: |
pip install rocksdict --no-index --find-links dist --force-reinstall || true
pip install speedict --no-index --find-links dist --force-reinstall || true
python -m unittest discover -v test
- name: Upload wheels
uses: actions/upload-artifact@v2
with:
name: wheels
path: dist
manylinux_2_28:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
target: [x86_64]
steps:
- uses: actions/checkout@v2
with:
submodules: recursive
- uses: actions/setup-python@v5
with:
python-version: 3.9
architecture: x64
- name: Build Wheels
uses: messense/maturin-action@v1
with:
rust-toolchain: 1.78.0
rustup-components: rustfmt
target: ${{ matrix.target }}
manylinux: 2_28
args: --release --out dist --interpreter '3.7 3.8 3.9 3.10 3.11 3.12'
container: congyuwang/manylinux_2_28_x86_64:llvm-18.1.5
env:
LIBCLANG_PATH: /usr/local/lib
CC: /usr/local/bin/clang
CXX: /usr/local/bin/clang++
AR: /usr/local/bin/llvm-ar
CFLAGS: "-flto=thin -O3"
CXXFLAGS: "-flto=thin -O3"
RUSTFLAGS: "-Clinker-plugin-lto -Clinker=/usr/local/bin/clang -Clink-arg=-fuse-ld=/usr/local/bin/ld.lld"
- name: Install built wheel and test
run: |
pip install rocksdict --no-index --find-links dist --force-reinstall || true
pip install speedict --no-index --find-links dist --force-reinstall || true
python -m unittest discover -v test
- name: Upload wheels
uses: actions/upload-artifact@v2
with:
name: wheels
path: dist
manylinux2014:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
target: [x86_64]
steps:
- uses: actions/checkout@v2
with:
submodules: recursive
- uses: actions/setup-python@v5
with:
python-version: 3.9
architecture: x64
- name: Build Wheels
uses: messense/maturin-action@v1
with:
rust-toolchain: 1.78.0
rustup-components: rustfmt
target: ${{ matrix.target }}
manylinux: 2014
args: --release --out dist --interpreter '3.7 3.8 3.9 3.10 3.11 3.12'
container: congyuwang/manylinux2014_x86_64:llvm-18.1.5
env:
LIBCLANG_PATH: /usr/local/lib
CC: /usr/local/bin/clang
CXX: /usr/local/bin/clang++
AR: /usr/local/bin/llvm-ar
CFLAGS: "-flto=thin -O3"
CXXFLAGS: "-flto=thin -O3"
RUSTFLAGS: "-Clinker-plugin-lto -Clinker=/usr/local/bin/clang -Clink-arg=-fuse-ld=/usr/local/bin/ld.lld"
- name: Install built wheel and test
run: |
pip install rocksdict --no-index --find-links dist --force-reinstall || true
pip install speedict --no-index --find-links dist --force-reinstall || true
python -m unittest discover -v test
- name: Upload wheels
uses: actions/upload-artifact@v2
with:
name: wheels
path: dist
linux-cross:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
target: [aarch64]
steps:
- uses: actions/checkout@v2
with:
submodules: recursive
- uses: actions/setup-python@v5
with:
python-version: 3.9
- name: Build Wheels
uses: messense/maturin-action@v1
with:
rust-toolchain: 1.78.0
rustup-components: rustfmt
target: ${{ matrix.target }}
manylinux: 2_28
args: --release --out dist --interpreter '3.7 3.8 3.9 3.10 3.11 3.12'
container: congyuwang/manylinux_2_28_aarch64:llvm-18.1.5
docker-options: "-e BINDGEN_EXTRA_CLANG_ARGS"
before-script-linux: |
ln -s /usr/aarch64-unknown-linux-gnu/lib/gcc/aarch64-unknown-linux-gnu/7.5.0/crtbeginS.o /usr/aarch64-unknown-linux-gnu/aarch64-unknown-linux-gnu/sysroot/usr/lib/crtbeginS.o
ln -s /usr/aarch64-unknown-linux-gnu/lib/gcc/aarch64-unknown-linux-gnu/7.5.0/crtendS.o /usr/aarch64-unknown-linux-gnu/aarch64-unknown-linux-gnu/sysroot/usr/lib/crtendS.o
env:
LIBCLANG_PATH: /usr/local/lib
CC_aarch64_unknown_linux_gnu: /usr/local/bin/clang
CXX_aarch64_unknown_linux_gnu: /usr/local/bin/clang++
AR_aarch64_unknown_linux_gnu: /usr/local/bin/llvm-ar
CFLAGS_aarch64_unknown_linux_gnu: >
-flto=thin -O3 --sysroot=/usr/aarch64-unknown-linux-gnu/aarch64-unknown-linux-gnu/sysroot/
CXXFLAGS_aarch64_unknown_linux_gnu: >
-flto=thin -O3 --sysroot=/usr/aarch64-unknown-linux-gnu/aarch64-unknown-linux-gnu/sysroot/
-I /usr/aarch64-unknown-linux-gnu/aarch64-unknown-linux-gnu/include/c++/7.5.0/
-I /usr/aarch64-unknown-linux-gnu/aarch64-unknown-linux-gnu/include/c++/7.5.0/aarch64-unknown-linux-gnu/
BINDGEN_EXTRA_CLANG_ARGS: >
--sysroot=/usr/aarch64-unknown-linux-gnu/aarch64-unknown-linux-gnu/sysroot/
CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER: >
/usr/local/bin/clang
CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_RUSTFLAGS: >
-Clinker-plugin-lto
-Clinker=/usr/local/bin/clang
-Clink-arg=-fuse-ld=/usr/local/bin/ld.lld
-Clink-arg=--sysroot=/usr/aarch64-unknown-linux-gnu/aarch64-unknown-linux-gnu/sysroot/
- uses: uraimo/run-on-arch-action@v2
name: Install built wheel and test
with:
arch: ${{ matrix.target }}
distro: ubuntu22.04
githubToken: ${{ github.token }}
install: |
apt-get update
apt-get install -y --no-install-recommends python3 python3-pip
pip3 install -U pip
run: |
pip3 install rocksdict --no-index --find-links dist --force-reinstall || true
pip3 install speedict --no-index --find-links dist --force-reinstall || true
python3 -m unittest discover -v test
- name: Upload wheels
uses: actions/upload-artifact@v2
with:
name: wheels
path: dist
release:
name: Release
runs-on: ubuntu-latest
needs: [windows, manylinux_2_28, manylinux2014, macos, linux-cross]
steps:
- uses: actions/download-artifact@v2
with:
name: wheels
- uses: actions/setup-python@v5
with:
python-version: 3.9
- name: Publish to PyPi
env:
TWINE_USERNAME: __token__
TWINE_PASSWORD: ${{ secrets.PYPI_PASSWORD }}
run: |
pip install --upgrade twine
twine upload --skip-existing *