install protobuf-compiler #52
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 | |
on: | |
push: | |
pull_request: | |
jobs: | |
macos: | |
runs-on: macos-latest | |
steps: | |
- uses: actions/checkout@v2 | |
- uses: actions/setup-python@v2 | |
with: | |
python-version: 3.11 | |
architecture: x64 | |
- name: Install Rust toolchain | |
uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: nightly-2023-10-24 | |
profile: minimal | |
default: true | |
- name: Install protoc | |
run: brew install protobuf | |
- name: Build wheels - x86_64 | |
uses: messense/maturin-action@v1 | |
with: | |
target: x86_64 | |
args: --release --out dist | |
- name: Install built wheel - x86_64 | |
run: | | |
cd dist | |
pip install tikv_client --no-index --find-links . --force-reinstall | |
python -c "import tikv_client" | |
- name: Build wheels - universal2 | |
uses: messense/maturin-action@v1 | |
with: | |
target: universal2-apple-darwin | |
args: --release --out dist | |
- name: Install built wheel - universal2 | |
run: | | |
cd dist | |
pip install tikv_client --no-index --find-links . --force-reinstall | |
python -c "import tikv_client" | |
- name: Upload wheels | |
uses: actions/upload-artifact@v2 | |
with: | |
name: wheels | |
path: dist | |
windows: | |
runs-on: windows-latest | |
strategy: | |
matrix: | |
target: [x64, x86] | |
steps: | |
- uses: actions/checkout@v2 | |
- uses: actions/setup-python@v2 | |
with: | |
python-version: 3.11 | |
architecture: ${{ matrix.target }} | |
- name: Add MSBuild to PATH | |
uses: microsoft/[email protected] | |
- name: Install LLVM | |
run: choco install -y llvm | |
- name: Install protoc | |
run: choco install -y protoc | |
- name: Install Rust toolchain | |
uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: nightly-2023-10-24 | |
profile: minimal | |
default: true | |
- name: Build wheels | |
uses: messense/maturin-action@v1 | |
with: | |
target: ${{ matrix.target }} | |
args: --release --out dist | |
- name: Install built wheel | |
run: | | |
cd dist | |
pip install tikv_client --no-index --find-links . --force-reinstall | |
python -c "import tikv_client" | |
- name: Upload wheels | |
uses: actions/upload-artifact@v2 | |
with: | |
name: wheels | |
path: dist | |
linux: | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
target: [x86_64] | |
steps: | |
- uses: actions/checkout@v2 | |
- uses: actions/setup-python@v2 | |
with: | |
python-version: 3.11 | |
architecture: x64 | |
- name: Build Wheels | |
uses: PyO3/maturin-action@v1 | |
with: | |
before-script-linux: | | |
# If we're running on rhel centos, install needed packages. | |
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 | |
else | |
# If we're running on debian-based system. | |
apt update -y && apt-get install -y libssl-dev openssl pkg-config | |
fi | |
curl -LO https://github.com/protocolbuffers/protobuf/releases/download/v24.4/protoc-24.4-linux-x86_64.zip | |
unzip protoc-24.4-linux-x86_64.zip -d $HOME/.local | |
export PATH="$PATH:$HOME/.local/bin" | |
protoc --version | |
rust-toolchain: nightly-2023-10-24 | |
target: ${{ matrix.target }} | |
manylinux: auto | |
args: --release --out dist | |
- name: Install built wheel | |
if: matrix.target == 'x86_64' | |
run: | | |
cd dist | |
pip install tikv_client --no-index --find-links . --force-reinstall | |
python -c "import tikv_client" | |
- name: Upload wheels | |
uses: actions/upload-artifact@v2 | |
with: | |
name: wheels | |
path: dist | |
# linux-cross: | |
# runs-on: ubuntu-latest | |
# strategy: | |
# matrix: | |
# target: [aarch64, armv7, s390x, ppc64le, ppc64] | |
# steps: | |
# - uses: actions/checkout@v2 | |
# - uses: actions/setup-python@v2 | |
# with: | |
# python-version: 3.11 | |
# - name: Build Wheels | |
# uses: messense/maturin-action@v1 | |
# with: | |
# rust-toolchain: nightly | |
# target: ${{ matrix.target }} | |
# manylinux: auto | |
# args: --release --out dist | |
# - uses: uraimo/[email protected] | |
# if: matrix.target != 'ppc64' | |
# name: Install built wheel | |
# with: | |
# arch: ${{ matrix.target }} | |
# distro: ubuntu18.04 | |
# githubToken: ${{ github.token }} | |
# # Mount the dist directory as /artifacts in the container | |
# dockerRunArgs: | | |
# --volume "${PWD}/dist:/artifacts" | |
# install: | | |
# apt-get update | |
# apt-get install -y --no-install-recommends python3 python3-pip | |
# pip3 install -U pip | |
# run: | | |
# ls -lrth /artifacts | |
# cd /artifacts | |
# pip3 install tikv_client --no-index --find-links . --force-reinstall | |
# python3 -c "import tikv_client" | |
# - name: Upload wheels | |
# uses: actions/upload-artifact@v2 | |
# with: | |
# name: wheels | |
# path: dist | |
release: | |
name: Release | |
runs-on: ubuntu-latest | |
if: "startsWith(github.ref, 'refs/tags/')" | |
# needs: [ macos, windows, linux ] | |
needs: [macos, linux] | |
steps: | |
- uses: actions/download-artifact@v2 | |
with: | |
name: wheels | |
- uses: actions/setup-python@v2 | |
with: | |
python-version: 3.11 | |
- name: Publish to PyPi | |
env: | |
TWINE_USERNAME: ${{ secrets.PYPI_USERNAME }} | |
TWINE_PASSWORD: ${{ secrets.PYPI_PASSWORD }} | |
run: | | |
pip install --upgrade twine | |
twine upload --skip-existing * |