Skip to content

TileDB Nightly Test Build #1418

TileDB Nightly Test Build

TileDB Nightly Test Build #1418

Workflow file for this run

name: TileDB Nightly Test Build
on:
schedule:
# runs every day at 2:50 UTC
- cron: "50 02 * * *"
workflow_dispatch:
jobs:
test:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
build_type: [Debug, Release]
assertions: [ON]
sanitizer: [OFF]
include:
- os: macos-latest # ASAN build
sanitizer: "address"
assertions: ON
build_type: "Release"
base_triplet: "arm64-osx"
- os: windows-latest
build_type: "Debug"
# Insufficient space on default D:/ for debug build
working_directory: "C:/"
fail-fast: false
name: |
${{ matrix.os }} - Sanitizer: ${{ matrix.sanitizer }} | Assertions: ${{ matrix.assertions }} | ${{ matrix.build_type }}
env:
TILEDB_NIGHTLY_BUILD: 1
steps:
- name: Print env
run: printenv
- name: Checkout TileDB `dev`
uses: actions/checkout@v3
- name: 'Set SDKROOT on macOS'
if: ${{ startsWith(matrix.os, 'macos-') }}
run: |
echo "SDKROOT=$(xcrun --sdk macosx --show-sdk-path)" >> $GITHUB_ENV
- name: Configure TileDB CMake (not-Windows)
if: ${{ ! contains(matrix.os, 'windows') }}
env:
SANITIZER_ARG: ${{ matrix.sanitizer }}
working-directory: ${{ matrix.working_directory || github.workspace }}
run: |
cmake -B build -DTILEDB_WERROR=ON -DTILEDB_SERIALIZATION=ON -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} -DTILEDB_SANITIZER=$SANITIZER_ARG -DTILEDB_ASSERTIONS=${{ matrix.assertions }} -DTILEDB_VCPKG_BASE_TRIPLET=${{ matrix.base_triplet }}
- name: Configure TileDB CMake (Windows)
if: contains(matrix.os, 'windows')
working-directory: ${{ matrix.working_directory || github.workspace }}
run: |
cmake -B build -S $env:GITHUB_WORKSPACE -DTILEDB_WERROR=ON -DTILEDB_SERIALIZATION=ON -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} -DTILEDB_ASSERTIONS=${{ matrix.assertions }}
- name: Build TileDB
working-directory: ${{ matrix.working_directory || github.workspace }}
run: |
cmake --build build -j2 --config ${{ matrix.build_type }}
- name: Test TileDB
working-directory: ${{ matrix.working_directory || github.workspace }}
run: |
cmake --build build --target check --config ${{ matrix.build_type }}
test_static_linkage:
runs-on: ${{ matrix.os }}
strategy:
matrix:
include:
- os: ubuntu-latest
triplet: x64-linux
- os: windows-2022
triplet: x64-windows
- os: macos-15-intel
triplet: x64-osx
deployment-target: 13
- os: macos-latest
triplet: arm64-osx
fail-fast: false
name: ${{ matrix.os }} - Static Linkage
env:
MACOSX_DEPLOYMENT_TARGET: ${{ matrix.deployment-target }}
steps:
- name: Print env
run: printenv
- name: Checkout TileDB `dev`
uses: actions/checkout@v4
- name: Free disk space
if: ${{ startsWith(matrix.os, 'ubuntu-') == true }}
run: |
set -e pipefail
df -h
sudo apt clean
sudo rm -rf /usr/share/dotnet
sudo rm -rf /opt/ghc
sudo rm -rf /usr/local/lib/android
sudo rm -rf /opt/hostedtoolcache/CodeQL
sudo docker image prune --all --force
sudo docker builder prune -a
df -h
shell: bash
- name: Setup MSVC toolset
uses: TheMrMilchmann/setup-msvc-dev@v3
if: runner.os == 'Windows'
with:
arch: x64
- name: 'Set SDKROOT on macOS'
if: ${{ startsWith(matrix.os, 'macos-') }}
run: |
echo "SDKROOT=$(xcrun --sdk macosx --show-sdk-path)" >> $GITHUB_ENV
- name: Install Ninja
uses: seanmiddleditch/gha-setup-ninja@v5
- name: Configure TileDB CMake
run: |
cmake -B build -DCMAKE_BUILD_TYPE=Release -DTILEDB_WERROR=ON -DTILEDB_S3=ON -DTILEDB_GCS=ON -DTILEDB_AZURE=ON -DTILEDB_SERIALIZATION=ON -DTILEDB_TESTS=OFF -DBUILD_SHARED_LIBS=OFF
- name: Build TileDB
run: cmake --build build -j2 --config Release --target tiledb
- name: Install TileDB
run: cmake --install build --config Release --prefix dist
- name: Configure CMake example
# Configure with Ninja to use a single-config generator and put the executable in the same path across platforms.
run: |
& cmake -G Ninja -B examples/cmake_project/build -S examples/cmake_project -DCMAKE_BUILD_TYPE=Release "-DCMAKE_PREFIX_PATH=$($PWD.Path)/dist;$($PWD.Path)/build/vcpkg_installed/${{ matrix.triplet }}"
shell: pwsh
- name: Build CMake example
run: cmake --build examples/cmake_project/build -j2
- name: Run CMake example
run: examples/cmake_project/build/ExampleExe
create_issue_on_fail:
permissions:
issues: write
runs-on: ubuntu-latest
needs:
- test
- test_static_linkage
if: github.event_name == 'schedule' && (failure() || cancelled())
steps:
- name: Checkout TileDB `dev`
uses: actions/checkout@v3
- name: Create Issue if Build Fails
uses: TileDB-Inc/github-actions/open-issue@main
with:
name: nightly GitHub Actions build
label: nightly
assignee: ihnorton,ypatia,teo-tsirpanis