Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Produce aarch64 release artifacts from manylinux2014 container #5348

Merged
merged 36 commits into from
Nov 14, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
36 commits
Select commit Hold shift + click to select a range
392a504
Cross compile aarch64 inside manylinux container
dudoslav Oct 14, 2024
52f8fd4
Do not use sudo
dudoslav Oct 14, 2024
208cc05
Install aarch64 deps using yum
dudoslav Oct 14, 2024
1cec4bc
Install glibc
dudoslav Oct 14, 2024
b551e05
Use newer version of manylinux container
dudoslav Oct 16, 2024
0bc21be
Use manylinux-cross
dudoslav Oct 16, 2024
d200f92
Install dependencies from apt
dudoslav Oct 16, 2024
95f3dee
Apt update
dudoslav Oct 16, 2024
ce5e617
Use x86_64 toolchain image
dudoslav Oct 16, 2024
01eee2b
Try out aarch64-amd64 manylinux
dudoslav Oct 16, 2024
3619bc1
Do not source error log print
dudoslav Oct 16, 2024
6df111e
Use sh instead of source
dudoslav Oct 16, 2024
bca7be5
TEMP: Change default compiler values
dudoslav Oct 16, 2024
6c750b7
TEMP: Set hardcoded compiler
dudoslav Oct 16, 2024
2af917f
Use native arm64 runner
dudoslav Oct 17, 2024
632a1da
Fix runs-on
dudoslav Oct 17, 2024
022783e
Modify release CI to run in PR
dudoslav Oct 18, 2024
d105286
Install ninja-build on linux
dudoslav Oct 25, 2024
61634e3
Install ninja using pip
dudoslav Oct 25, 2024
124971a
Add env variable for arm64 specific build
dudoslav Oct 25, 2024
ae0c420
Remove env
dudoslav Oct 28, 2024
02808e6
properly set VCPKG_FORCE_SYSTEM_BINARIES
dudoslav Oct 28, 2024
378a7fb
Fix ternary operator
dudoslav Oct 28, 2024
1fca2bc
Fix
dudoslav Oct 28, 2024
ed56602
Use bash in print on error for Windows
dudoslav Oct 29, 2024
af9cb9a
Merge remote-tracking branch 'origin/dev' into db/aarch64_manylinux
dudoslav Oct 29, 2024
972010b
Brew install ninja
dudoslav Oct 29, 2024
de7935d
Set path only for linux builds
dudoslav Oct 29, 2024
342d87e
Rename C and CXX compiler for aarch64
dudoslav Oct 29, 2024
2888cae
Remove unused arm64 toolchain
dudoslav Oct 29, 2024
6299b48
Uncomment release logic
dudoslav Oct 29, 2024
8ca7397
Merge branch 'dev' into db/aarch64_manylinux
dudoslav Nov 11, 2024
dd8d05a
Update .github/workflows/release.yml
dudoslav Nov 13, 2024
41327e3
Merge branch 'dev' into db/aarch64_manylinux
dudoslav Nov 13, 2024
93d891f
Merge branch 'dev' into db/aarch64_manylinux
dudoslav Nov 14, 2024
cc9b74b
Merge branch 'dev' into db/aarch64_manylinux
dudoslav Nov 14, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 9 additions & 11 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -57,9 +57,9 @@ jobs:
triplet: x64-linux-release
manylinux: quay.io/pypa/manylinux2014_x86_64
- platform: linux-aarch64
os: ubuntu-24.04
cmake_args: -DVCPKG_CHAINLOAD_TOOLCHAIN_FILE=$PWD/cmake/arm64_linux_toolchain.cmake
os: linux-arm64-ubuntu24
triplet: arm64-linux-release
manylinux: quay.io/pypa/manylinux2014_aarch64
- platform: macos-x86_64
os: macos-latest
cmake_args: -DCMAKE_OSX_ARCHITECTURES=x86_64
Expand All @@ -84,7 +84,7 @@ jobs:
# v4 uses node 20 which is incompatible with the libc version of the manylinux image
uses: actions/checkout@v3
- name: 'Homebrew setup'
run: brew install automake pkg-config
run: brew install automake pkg-config ninja
if: ${{ startsWith(matrix.os, 'macos-') == true }}
- name: Export GitHub Actions cache variables
uses: actions/github-script@v6
Expand All @@ -99,18 +99,15 @@ jobs:
ref=${{ github.head_ref || github.ref_name }}
echo "release_version=${ref##*/}-$release_hash" >> $GITHUB_OUTPUT
shell: bash
- name: Install aarch64 cross compilation prerequisites
if: ${{ matrix.platform == 'linux-aarch64' }}
run: |
sudo apt-get install -y cmake gcc g++ ninja-build libtool autoconf pkg-config gcc-aarch64-linux-gnu g++-aarch64-linux-gnu curl zip unzip tar
# Use upstream libmagic port which supports cross-compilation.
rm -rf ports/libmagic
- name: Install manylinux prerequisites
if: matrix.manylinux
if: ${{ startsWith(matrix.platform, 'linux') == true }}
run: |
set -e pipefail
yum install -y redhat-lsb-core centos-release-scl devtoolset-7 perl-IPC-Cmd
echo "source /opt/rh/devtoolset-7/enable" >> ~/.bashrc
python3.9 -m pip install ninja
echo "/opt/_internal/cpython-3.9.20/bin" >> $GITHUB_PATH
echo "VCPKG_FORCE_SYSTEM_BINARIES=YES" >> $GITHUB_ENV
- name: Configure TileDB
run: |
cmake -S . -B build \
Expand Down Expand Up @@ -140,8 +137,9 @@ jobs:
build/tiledb-*.tar.gz*
build/tiledb-*.zip*
- name: "Print log files (failed build only)"
shell: bash
run: |
source $GITHUB_WORKSPACE/scripts/ci/print_logs.sh
$GITHUB_WORKSPACE/scripts/ci/print_logs.sh
if: failure() # only run this job if the build step failed

Test-Release-Artifacts:
Expand Down
10 changes: 0 additions & 10 deletions cmake/arm64_linux_toolchain.cmake

This file was deleted.

Loading