v2.0.4 #16
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 macOS X86 | |
on: | |
workflow_dispatch: | |
inputs: | |
TAG_NAME: | |
description: 'Release Version Tag' | |
required: true | |
release: | |
types: [created] | |
push: | |
branches: | |
- main | |
paths-ignore: | |
- '**/*.md' | |
jobs: | |
build_wheels_macos_12: | |
name: ${{ matrix.os }} py${{ matrix.python-version }} | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ macos-12 ] | |
python-version: ["3.8", "3.9", "3.10", "3.11", "3.12" ] | |
env: | |
RUNNER_OS: ${{ matrix.os }} | |
PYTHON_VERSION: ${{ matrix.python-version }} | |
steps: | |
- name: Install python | |
uses: actions/setup-python@v4 | |
with: | |
python-version: "${{ matrix.python-version }}" | |
- name: Remove /usr/local/bin/python3 | |
run: | | |
sudo rm -f /usr/local/bin/python3 | |
- name: Install clang++ for macOS | |
run: | | |
pwd | |
uname -a | |
export HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK=1 | |
brew update | |
brew install ca-certificates lz4 mpdecimal openssl@3 readline sqlite xz z3 zstd | |
brew install --ignore-dependencies llvm@18 | |
brew install git ccache ninja libtool gettext gcc binutils grep findutils nasm | |
cd /usr/local/opt/ && sudo rm -f llvm && sudo ln -sf llvm@18 llvm | |
export PATH=$(brew --prefix llvm@18)/bin:$PATH | |
which clang++ | |
clang++ --version | |
ccache -s | |
- uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 | |
- name: Restore submodules cache | |
uses: actions/cache/restore@v3 | |
id: cache | |
with: | |
path: | | |
contrib/** | |
key: | | |
submodule-${{ hashFiles('.gitmodules') }} | |
- name: Update submodules if cache miss | |
if: steps.cache.outputs.cache-hit != 'true' | |
run: | | |
git submodule update --init --recursive --jobs 4 | |
- name: Save submodules cache | |
if: steps.cache.outputs.cache-hit != 'true' | |
uses: actions/cache/save@v3 | |
with: | |
path: | | |
contrib/** | |
key: | | |
submodule-${{ hashFiles('.gitmodules') }} | |
- name: ccache | |
uses: hendrikmuhs/ccache-action@v1.2 | |
with: | |
key: ${{ matrix.os }} | |
max-size: 5G | |
append-timestamp: true | |
- name: Run chdb/build.sh | |
timeout-minutes: 300 | |
run: | | |
python3 -m pip install pybind11 setuptools | |
export PATH=$(brew --prefix llvm@18)/bin:/usr/local/opt/grep/libexec/gnubin:/usr/local/opt/binutils/bin:$PATH:/usr/local/opt/findutils/libexec/gnubin | |
export CC=$(brew --prefix llvm@18)/bin/clang | |
export CXX=$(brew --prefix llvm@18)/bin/clang++ | |
bash gen_manifest.sh | |
bash ./chdb/build.sh | |
python3 -m pip install pandas pyarrow | |
bash -x ./chdb/test_smoke.sh | |
continue-on-error: false | |
- name: Debug libchdb | |
run: | | |
ls -lh | |
llvm-nm libchdb.so | grep query_stable || true | |
echo "Global Symbol in libchdb.so:" | |
llvm-nm -g libchdb.so || true | |
echo "Global Symbol in libclickhouse-local-chdb.a:" | |
llvm-nm -g buildlib/programs/local/libclickhouse-local-chdb.a || true | |
echo "Global Symbol in libclickhouse-local-lib.a:" | |
llvm-nm -g buildlib/programs/local/libclickhouse-local-lib.a || true | |
echo "pychdb_cmd.sh:" | |
cat buildlib/pychdb_cmd.sh | |
echo "libchdb_cmd.sh:" | |
cat buildlib/libchdb_cmd.sh | |
- name: Run libchdb stub in examples dir | |
run: | | |
bash -x ./examples/runStub.sh | |
- name: Keep killall ccache and wait for ccache to finish | |
if: always() | |
run: | | |
sleep 60 | |
while ps -ef | grep ccache | grep -v grep; do \ | |
killall ccache; \ | |
sleep 10; \ | |
done | |
- name: Check ccache statistics | |
run: | | |
ccache -s | |
ls -lh chdb | |
df -h | |
env: | |
CIBW_ENVIRONMENT_MACOS: "PATH=$(brew --prefix llvm@18)/bin:/usr/local/opt/grep/libexec/gnubin:/usr/local/opt/binutils/bin:$PATH:/usr/local/opt/findutils/libexec/gnubin CC=$(brew --prefix llvm@18)/bin/clang CXX=$(brew --prefix llvm@18)/bin/clang++" | |
- name: Install dependencies for building wheels | |
run: | | |
python3 -m pip install -U pip tox pybind11 twine setuptools wheel>=0.40.0 | |
- name: Build wheels | |
run: | | |
export PATH=$(brew --prefix llvm@18)/bin:/usr/local/opt/grep/libexec/gnubin:/usr/local/opt/binutils/bin:$PATH:/usr/local/opt/findutils/libexec/gnubin | |
export CC=$(brew --prefix llvm@18)/bin/clang | |
export CXX=$(brew --prefix llvm@18)/bin/clang++ | |
make wheel | |
- name: Fix wheel platform tag | |
run: | | |
python3 -m wheel tags --platform-tag=macosx_10_15_x86_64 --remove dist/*.whl | |
- name: Run tests | |
run: | | |
python3 -m pip install dist/*.whl | |
python3 -m pip install pandas pyarrow psutil | |
python3 -c "import chdb; res = chdb.query('select 1112222222,555', 'CSV'); print(res)" | |
make test | |
continue-on-error: false | |
- name: Show files | |
run: ls -lh dist | |
shell: bash | |
- name: Upload wheels to release | |
if: startsWith(github.ref, 'refs/tags/v') | |
run: | | |
gh release upload ${{ github.ref_name }} dist/*.whl --clobber | |
env: | |
GITHUB_TOKEN: ${{ secrets.GH_TOKEN }} | |
- name: Packege libchdb.so | |
if: matrix.python-version == '3.12' | |
run: | | |
cp programs/local/chdb.h chdb.h | |
tar -czvf macos-x86_64-libchdb.tar.gz libchdb.so chdb.h | |
- name: Upload libchdb.so to release | |
if: startsWith(github.ref, 'refs/tags/v') && matrix.python-version == '3.12' | |
run: | | |
gh release upload ${{ github.ref_name }} macos-x86_64-libchdb.tar.gz --clobber | |
env: | |
GITHUB_TOKEN: ${{ secrets.GH_TOKEN }} | |
- uses: actions/upload-artifact@v3 | |
with: | |
path: | | |
./dist/*.whl | |
./macos-x86_64-libchdb.tar.gz | |
- name: Upload pypi | |
if: startsWith(github.ref, 'refs/tags/v') | |
run: | | |
python3 -m pip install twine | |
python3 -m twine upload dist/*.whl | |
env: | |
TWINE_USERNAME: __token__ | |
TWINE_PASSWORD: ${{ secrets.PYPI_PASSWORD }} | |