be able to configure timeout and fix deprecations (#33) #122
Workflow file for this run
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 | |
- name: Install test packages | |
run: | | |
./tests/run-tikv.sh | |
pip install pytest pytest-asyncio | |
- name: Run tests - x86_64 | |
run: | | |
pytest -sv tests | |
- 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: Run tests - universal2 | |
run: | | |
pytest -sv tests | |
- name: Upload wheels | |
uses: actions/upload-artifact@v2 | |
with: | |
name: wheels | |
path: dist/*.whl | |
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/setup-msbuild@v1.0.2 | |
- 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/*.whl | |
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 -i python3.11 | |
- 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: Install test packages | |
run: | | |
./tests/run-tikv.sh | |
pip install pytest pytest-asyncio | |
- name: Run tests - linux | |
run: | | |
pytest -sv tests | |
- name: Upload wheels | |
uses: actions/upload-artifact@v2 | |
with: | |
name: wheels | |
path: dist/*.whl | |
# 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/run-on-arch-action@v2.0.5 | |
# 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 * |