Add arm64 linux build #57
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 arm64 | |
on: | |
# for test action | |
pull_request: | |
branches: | |
- main | |
- feat/add-arm-wheel-build | |
# end for test action | |
workflow_dispatch: | |
inputs: | |
TAG_NAME: | |
description: 'Release Version Tag' | |
required: true | |
release: | |
types: [created] | |
defaults: | |
run: | |
shell: bash -leo pipefail {0} | |
jobs: | |
build_wheels_linux_arm64: | |
name: ${{ matrix.os }} py${{ matrix.python-version }} | |
runs-on: | |
- self-hosted | |
- ARM64 | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ ubuntu-20.04 ] | |
# python-version: [ "3.8", "3.9", "3.10", "3.11"] | |
python-version: [ "3.8" ] | |
env: | |
RUNNER_OS: ${{ matrix.os }} | |
#PYTHON_VERSION: ${{ matrix.python-version }} | |
steps: | |
- name: Install clang++ for Ubuntu | |
if: matrix.os == 'ubuntu-20.04' | |
run: | | |
pwd | |
uname -a | |
wget https://apt.llvm.org/llvm.sh | |
chmod +x llvm.sh | |
sudo ./llvm.sh 15 | |
which clang++-15 | |
clang++-15 --version | |
sudo apt-get install -y make cmake ccache ninja-build yasm gawk wget | |
ccache -s | |
- name: Update git | |
run: | | |
sudo add-apt-repository ppa:git-core/ppa -y | |
sudo apt-get update | |
sudo apt-get install -y git | |
git --version | |
shell: bash -l {0} | |
- 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/[email protected] | |
with: | |
key: ${{ matrix.os }} | |
max-size: 5G | |
append-timestamp: true | |
- name: remove old clang and link clang-15 to clang | |
if: matrix.os == 'ubuntu-20.04' | |
run: | | |
sudo rm /usr/bin/clang | |
sudo ln -s /usr/bin/clang-15 /usr/bin/clang | |
sudo rm /usr/bin/clang++ | |
sudo ln -s /usr/bin/clang++-15 /usr/bin/clang++ | |
which clang++ | |
clang++ --version | |
- name: Run chdb/build.sh | |
run: | | |
echo RElSPSIkKCBjZCAiJCggZGlybmFtZSAiJHtCQVNIX1NPVVJDRVswXX0iICkiID4vZGV2L251bGwgMj4mMSAmJiBwd2QgKSIKUFJPSl9ESVI9JChkaXJuYW1lICR7RElSfSkKCmVjaG8gJHtQUk9KX0RJUn0KCmZvciBQWV9WRVIgaW4gMy44IDMuOSAzLjEwIDMuMTE7IGRvCiAgICBjZCAke1BST0pfRElSfS9jaGRiCiAgICBweWVudiBsb2NhbCAiJHtQWV9WRVJ9IgogICAgcHl0aG9uMyAtLXZlcnNpb24KICAgIHB5dGhvbjMgLW0gcGlwIGluc3RhbGwgcHliaW5kMTEKICAgIGV4cG9ydCBDQz0vdXNyL2Jpbi9jbGFuZwogICAgZXhwb3J0IENYWD0vdXNyL2Jpbi9jbGFuZysrCiAgICAjIEluc3RhbGwgdW5pdmVyc2FsMiBwa2cKICAgIHB5dGhvbjMgLVZWCiAgICBweXRob24zLWNvbmZpZyAtLWluY2x1ZGVzCiAgICAjIGlmIHB5dGhvbjMgLVZWIGRvZXMgbm90IGNvbnRhaW4gJHtQWV9WRVJ9LCB0aGVuIGV4aXQKICAgIGlmICEgcHl0aG9uMyAtVlYgMj4mMSB8IGdyZXAgLXEgIiR7UFlfVkVSfSI7IHRoZW4KICAgICAgICBlY2hvICJFcnJvcjogUmVxdWlyZWQgdmVyc2lvbiBvZiBQeXRob24gKCR7UFlfVkVSfSkgbm90IGZvdW5kLiBBYm9ydGluZy4iCiAgICAgICAgZXhpdCAxCiAgICBmaQoKICAgIHB5dGhvbjMgLW0gcGlwIGluc3RhbGwgLVUgcHliaW5kMTEgd2hlZWwgYnVpbGQgdG94CiAgICBybSAtcmYgLi9idWlsZGxpYgoKICAgIC4vY2hkYi9idWlsZC5zaAogICAgY2QgY2hkYiAmJiBweXRob24zIC1jICJpbXBvcnQgX2NoZGI7IHJlcyA9IF9jaGRiLnF1ZXJ5KCdzZWxlY3QgMTExMjIyMjIyMiw1NTUnLCAnSlNPTicpOyBwcmludChyZXMpIiAmJiBjZCAtCgogICAgLi9nZW5fbWFuaWZlc3Quc2gKICAgIGNhdCAuL01BTklGRVNULmluCgogICAgcHl0aG9uMyAtbSBidWlsZCAtLXdoZWVsCgogICAgZmluZCBkaXN0CgogICAgd2hsX2ZpbGU9JChmaW5kIGRpc3QgfCBncmVwICd3aGwkJyB8Z3JlcCAiY3Ake1BZX1ZFUn0iIHx8IGVjaG8gIm5vdG5vdG5vdC53aGwiKQogICAgIyB0cnkgZGVsZXRlIAogICAgcm0gJHt3aGxfZmlsZX0gfHwgOgoKICAgIHB5dGhvbjMgLW0gd2hlZWwgdGFncyAtLXBsYXRmb3JtLXRhZz1tYW55bGludXhfMl8yNF9hYXJjaDY0CgogICAgZmluZCBkaXN0CgogICAgcHl0aG9uMyAtbSBwaXAgaW5zdGFsbCBwYW5kYXMgcHlhcnJvdwogICAgZmluZCBkaXN0CiAgICB3aGxfZmlsZT0kKGZpbmQgZGlzdCB8IGdyZXAgJ3dobCQnIHxncmVwICJjcCR7UFlfVkVSfSIpCiAgICBweXRob24zIC1tIHBpcCBpbnN0YWxsIC0tZm9yY2UtcmVpbnN0YWxsICR7d2hsX2ZpbGV9CgogICAgcHl0aG9uMyAtYyAiaW1wb3J0IGNoZGI7IHJlcyA9IGNoZGIucXVlcnkoJ3NlbGVjdCB2ZXJzaW9uKCknLCAnQ1NWJyk7IHByaW50KHJlcykiCgogICAgcHl0aG9uMyAtbSBjaGRiICJTRUxFQ1QgMSwgJ2FiJyIgYXJyb3d0YWJsZQoKICAgIHB5dGhvbjMgLW0gY2hkYiAiU0VMRUNUIDEsICdhYiciIGRhdGFmcmFtZQoKICAgIGJhc2ggLXggLi9jaGRiL3Rlc3Rfc21va2Uuc2gKCiAgICBtYWtlIHRlc3QKZG9uZQo= | base64 -d | bash -l -e -x | |
continue-on-error: false | |
# - name: Run chdb/build.sh | |
# run: | | |
# pyenv local "${{ matrix.python-version }}" | |
# python3 --version | |
# python3 -m pip install pybind11 | |
# export CC=/usr/bin/clang | |
# export CXX=/usr/bin/clang++ | |
# bash ./chdb/build.sh | |
# python3 -m pip install pandas pyarrow | |
# bash -x ./chdb/test_smoke.sh | |
# continue-on-error: false | |
- name: Check ccache statistics | |
run: | | |
ccache -s | |
ls -lh chdb | |
df -h | |
# - name: Install dependencies for building wheels | |
# run: | | |
# pyenv local "${{ matrix.python-version }}" | |
# python3 -m pip install -U pip tox twine setuptools wheel | |
# shell: bash -l {0} | |
# - name: Build wheels | |
# run: | | |
# pyenv local "${{ matrix.python-version }}" | |
# export CC=/usr/bin/clang | |
# export CXX=/usr/bin/clang++ | |
# make wheel | |
- name: Install patchelf from github | |
run: | | |
pyenv local "${{ matrix.python-version }}" | |
wget https://github.com/NixOS/patchelf/releases/download/0.18.0/patchelf-0.18.0-aarch64.tar.gz -O patchelf.tar.gz | |
tar -xvf patchelf.tar.gz | |
sudo cp bin/patchelf /usr/bin/ | |
sudo chmod +x /usr/bin/patchelf | |
patchelf --version | |
- name: Audit wheels | |
run: | | |
pyenv local "${{ matrix.python-version }}" | |
python3 -m pip install auditwheel | |
auditwheel -v repair -w dist/ --plat manylinux_2_24_aarch64 dist/*.whl | |
continue-on-error: false | |
- name: Show files | |
run: | | |
sudo rm -f dist/*-aarch64*.whl | |
ls -lh dist | |
shell: bash | |
continue-on-error: false | |
- uses: actions/upload-artifact@v3 | |
with: | |
path: ./dist/*.whl | |
- name: Upload pypi | |
if: startsWith(github.ref, 'refs/tags/v') | |
run: | | |
pyenv local "${{ matrix.python-version }}" | |
python3 -m pip install twine | |
python3 -m twine upload wheelhouse/*.whl | |
env: | |
TWINE_USERNAME: __token__ | |
TWINE_PASSWORD: ${{ secrets.PYPI_PASSWORD }} | |
# #build for macos12 arm64(Apple Silicon) | |
# build_wheels_macos_arm64: | |