Skip to content

Commit

Permalink
manylinux 2014 DIND build (#5396)
Browse files Browse the repository at this point in the history
Change Release CI so that it only uses manylinux2014 image to build
TileDB artifacts and do all the orchestration outside.

---
TYPE: NO_HISTORY
DESC: Fix manylinux2014 release ci

---------

Co-authored-by: Dušan Baran <[email protected]>
  • Loading branch information
dudoslav and Dušan Baran authored Dec 6, 2024
1 parent eb370b8 commit e7f6dfe
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 24 deletions.
12 changes: 0 additions & 12 deletions .github/workflows/full-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -106,17 +106,6 @@ jobs:
timeout: 120
bootstrap_args: '--enable-azure'

ci_manylinux:
uses: ./.github/workflows/ci-linux_mac.yml
with:
ci_backend: MANYLINUX
matrix_image: ubuntu-20.04
matrix_compiler_cflags: "-lrt"
matrix_compiler_cxxflags: "-lrt"
timeout: 120
bootstrap_args: '--enable-serialization'
manylinux: true

ci_msvc:
uses: ./.github/workflows/build-windows.yml

Expand Down Expand Up @@ -145,7 +134,6 @@ jobs:
ci7,
ci8,
ci9,
ci_manylinux,
ci_msvc,
backward_compatibility,
standalone
Expand Down
44 changes: 32 additions & 12 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -71,13 +71,9 @@ jobs:
MACOSX_DEPLOYMENT_TARGET: 11
triplet: arm64-osx-release
runs-on: ${{ matrix.os }}
container: ${{ matrix.manylinux || '' }}
env:
MACOSX_DEPLOYMENT_TARGET: ${{ matrix.MACOSX_DEPLOYMENT_TARGET }}
VCPKG_BINARY_SOURCES: 'clear;x-gha,readwrite'
# Manylinux does not support Node 20 due to libc incompatibility. Temporarily opt out.
# https://github.blog/changelog/2024-03-07-github-actions-all-actions-will-run-on-node20-instead-of-node16-by-default/
ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION: ${{ matrix.manylinux && 'true' || 'false' }}

steps:
- name: Checkout TileDB
Expand All @@ -99,16 +95,39 @@ jobs:
ref=${{ github.head_ref || github.ref_name }}
echo "release_version=${ref##*/}-$release_hash" >> $GITHUB_OUTPUT
shell: bash
- name: Install manylinux prerequisites
- uses: addnab/docker-run-action@v3
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
with:
image: ${{ matrix.manylinux }}
options: -v ${{ github.workspace }}:/work -e TILEDB_PACKAGE_VERSION=${{ steps.get-values.outputs.release_version }}
run: |
set -e pipefail
yum install -y redhat-lsb-core centos-release-scl devtoolset-7 perl-IPC-Cmd
python3.9 -m pip install ninja
export PATH="${PATH}:/opt/_internal/cpython-3.9.21/bin"
export VCPKG_FORCE_SYSTEM_BINARIES=YES
ninja --version
cmake -S /work -B /work/build \
-DCMAKE_BUILD_TYPE=Release \
-DBUILD_SHARED_LIBS=ON \
-DCMAKE_INSTALL_PREFIX=/work/dist \
-DTILEDB_INSTALL_LIBDIR=lib \
-DTILEDB_S3=ON \
-DTILEDB_AZURE=ON \
-DTILEDB_GCS=ON \
-DTILEDB_HDFS=${{ startsWith(matrix.platform, 'windows') && 'OFF' || 'ON' }} \
-DTILEDB_SERIALIZATION=ON \
-DTILEDB_WEBP=ON \
-DTILEDB_TESTS=OFF \
-DVCPKG_TARGET_TRIPLET=${{ matrix.triplet }} \
${{ matrix.cmake_args }}
cmake --build /work/build -j4 --config Release --target package
- name: Configure TileDB
if: ${{ startsWith(matrix.platform, 'linux') == false }}
run: |
cmake -S . -B build \
-DCMAKE_BUILD_TYPE=Release \
Expand All @@ -126,6 +145,7 @@ jobs:
${{ matrix.cmake_args }}
shell: bash
- name: Build TileDB
if: ${{ startsWith(matrix.platform, 'linux') == false }}
env:
TILEDB_PACKAGE_VERSION: ${{ steps.get-values.outputs.release_version }}
run: cmake --build build -j4 --config Release --target package
Expand Down

0 comments on commit e7f6dfe

Please sign in to comment.