From e06c5e05626373b6fa798e2e6a492a589315f3bb Mon Sep 17 00:00:00 2001 From: Isaiah Norton Date: Thu, 20 Jul 2023 07:55:57 -0400 Subject: [PATCH] TMP run only dockerfile job --- .github/workflows/build-dockerfile.yml | 4 +- .github/workflows/build-docs.yml | 60 --- .github/workflows/build-rtools40.yml | 37 -- ...ld-ubuntu20.04-backwards-compatibility.yml | 112 ----- .github/workflows/build-windows.yml | 461 ------------------ .github/workflows/check-formatting.yml | 43 -- .../check-heap-memory-api-violations.yml | 42 -- .github/workflows/check-pr-body.yml | 23 - .github/workflows/ci-linux_mac.yml | 221 --------- .github/workflows/ci-rest.yml | 29 -- .github/workflows/full-ci-dummy.yml | 25 - .github/workflows/full-ci.yml | 132 ----- .github/workflows/nightly-test.yml | 84 ---- .github/workflows/prepare-release.yml | 39 -- .github/workflows/quarto-render.yml | 47 -- .github/workflows/unit-test-runs.yml | 67 --- 16 files changed, 2 insertions(+), 1424 deletions(-) delete mode 100644 .github/workflows/build-docs.yml delete mode 100644 .github/workflows/build-rtools40.yml delete mode 100644 .github/workflows/build-ubuntu20.04-backwards-compatibility.yml delete mode 100644 .github/workflows/build-windows.yml delete mode 100644 .github/workflows/check-formatting.yml delete mode 100644 .github/workflows/check-heap-memory-api-violations.yml delete mode 100644 .github/workflows/check-pr-body.yml delete mode 100644 .github/workflows/ci-linux_mac.yml delete mode 100644 .github/workflows/ci-rest.yml delete mode 100644 .github/workflows/full-ci-dummy.yml delete mode 100644 .github/workflows/full-ci.yml delete mode 100644 .github/workflows/nightly-test.yml delete mode 100644 .github/workflows/prepare-release.yml delete mode 100644 .github/workflows/quarto-render.yml delete mode 100644 .github/workflows/unit-test-runs.yml diff --git a/.github/workflows/build-dockerfile.yml b/.github/workflows/build-dockerfile.yml index ddd6ef7b3c1..1300e801cd4 100644 --- a/.github/workflows/build-dockerfile.yml +++ b/.github/workflows/build-dockerfile.yml @@ -1,7 +1,7 @@ name: Build-Dockerfile -on: - workflow_call: +#on: +# workflow_call: jobs: build-dockerfile: diff --git a/.github/workflows/build-docs.yml b/.github/workflows/build-docs.yml deleted file mode 100644 index 7da4e6f48e9..00000000000 --- a/.github/workflows/build-docs.yml +++ /dev/null @@ -1,60 +0,0 @@ -name: build-docs -on: - push: - paths-ignore: - - '.github/workflows/quarto-render.yml' - - '_quarto.yml' - - 'quarto-materials/*' - - '**/.md' - - 'tiledb/doxygen/source/*' - - 'tiledb/sm/c_api/tiledb_version.h' - pull_request: - branches: - - '*' # must quote since "*" is a YAML reserved character; we want a string - paths-ignore: - - '.github/workflows/quarto-render.yml' - - '_quarto.yml' - - 'quarto-materials/*' - - '**/.md' - - 'tiledb/doxygen/source/*' - - 'tiledb/sm/c_api/tiledb_version.h' - -jobs: - build: - runs-on: ubuntu-22.04 - if: ${{ startsWith(github.ref , 'refs/tags') != true && startsWith(github.ref , 'build-') != true }} - timeout-minutes: 90 - name: Build Docs - steps: - - uses: actions/checkout@v3 - - name: 'Print env' - run: | - echo "'uname -s' is:" - echo "uname: " $(uname) - echo "uname -m: " $(uname -m) - echo "uname -r:" $(uname -r) - echo "uname -s: " $(uname -s) - echo "uname -v: " $(uname -v) - printenv - shell: bash - - - name: Set up Python - uses: actions/setup-python@v4 - - - name: Install Doxygen (linux only) - run: | - set -e pipefail - sudo apt-get update - # Install doxygen *before* running cmake - sudo apt-get install -y doxygen - pip install virtualenv - shell: bash - if: ${{ runner.os == 'Linux' }} - - - name: Build Doxygen Docs (linux only)' - run: | - # Build the documentation (this does not deploy to RTD). - cd $GITHUB_WORKSPACE/tiledb/doxygen; - ./local-build.sh; - shell: bash - if: ${{ runner.os == 'Linux' }} diff --git a/.github/workflows/build-rtools40.yml b/.github/workflows/build-rtools40.yml deleted file mode 100644 index a59b811d786..00000000000 --- a/.github/workflows/build-rtools40.yml +++ /dev/null @@ -1,37 +0,0 @@ -name: rtools40 -on: - workflow_call: - -jobs: - build: - runs-on: windows-latest - strategy: - matrix: - include: [ - { msystem: MINGW64, toolchain: x86_64 }, - { msystem: MINGW32, toolchain: i686 }, - { msystem: ucrt64, toolchain: "ucrt-x86_64" } - ] - fail-fast: false - steps: - - name: Prepare git - run: git config --global core.autocrlf false - - uses: actions/checkout@v3 - with: - fetch-depth: 1 - - name: Install rtools40 if needed - uses: r-windows/install-rtools@master - - name: Building TileDB with Rtools40 - run: | - cd ${GITHUB_WORKSPACE}/.github/workflows/mingw-w64-tiledb - pacman -Sy - makepkg-mingw --noconfirm --syncdeps - env: - TILEDB_HOME: ${{ github.workspace }} - MINGW_INSTALLS: ${{ matrix.msystem }} - shell: c:\rtools40\usr\bin\bash.exe --login {0} - - name: "Upload binaries" - uses: actions/upload-artifact@v3 - with: - name: mingw-w64-${{ matrix.msystem }}-tiledb - path: .github/workflows/mingw-w64-tiledb/*.pkg.tar.* diff --git a/.github/workflows/build-ubuntu20.04-backwards-compatibility.yml b/.github/workflows/build-ubuntu20.04-backwards-compatibility.yml deleted file mode 100644 index 57d7e1d50f8..00000000000 --- a/.github/workflows/build-ubuntu20.04-backwards-compatibility.yml +++ /dev/null @@ -1,112 +0,0 @@ -name: build-ubuntu-20.04-backwards-compatibility -on: - workflow_call: - -env: - CXX: g++ - -jobs: - build: - runs-on: ${{matrix.os}} - if: ${{ startsWith(github.ref , 'refs/tags') != true && startsWith(github.ref , 'build-') != true }} - strategy: - matrix: - os: - - ubuntu-20.04 - timeout-minutes: 120 - name: Build tiledb_unit - steps: - - uses: actions/checkout@v3 - - - name: 'Print env' - run: ./scripts/ci/posix/print-env.sh - shell: bash - - # Need this for virtualenv and arrow tests if enabled - - uses: actions/setup-python@v4 - with: - python-version: '3.8' - - run: | - set -e pipefail - python -m pip install --upgrade pip virtualenv - shell: bash - - - name: 'Build tiledb_unit' - id: build - shell: bash - run: | - bootstrap_args="${bootstrap_args}"; - bootstrap_args="${bootstrap_args} --enable-release-symbols"; - source $GITHUB_WORKSPACE/scripts/ci/bootstrap_libtiledb.sh - source $GITHUB_WORKSPACE/scripts/ci/build_libtiledb.sh - - # Save the tiledb_unit binary for use in the next step - - name: 'Upload Artifact' - uses: actions/upload-artifact@v3 - with: - name: tiledb_unit - path: ${{ github.workspace }}/build/tiledb/test/tiledb_unit - retention-days: 1 - - test: - needs: build - runs-on: ${{matrix.os}} - if: ${{ startsWith(github.ref , 'refs/tags') != true && startsWith(github.ref , 'build-') != true }} - strategy: - matrix: - os: - - ubuntu-20.04 - # Note: v2_1_0 arrays were never created so its currently skipped - # Note: This matrix is used to set the value of TILEDB_COMPATIBILITY_VERSION - tiledb_version: ["v1_4_0", "v1_5_0", "v1_6_0", "v1_7_0", "v2_0_0", "v2_2_0", "v2_2_3", "v2_3_0", "v2_4_0", "v2_5_0", "v2_6_0", "v2_7_0", "v2_8_3", "v2_9_1", "v2_10_0", "v2_11_0", "v2_12_0", "v2_13_0", "v2_14_0", "v2_15_0"] - timeout-minutes: 30 - name: ${{ matrix.tiledb_version }} - steps: - - uses: actions/checkout@v3 - - - name: Download a single artifact - uses: actions/download-artifact@v3 - with: - name: tiledb_unit - path: ${{ github.workspace }}/build/tiledb/test/ - - - name: Update tiledb_unit permissions - run: chmod +x $GITHUB_WORKSPACE/build/tiledb/test/tiledb_unit - - - name: 'Test backward compatibility' - id: test - env: - TILEDB_COMPATIBILITY_VERSION: ${{ matrix.tiledb_version }} - run: | - ulimit -c unlimited - ulimit -c - - # we clone the latest version, because we are specifying the - # test target version in the TILEDB_COMPATIBILITY_VERSION variable - git clone --depth=1 https://github.com/TileDB-Inc/TileDB-Unit-Test-Arrays.git --branch main test/inputs/arrays/read_compatibility_test - - # Remove all arrays besides the current matrix version - ls test/inputs/arrays/read_compatibility_test/ | grep -v ${TILEDB_COMPATIBILITY_VERSION} | grep -v "__tiledb_group.tdb" | xargs -I{} echo "rm -r test/inputs/arrays/read_compatibility_test/{}" - ls test/inputs/arrays/read_compatibility_test/ | grep -v ${TILEDB_COMPATIBILITY_VERSION} | grep -v "__tiledb_group.tdb" | xargs -I{} rm -r test/inputs/arrays/read_compatibility_test/{} - rm -r test/inputs/arrays/read_compatibility_test/.git - rm test/inputs/arrays/read_compatibility_test/.gitignore - ls -lah test/inputs/arrays/read_compatibility_test/ - ls -lah test/inputs/arrays/read_compatibility_test/${TILEDB_COMPATIBILITY_VERSION}/ - - - # Bypass Catch2 Framework stdout interception with awk on test output - $GITHUB_WORKSPACE/build/tiledb/test/tiledb_unit -d yes "[backwards-compat]"| awk '/1: ::set-output/{sub(/.*1: /, ""); print; next} 1' - - - name: 'Test status check' - run: | - # tiledb_unit is configured to set a job-level variable TILEDB_CI_SUCCESS=1 - # following the test run. If this variable is not set, the build should fail. - # see https://github.com/TileDB-Inc/TileDB/pull/1400 (5f0623f4d3) - if [[ "${{ steps.test.outputs.TILEDB_CI_SUCCESS }}" -ne 1 ]]; then - exit 1; - fi - - - name: "Print log files (failed build only)" - run: | - source $GITHUB_WORKSPACE/scripts/ci/print_logs.sh - if: ${{ failure() }} # only run this job if the build step failed diff --git a/.github/workflows/build-windows.yml b/.github/workflows/build-windows.yml deleted file mode 100644 index 4afd7a66451..00000000000 --- a/.github/workflows/build-windows.yml +++ /dev/null @@ -1,461 +0,0 @@ -name: windows build - -on: - workflow_call: - -env: - BACKWARDS_COMPATIBILITY_ARRAYS: OFF - TILEDB_S3: OFF - TILEDB_AZURE: OFF - TILEDB_GCS: OFF - TILEDB_SERIALIZATION: OFF - TILEDB_STATIC: OFF - TILEDB_TOOLS: ON - TILEDB_BASE_BOOTSTRAP_OPTIONS: '-EnableVcpkg -EnableVerbose -EnableStaticTileDB' - -jobs: - build: - runs-on: ${{ matrix.os }} - strategy: - fail-fast: false - matrix: - os: [windows-2019, windows-2022] - #considering https://stackoverflow.com/questions/65035256/how-to-access-matrix-variables-in-github-actions - environ: [azure, s3, serialization] - include: - - environ: 'azure' - TILEDB_AZURE: ON - TILEDB_USE_CUSTOM_NODEJS: OFF - TILEDB_ARROW_TESTS: ON - TILEDB_SERIALIZATION: OFF - TILEDB_S3: OFF - TILEDB_WEBP: OFF - - environ: 's3' - TILEDB_S3: ON - TILEDB_ARROW_TESTS: ON - TILEDB_SERIALIZATION: OFF - TILEDB_AZURE: OFF - TILEDB_WEBP: OFF - - environ: 'serialization' - TILEDB_S3: OFF - TILEDB_AZURE: OFF - TILEDB_ARROW_TESTS: OFF - TILEDB_SERIALIZATION: ON - TILEDB_WEBP: ON - env: - TILEDB_HOME: ${{ github.workspace }} - TILEDB_GA_IMAGE_NAME: ${{ matrix.os }} - TILEDB_S3: ${{ matrix.TILEDB_S3 }} - TILEDB_AZURE: ${{ matrix.TILEDB_AZURE }} #azure }} - TILEDB_SERIALIZATION: ${{ matrix.TILEDB_SERIALIZATION }} #serialization }} - TILEDB_ARROW_TESTS: ${{ matrix.TILEDB_ARROW_TESTS }} - TILEDB_WEBP: ${{ matrix.TILEDB_WEBP }} - TILEDB_CMAKE_BUILD_TYPE: 'Release' - VCPKG_BINARY_SOURCES: 'clear;x-gha,readwrite' - steps: - - name: 'tiledb env prep' - run: | - $env:BUILD_BUILDDIRECTORY = $env:GITHUB_WORKSPACE.replace("TileDB\TileDB","tdbbd") # 't'ile'db' 'b'uild 'd'ir - $env:BUILD_SOURCESDIRECTORY = $env:GITHUB_WORKSPACE - - Write-Host "GITHUB_WORKSPACE is '$env:GITHUB_WORKSPACE'" - Write-Host "BUILD_BUILDDIRECTORY is '$env:BUILD_BUILDDIRECTORY'" - Write-Host "BUILD_SOURCESDIRECTORY is '$env:BUILD_SOURCESDIRECTORY'" - Write-Host "GITHUB_ENV is $env:GITHUB_ENV" - - mkdir $env:BUILD_BUILDDIRECTORY - - write-host "BUILD_BUILDDIRECTORY=$env:BUILD_BUILDDIRECTORY" *>> $env:GITHUB_ENV - write-host "BUILD_SOURCESDIRECTORY=$env:BUILD_SOURCESDIRECTORY" *>> $env:GITHUB_ENV - - # Configure required environment variables for vcpkg to use - # GitHub's Action Cache - - uses: actions/github-script@v6 - with: - script: | - core.exportVariable('ACTIONS_CACHE_URL', process.env.ACTIONS_CACHE_URL || ''); - core.exportVariable('ACTIONS_RUNTIME_TOKEN', process.env.ACTIONS_RUNTIME_TOKEN || ''); - - - name: 'Print env' - shell: cmd - run: | - set - - - name: 'dump file prep' - shell: cmd - run: | - reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps" /v DumpType /t REG_DWORD /d 2 /f - reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps" /v DumpCount /t REG_DWORD /d 10 /f - reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps" /v DumpType - reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps" /v DumpFolder - reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps" /v DumpCount - - - name: 'proxy localappdata' - shell: pwsh - run: | - #so, apparently env context is *NOT* populated from runner machine environ... - #https://github.com/actions/runner/issues/740 - #i.e. for us ${{ env.LOCALAPPDATA }} does not work directly (wanted in artifact upload path) - #and considered to be doc'd as so, tho the ref'd doc doesn't really seem to outline that, but behaviour fails... - #https://github.com/actions/runner/blob/main/docs/adrs/0278-env-context.md#dont-populate-the-env-context-with-environment-variables-from-runner-machine - #but, it seems *we* can populate our own var from our actions, and access it in file upload... - echo TDBLOCALAPPDATA=$env:LOCALAPPDATA >> "$env:GITHUB_ENV" - - - name: ARROW python needs - shell: bash - if: ${{ matrix.TILEDB_ARROW_TESTS == 'ON' }} - run: | - set -e pipefail - if [[ "$TILEDB_ARROW_TESTS" == "ON" ]]; then - pip install pyarrow pybind11 numpy - fi - - - name: Prepare git - run: git config --global core.autocrlf false - - - uses: actions/checkout@v3 - with: - submodules: true - fetch-depth: 0 - - - name: Prevent vcpkg from building debug variants - shell: python - run: | - import os - - workspace = os.environ["GITHUB_WORKSPACE"] - triplets = os.path.join(workspace, "external", "vcpkg", "triplets") - - for path, dnames, fnames in os.walk(triplets): - for fname in fnames: - fname = os.path.join(path, fname) - print(fname) - with open(fname, "rb") as handle: - contents = handle.read() - # If a file is already patched we skip patching it again because - # this affects the hashes calculated by vcpkg for caching - if b"VCPKG_BUILD_TYPE release" in contents: - continue - contents += b"\nset(VCPKG_BUILD_TYPE release)\n" - with open(fname, "wb") as handle: - handle.write(contents) - - - name: core tiledb windows build - run: | - $ErrorView = "NormalView" - - #directory $env:BUILD_BUILDDIRECTORY was created in step 'tiledb env prep' - cd $env:BUILD_BUILDDIRECTORY - - # allow double-checking path - cmd /c "echo $PATH" - - $bootstrapOptions = $env:TILEDB_BASE_BOOTSTRAP_OPTIONS - if ($env:TILEDB_S3 -eq "ON") { - $bootstrapOptions = "-EnableS3 " + $bootstrapOptions - } - if ($env:TILEDB_AZURE -eq "ON") { - $bootstrapOptions = "-EnableAzure " + $bootstrapOptions - - # to be removed when build of crc32 is to be used by gcs - $bootstrapOptions = $bootstrapOptions + " -_EnableCrc32" - } - if ($env:TILEDB_GCS -eq "ON") { - $bootstrapOptions = "-EnableGCS " + $bootstrapOptions - #NOTE: GCS simulator not yet actually in place. - } - if ($env:TILEDB_SERIALIZATION -eq "ON") { - $bootstrapOptions = "-EnableSerialization " + $bootstrapOptions - } - # static already added above as initial default - # if ($env:TILEDB_STATIC -eq "ON") { - # $bootstrapOptions = $bootstrapOptions + " -EnableStaticTileDB" - # } - # if ($env:TILEDB_HDFS -eq "ON") { - # $bootstrapOptions = $bootstrapOptions + " -EnableHDFS" - #} - if ($env:TILEDB_TOOLS -eq "ON") { - $bootstrapOptions = $bootstrapOptions + " -EnableTools" - } - $CMakeBuildType = $env:TILEDB_CMAKE_BUILD_TYPE - if ($env:TILEDB_DEBUG -eq "ON") { - $bootstrapOptions = $bootstrapOptions + " -EnableDebug" - $CMakeBuildType = "Debug" - # Change in environment for next steps! - write-host "TILEDB_CMAKE_BUILD_TYPE=$CMakeBuildType" *>> $env:GITHUB_ENV - - } elseif ($CMakeBuildType -eq "RelWithDebInfo") { - $bootstrapOptions = $bootstrapOptions + " -EnableReleaseSymbols" - } - # if ($env:TILEDB_CI_ASAN -eq "ON") { - # $bootstrapOptions = $bootstrapOptions + " -EnableSanitizer address -EnableDebug" - # } - # if ($env:TILEDB_CI_TSAN -eq "ON") { - # $bootstrapOptions = $bootstrapOptions + " -EnableSanitizer thread -EnableDebug" - # } - # static already added above as initial default - # if ($env:TILEDB_FORCE_BUILD_DEPS" -eq "ON") { - # $bootstrapOptions = $bootstrapOptions + " -EnableBuildDeps" - # } - if ($env:TILEDB_WERROR -eq "OFF") { - $bootstrapOptions = $bootstrapOptions + " -DisableWerror" - } - if ($env:TILEDB_WEBP -eq "OFF") { - $bootstrapOptions = $bootstrapOptions + " -DisableWebP" - } - - $bootstrapExpression = "& $env:BUILD_SOURCESDIRECTORY\bootstrap.ps1 " + $bootstrapOptions - Write-Host "bootstrapExpression: $bootstrapExpression" - Invoke-Expression $bootstrapExpression - - if ($LastExitCode -ne 0) { - Write-Host "Bootstrap failed." - exit $LastExitCode - } - - cmake --build $env:BUILD_BUILDDIRECTORY --config $CMakeBuildType -j $env:NUMBER_OF_PROCESSORS 2>&1 - - if ($LastExitCode -ne 0) { - Write-Host "Build failed. CMake exit status: " $LastExitCocde - exit $LastExitCode - } - - cmake --build $env:BUILD_BUILDDIRECTORY --target install-tiledb --config $CMakeBuildType 2>&1 - - if ($LastExitCode -ne 0) { - Write-Host "Installation failed." - $host.SetShouldExit($LastExitCode) - } - shell: powershell - - - name: 'Test' - id: test - shell: powershell - run: | - write-host "begin run: 'Test'" - - $CMakeBuildType = $env:TILEDB_CMAKE_BUILD_TYPE - - # Clone backwards compatibility test arrays - if ($env:BACKWARDS_COMPATIBILITY_ARRAYS -eq "ON") { - git clone https://github.com/TileDB-Inc/TileDB-Unit-Test-Arrays.git --branch 2.5.0 $env:BUILD_SOURCESDIRECTORY/test/inputs/arrays/read_compatibility_test - } - - if ($env:TILEDB_S3 -eq "ON") { - $env:MINIO_ACCESS_KEY = "minio" - $env:MINIO_SECRET_KEY = "miniosecretkey" - $env:AWS_ACCESS_KEY_ID = "minio" - $env:AWS_SECRET_ACCESS_KEY = "miniosecretkey" - # TODO DEBUG move this back in the TILEDB_S3 section - # currently we do not run S3 tests on Windows because tests time out (minio+azure slow?) - # & "$env:BUILD_SOURCESDIRECTORY\scripts\install-minio.ps1" - - # update CMake to disable S3 for the test configuration, see minio note above - cmake -B $env:BUILD_BUILDDIRECTORY\tiledb -DTILEDB_S3=0 $env:BUILD_SOURCESDIRECTORY - } - - # CMake exits with non-0 status if there are any warnings during the build, so - cmake --build $env:BUILD_BUILDDIRECTORY\tiledb -j $env:NUMBER_OF_PROCESSORS --target tiledb_unit --config $CMakeBuildType -- /verbosity:minimal - cmake --build $env:BUILD_BUILDDIRECTORY\tiledb -j $env:NUMBER_OF_PROCESSORS --target tiledb_regression --config $CMakeBuildType -- /verbosity:minimal - cmake --build $env:BUILD_BUILDDIRECTORY\tiledb -j $env:NUMBER_OF_PROCESSORS --target all_link_complete --config $CMakeBuildType -- /verbosity:minimal - - if ($env:TILEDB_AZURE -eq "ON") { - if($env.TILEDB_USE_CUSTOM_NODE_JS) { - Write-Host "azurite: using custom install nodejs" - #in CI environ, doesn't work with 'local' install, works when -g'lobal' install used in the .ps1 - & "$env:BUILD_SOURCESDIRECTORY\scripts\install-run-azurite.ps1" - } - else { #using the node/npm already present in vm - Write-Host "azurite: using vm install nodejs" - #this code path avoids overhead of download/expand/install of alternate nodejs/azurite. - npm install -g azurite - Write-Host "done with 'npm install -g azurite'" - $azuriteDataPath = (Join-Path $env:TEMP "azuriteData") - New-Item -ItemType Directory -Path $azuriteDataPath - $azuriteDebugLog = (Join-Path $env:TEMP "azuriteDebugLog.Log") - ls $env:TEMP - ls $env:azureDataPath - cmd /c "start `"azurite`" azurite-blob --silent --location $azuriteDataPath --debug $azuriteDebugLog --blobPort 10000 --blobHost 127.0.0.1" - Write-Host "after starting azure" - } - Write-Host "look for 'node.exe' in following list:" - tasklist | findstr /i node.exe - } - - # Actually run tests - - $cmds = "$env:BUILD_BUILDDIRECTORY\tiledb\test\$CMakeBuildType\tiledb_unit.exe -d=yes" - Write-Host "cmds: '$cmds'" - Invoke-Expression $cmds - if ($LastExitCode -ne 0) { - Write-Host "Tests failed. tiledb_unit exit status: " $LastExitCocde - $host.SetShouldExit($LastExitCode) - } - - $cmds = "$env:BUILD_BUILDDIRECTORY\tiledb\test\ci\$CMakeBuildType\test_assert.exe -d=yes" - Invoke-Expression $cmds - if ($LastExitCode -ne 0) { - Write-Host "Tests failed. test_assert exit status: " $LastExitCocde - $host.SetShouldExit($LastExitCode) - } - - - if ($env:TILEDB_WEBP -eq "ON") { - $cmds = "$env:BUILD_BUILDDIRECTORY\tiledb\tiledb\sm\compressors\$CMakeBuildType\unit_link_webp.exe" - Write-Host "cmds: '$cmds'" - Invoke-Expression $cmds - - if ($LastExitCode -ne 0) { - Write-Host "unit_link_webp failed. CMake exit status: " $LastExitCocde - $host.SetShouldExit($LastExitCode) - } - } - # Build the examples - cmake --build $env:BUILD_BUILDDIRECTORY --target examples --config $CMakeBuildType -v - - if ($LastExitCode -ne 0) { - Write-Host "Examples failed to build." - $host.SetShouldExit($LastExitCode) - } - - $env:Path += ";$env:BUILD_BUILDDIRECTORY\dist\bin;$env:BUILD_BUILDDIRECTORY\externals\install\bin" - - $TestAppDir = (Join-Path $env:BUILD_BUILDDIRECTORY "tiledb\examples\c_api") - $TestAppDataDir = (Join-Path $env:BUILD_BUILDDIRECTORY "tiledb\examples\c_api\test_app_data") - Get-ChildItem (Join-Path $env:BUILD_BUILDDIRECTORY "tiledb\examples\c_api\$CMakeBuildType") -Filter *.exe | - Foreach-Object { - try { - Set-Location -path $TestAppDir - Remove-Item -Path $TestAppDataDir -recurse -force -ErrorAction SilentlyContinue - New-Item -ItemType Directory -Path $TestAppDataDir > $nul - Set-Location -path $TestAppDataDir - $exepath = $_.FullName - write-host "Executing $exepath" - & $exepath - $status = $? - if (-not $status) { - Write-Host "FAILED: Error $status running $exepath" - Write-Host "::set-output name=TILEDB_CI_SUCCESS::0" - $host.SetShouldExit(1) - } elseif ($LastExitCode -ne 0) { - Write-Host "FAILED: C++ API example failed $LastExitCode, $exepath." - Write-Host "::set-output name=TILEDB_CI_SUCCESS::0" - $host.SetShouldExit($LastExitCode) - } - - } catch { - $status = $_ - Write-Host "FAILED: exception C API example failed, $status, $exepath." - Write-Host "::set-output name=TILEDB_CI_SUCCESS::0" - $host.SetShouldExit(1) - } - } - Set-Location -path $TestAppDir - Remove-Item -Path $TestAppDataDir -recurse -force -ErrorAction SilentlyContinue - - $TestAppDir = (Join-Path $env:BUILD_BUILDDIRECTORY "tiledb\examples\cpp_api") - $TestAppDataDir = (Join-Path $env:BUILD_BUILDDIRECTORY "tiledb\examples\cpp_api\test_app_data") - Get-ChildItem (Join-Path $env:BUILD_BUILDDIRECTORY "tiledb\examples\cpp_api\$CMakeBuildType") -Filter *.exe | - Foreach-Object { - try { - Set-Location -path $TestAppDir - Remove-Item -Path $TestAppDataDir -recurse -force -ErrorAction SilentlyContinue - New-Item -ItemType Directory -Path $TestAppDataDir > $nul - Set-Location -path $TestAppDataDir - $exepath = $_.FullName - write-host "Executing $exepath" - & $exepath - $status = $? - if (-not $status) { - Write-Host "FAILED: Error $status running $exepath" - Write-Host "::set-output name=TILEDB_CI_SUCCESS::0" - $host.SetShouldExit(1) - } elseif ($LastExitCode -ne 0) { - Write-Host "FAILED: C++ API example failed $LastExitCode, $exepath." - Write-Host "::set-output name=TILEDB_CI_SUCCESS::0" - $host.SetShouldExit($LastExitCode) - } - } catch { - $status = $_ - Write-Host "FAILED: exception, C++ API example failed, $status, $exepath." - Write-Host "::set-output name=TILEDB_CI_SUCCESS::0" - $host.SetShouldExit(1) - } - - } - Set-Location -path $TestAppDir - Remove-Item -Path $TestAppDataDir -recurse -force -ErrorAction SilentlyContinue - - # Build examples - cd $env:BUILD_SOURCESDIRECTORY\examples\cmake_project - - mkdir build - - cd build - - # Build zip artifact - cmake -A X64 -DCMAKE_PREFIX_PATH="$env:BUILD_BUILDDIRECTORY\dist;$env:BUILD_BUILD_DIRECTORY\vcpkg_installed\x64-windows-mod" .. - - cmake --build . --config $CMakeBuildType -v - - #.\$CMakeBuildType\ExampleExe.exe - $cmd = ".\$CMakeBuildType\ExampleExe.exe" - Write-Host "cmd: '$cmd'" - Invoke-Expression $cmd - - #.\$CMakeBuildType\ExampleExe_static.exe - #$cmd = ".\$CMakeBuildType\ExampleExe_static.exe" - #Write-Host "cmd: '$cmd'" - #Invoke-Expression $cmd - - # Packaging test - cd $env:BUILD_SOURCESDIRECTORY\test\packaging - mkdir build - cd build - cmake -DCMAKE_PREFIX_PATH="$env:BUILD_BUILDDIRECTORY\dist" .. - # The testing is in the test/packaging/CMakeLists.txt file, just invoked, - # there is no other code to be built in the produced projects. - - - name: 'process crashdumps' - shell: cmd - if: ${{ failure() == true && startsWith(matrix.os, 'windows-') == true }} # only run this job if the build step failed - run: | - if not exist "%localappdata%\CrashDumps\*.dmp" goto nodumps1 - dir "%localappdata%\CrashDumps" - cd /d "%localappdata%\CrashDumps" - cd - dir - for /r %%f in (*.dmp) do "c:\Program Files (x86)\Windows Kits\10\Debuggers\x64\cdb.exe" -z %%f -c "!analyze;~* kv;kP;r;u;q" - :nodumps1 - - - name: 'upload dumpfile artifacts' # https://github.com/actions/upload-artifact#where-does-the-upload-go - if: ${{ always() == true && startsWith(matrix.os, 'windows-') == true }} # only run this job if the build step failed - uses: actions/upload-artifact@v3 - with: - retention-days: 10 - name: "coredumps.${{ github.job }}.${{ matrix.os }}.${{matrix.environ}}.${{ github.run_number }}.${{github.run_id}}.${{github.run_attempt}}" - if-no-files-found: warn # 'ignore/', 'warn' or 'error' are available, defaults to `warn` - # fails, empty env context... ${{ env.LOCALAPPDATA }}/CrashDumps/*.dmp - path: | - ${{ env.TDBLOCALAPPDATA }}/CrashDumps/*.dmp - - - name: 'Test status check' - shell: bash - run: | - # tiledb_unit is configured to set a job-level variable TILEDB_CI_SUCCESS=1 - # following the test run. If this variable is not set, the build should fail. - # see https://github.com/TileDB-Inc/TileDB/pull/1400 (5f0623f4d3) - if [[ "${{ steps.test.outputs.TILEDB_CI_SUCCESS }}" -ne 1 ]]; then - echo TILEDB_CI_SUCCESS != 1, exiting. - exit 1; - fi - - - name: "Print log files (failed build only)" - shell: bash - run: | - source $GITHUB_WORKSPACE/scripts/ci/print_logs.sh - echo "# ------------------------------------" - find $BUILD_BUILDDIRECTORY/dist - echo "# --------vcpkg----------------------------" - find $BUILD_BUILDDIRECTORY/vcpkg_installed - if: ${{ failure() }} # only run this job if the build step failed diff --git a/.github/workflows/check-formatting.yml b/.github/workflows/check-formatting.yml deleted file mode 100644 index 7e640558774..00000000000 --- a/.github/workflows/check-formatting.yml +++ /dev/null @@ -1,43 +0,0 @@ -name: check-formatting -on: - push: - paths-ignore: - - '_quarto.yml' - - 'quarto-materials/*' - - '**/.md' - - 'doc/source/conf.py' - # We specifically check formatting for the tiledb_version.h - # - 'tiledb/sm/c_api/tiledb_version.h' - pull_request: - paths-ignore: - - '_quarto.yml' - - 'quarto-materials/*' - - '**/.md' - - 'doc/source/conf.py' - # We specifically check formatting for the tiledb_version.h - # - 'tiledb/sm/c_api/tiledb_version.h' - -jobs: - build: - runs-on: ubuntu-20.04 - if: ${{ startsWith(github.ref , 'refs/tags') != true && startsWith(github.ref , 'build-') != true }} - timeout-minutes: 90 - name: Check Clang Format - steps: - - uses: actions/checkout@v3 - - name: 'Print env' - run: | - echo "'uname -s' is:" - echo "uname: " $(uname) - echo "uname -m: " $(uname -m) - echo "uname -r:" $(uname -r) - echo "uname -s: " $(uname -s) - echo "uname -v: " $(uname -v) - printenv - shell: bash - - - name: Check formatting (linux only)' - run: | - source $GITHUB_WORKSPACE/scripts/ci/check_formatting_linux.sh - shell: bash - if: ${{ runner.os == 'Linux' }} diff --git a/.github/workflows/check-heap-memory-api-violations.yml b/.github/workflows/check-heap-memory-api-violations.yml deleted file mode 100644 index ece55c82046..00000000000 --- a/.github/workflows/check-heap-memory-api-violations.yml +++ /dev/null @@ -1,42 +0,0 @@ -name: check-heap-memory-api-violations -on: - push: - paths-ignore: - - '_quarto.yml' - - 'quarto-materials/*' - - '**/.md' - - 'doc/source/conf.py' - - 'tiledb/sm/c_api/tiledb_version.h' - pull_request: - paths-ignore: - - '_quarto.yml' - - 'quarto-materials/*' - - '**/.md' - - 'doc/source/conf.py' - - 'tiledb/sm/c_api/tiledb_version.h' - -jobs: - build: - runs-on: ubuntu-20.04 - if: ${{ startsWith(github.ref , 'refs/tags') != true && startsWith(github.ref , 'build-') != true }} - timeout-minutes: 90 - name: Check Heap Memory Violations - steps: - - uses: actions/checkout@v3 - - name: 'Print env' - run: | - echo "'uname -s' is:" - echo "uname: " $(uname) - echo "uname -m: " $(uname -m) - echo "uname -r:" $(uname -r) - echo "uname -s: " $(uname -s) - echo "uname -v: " $(uname -v) - printenv - shell: bash - - - name: Check Heap Memory API Violations (linux only)' - run: | - set -e pipefail - python scripts/find_heap_api_violations.py tiledb - shell: bash - if: ${{ runner.os == 'Linux' }} diff --git a/.github/workflows/check-pr-body.yml b/.github/workflows/check-pr-body.yml deleted file mode 100644 index 0574010239c..00000000000 --- a/.github/workflows/check-pr-body.yml +++ /dev/null @@ -1,23 +0,0 @@ -name: Check PR body - -on: - pull_request: - types: [opened, edited] - paths-ignore: - - '_quarto.yml' - - 'quarto-materials/*' - - '**/.md' - - 'doc/source/conf.py' - - 'tiledb/sm/c_api/tiledb_version.h' - -jobs: - check_pr_body: - runs-on: ubuntu-20.04 - steps: - - name: Check out the repository - uses: actions/checkout@v3 - - name: Run PR body checker - run: | - cat <<'EOF' | scripts/parse_pr.py - ${{ github.event.pull_request.body }} - EOF diff --git a/.github/workflows/ci-linux_mac.yml b/.github/workflows/ci-linux_mac.yml deleted file mode 100644 index bcc373256b4..00000000000 --- a/.github/workflows/ci-linux_mac.yml +++ /dev/null @@ -1,221 +0,0 @@ -name: CI (Linux and macOS) -on: - workflow_call: - inputs: - ci_backend: - description: 'Name of the job backend/target' - default: '' - required: false - type: string - ci_option: - description: 'Name of the job option for display' - default: '' - required: false - type: string - bootstrap_args: - default: '' - required: true - type: string - matrix_image: - default: '' - required: true - type: string - matrix_compiler_cc: - default: 'gcc' - required: false - type: string - matrix_compiler_cxx: - default: 'g++' - required: false - type: string - timeout: - default: 90 - description: 'Job timeout (minutes)' - required: false - type: number - -env: - BACKWARDS_COMPATIBILITY_ARRAYS: OFF - TILEDB_CI_BACKEND: ${{ inputs.ci_backend }} - TILEDB_CI_OS: runner.os - CXX: ${{ inputs.matrix_compiler_cxx }} - CC: ${{ inputs.matrix_compiler_cc }} - bootstrap_args: "--enable-vcpkg --enable-ccache ${{ inputs.bootstrap_args }}" - VCPKG_BINARY_SOURCES: 'clear;x-gha,readwrite' - SCCACHE_GHA_ENABLED: "true" - -jobs: - build: - strategy: - matrix: - os: - - ${{ inputs.matrix_image }} - runs-on: ${{matrix.os}} - - if: ${{ startsWith(github.ref , 'refs/tags') != true && startsWith(github.ref , 'build-') != true }} - timeout-minutes: ${{ inputs.timeout || 90 }} - name: ${{matrix.os}} - ${{ inputs.ci_backend }}${{ inputs.ci_option }} - steps: - - uses: actions/checkout@v3 - with: - submodules: true - fetch-depth: 0 - - # Configure required environment variables for vcpkg to use - # GitHub's Action Cache - - uses: actions/github-script@v6 - with: - script: | - core.exportVariable('ACTIONS_CACHE_URL', process.env.ACTIONS_CACHE_URL || ''); - core.exportVariable('ACTIONS_RUNTIME_TOKEN', process.env.ACTIONS_RUNTIME_TOKEN || ''); - - - name: Setup vcpkg - uses: lukka/run-vcpkg@v11 - id: runvcpkg - with: - vcpkgJsonGlob: 'vcpkg.json' - vcpkgDirectory: '${{ github.workspace }}/external/vcpkg' - - - name: Prints output of run-vcpkg's action. - run: | - echo "run-vcpkg outputs:" - echo "${{ toJSON(steps.runvcpkg.outputs) }}" - - - name: Prevent vpckg from building debug variants - run: ./scripts/ci/posix/patch_vcpkg_triplets.sh - - - name: Setup sccache - uses: mozilla-actions/sccache-action@v0.0.3 - - - name: 'Ubuntu Prelim' - if: ${{ startsWith(matrix.os, 'ubuntu-') == true }} - run: ./scripts/ci/posix/prelim.sh - shell: bash - - # Need this for virtualenv and arrow tests if enabled - - name: 'Install Python' - uses: actions/setup-python@v4 - with: - python-version: '3.8' - cache: 'pip' - - - name: 'Set up Python dependencies' - run: | - set -e pipefail - python -m pip install --upgrade pip virtualenv - pip install pyarrow pybind11 numpy - - - name: 'Brew setup on macOS' # x-ref c8e49ba8f8b9ce - if: ${{ startsWith(matrix.os, 'macos-') == true }} - run: | - set -e pipefail - brew install automake pkg-config - - - name: 'Configure libtiledb' - id: configure - shell: bash - run: | - set -e pipefail - - # Show CMake Version - cmake --version - - ##################################################### - # We want to run bootstrap in an isolated step in order to - # cache vcpkg deps across runs if the libtiledb build fails. - - source $GITHUB_WORKSPACE/scripts/ci/bootstrap_libtiledb.sh - - - name: 'Build libtiledb' - id: build - shell: bash - run: | - set -e pipefail - - ##################################################### - # Build libtiledb using previous bootstrap - - source $GITHUB_WORKSPACE/scripts/ci/build_libtiledb.sh - - - name: 'Test libtiledb' - id: test - shell: bash - run: | - set -e pipefail - - ################################################### - # Start helper processes, such as backend emulator - # if applicable. - - # ** NOTE: most tests must run in the same shell ** - # ** as build-services, especially tests ** - # ** requiring a backend emulator. ** - - source $GITHUB_WORKSPACE/scripts/ci/posix/build-services-start.sh - - ##################################################### - # Jump to our build directory after starting object - # store mock servers - - cd $GITHUB_WORKSPACE/build - - ################################################### - # Run tests - - # Bypass Catch2 Framework stdout interception with awk on test output - ./tiledb/test/regression/tiledb_regression -d yes - ./tiledb/test/ci/test_assert -d yes - ./tiledb/test/tiledb_unit -d yes | awk '/1: ::set-output/{sub(/.*1: /, ""); print; next} 1' - - ################################################### - # Stop helper processes, if applicable - - source $GITHUB_WORKSPACE/scripts/ci/posix/build-services-stop.sh - - ################################################### - # Build and run Examples - make -C $GITHUB_WORKSPACE/build -j3 examples - source $GITHUB_WORKSPACE/scripts/run-nix-examples.sh - - ################################################### - # Build benchmark code - - source $GITHUB_WORKSPACE/scripts/ci/build_benchmarks.sh - - - name: 'Dump core stacks on failure' - if: ${{ failure() && startsWith(matrix.os, 'ubuntu-') == true }} # only run this job if the build step failed - run: ./scripts/ci/posix/dump-core-stacks.sh - - - name: 'Upload failure artifacts (Linux)' # https://github.com/actions/upload-artifact#where-does-the-upload-go - if: ${{ startsWith(matrix.os, 'ubuntu-') == true }} # only run this job if the build step failed - uses: actions/upload-artifact@v3 - with: - retention-days: 10 - name: "coredumps.${{ github.job }}.${{ matrix.os }}.${{ github.run_number }}.${{github.run_id}}.${{github.run_attempt}}" - if-no-files-found: warn # 'ignore', 'warn' or 'error' are available, defaults to `warn` - path: | - /var/lib/apport/coredump/ - - - name: 'Upload failure artifacts (macOS)' # https://github.com/actions/upload-artifact#where-does-the-upload-go - if: ${{ failure() == true && startsWith(matrix.os, 'macos-') == true }} # only run this job if the build step failed - uses: actions/upload-artifact@v2 - with: - retention-days: 10 - name: "${{ matrix.os }}.coredumps.${{ github.job }}.${{ github.run_number }}.${{github.run_id}}.${{github.run_attempt}}" - if-no-files-found: warn # 'ignore', 'warn' or 'error' are available, defaults to `warn` - path: | - /cores/ - - - name: 'Test status check' - run: | - # tiledb_unit is configured to set a variable TILEDB_CI_SUCCESS=1 - # following the test run. If this variable is not set, the build should fail. - # see https://github.com/TileDB-Inc/TileDB/pull/1400 (5f0623f4d3) - if [[ "${{ steps.test.outputs.TILEDB_CI_SUCCESS }}" -ne 1 ]]; then - exit 1; - fi - - - name: "Print log files (failed build only)" - run: | - source $GITHUB_WORKSPACE/scripts/ci/print_logs.sh - if: ${{ failure() }} # only run this job if the build step failed diff --git a/.github/workflows/ci-rest.yml b/.github/workflows/ci-rest.yml deleted file mode 100644 index 2d13db08c0e..00000000000 --- a/.github/workflows/ci-rest.yml +++ /dev/null @@ -1,29 +0,0 @@ -name: REST CI -on: workflow_call - -jobs: - rest-ci: - runs-on: ubuntu-latest - - steps: - # For easy access to lookup dispatched CI job. - - name: Print URL for TileDB-REST-CI actions - run: echo https://github.com/TileDB-Inc/TileDB-REST-CI/actions - - # If this workflow fails on the remote repository, this CI job will also fail. - - name: Workflow dispatch to TileDB-REST-CI - id: trigger-step - uses: aurelien-baudet/workflow-dispatch@v2 - env: - TILEDB_REST_CI_PAT: ${{ secrets.TILEDB_REST_CI_PAT }} - # Skip if no PAT is set (e.g. for PRs from forks). - if: env.TILEDB_REST_CI_PAT != null - with: - repo: TileDB-Inc/TileDB-REST-CI - # Trigger workflow on TileDB-REST-CI at this ref. - ref: "main" - workflow: full-ci.yml - token: ${{ secrets.TILEDB_REST_CI_PAT }} - # Pass TileDB core ref to test against REST. - # github.head_ref will only be set for PRs, so fallback to github.ref_name if triggered via push event. - inputs: '{ "tiledb_ref": "${{ github.head_ref || github.ref_name }}"}' diff --git a/.github/workflows/full-ci-dummy.yml b/.github/workflows/full-ci-dummy.yml deleted file mode 100644 index df7b548658a..00000000000 --- a/.github/workflows/full-ci-dummy.yml +++ /dev/null @@ -1,25 +0,0 @@ -name: "CI Placeholder (docs only)" -on: - pull_request: - branches: - - '*' # must quote since "*" is a YAML reserved character; we want a string - - ############################################################################## - # # - # This section must be synchronized with 'paths-ignore' in full-ci.yml # - # # - ############################################################################## - - paths: - - '.github/workflows/quarto-render.yml' - - '_quarto.yml' - - 'quarto-materials/*' - - '**/.md' - - 'tiledb/doxygen/source/*' - - 'tiledb/sm/c_api/tiledb_version.h' - -jobs: - full_ci_passed: - runs-on: ubuntu-latest - steps: - - run: 'echo "No build required" ' diff --git a/.github/workflows/full-ci.yml b/.github/workflows/full-ci.yml deleted file mode 100644 index 8598ae9515a..00000000000 --- a/.github/workflows/full-ci.yml +++ /dev/null @@ -1,132 +0,0 @@ -name: "Full CI" -on: - push: - branches: - - dev - - release-* - - refs/tags/* - - ############################################################################## - # # - # These sections must be synchronized with 'paths' in full-ci-dummy.yml # - # # - ############################################################################## - - pull_request: - branches: - - '*' # must quote since "*" is a YAML reserved character; we want a string - paths-ignore: - - '.github/workflows/quarto-render.yml' - - '_quarto.yml' - - 'quarto-materials/*' - - '**/.md' - - 'tiledb/doxygen/source/*' - - 'tiledb/sm/c_api/tiledb_version.h' - -concurrency: - group: ${{ github.head_ref || github.run_id }} - cancel-in-progress: true - -## NOTE: the job names below must be unique! -jobs: - ci1: - uses: ./.github/workflows/ci-linux_mac.yml - with: - ci_backend: AZURE - matrix_image: ubuntu-20.04 - bootstrap_args: '--enable-azure --enable-release-symbols' - - ci2: - uses: ./.github/workflows/ci-linux_mac.yml - with: - ci_backend: GCS - matrix_image: ubuntu-20.04 - timeout: 120 - bootstrap_args: '--enable-gcs --enable-release-symbols' - - ci3: - uses: ./.github/workflows/ci-linux_mac.yml - with: - ci_option: SERIALIZATION - matrix_image: ubuntu-22.04 - bootstrap_args: '--enable-serialization --enable-release-symbols' - - ci4: - uses: ./.github/workflows/ci-linux_mac.yml - with: - ci_backend: HDFS - matrix_image: ubuntu-22.04 - matrix_compiler_cc: 'gcc-12' - matrix_compiler_cxx: 'g++-12' - bootstrap_args: '--enable-hdfs --enable-static-tiledb' - - ci5: - uses: ./.github/workflows/ci-linux_mac.yml - with: - ci_backend: S3 - matrix_image: macos-11 - timeout: 120 - bootstrap_args: '--enable=s3,serialization,tools --enable-release-symbols' - - ci6: - uses: ./.github/workflows/ci-linux_mac.yml - with: - ci_backend: GCS - matrix_image: macos-11 - timeout: 120 - bootstrap_args: '--enable-gcs --enable-release-symbols' - - ci7: - uses: ./.github/workflows/ci-linux_mac.yml - with: - ci_option: Experimental - matrix_image: ubuntu-22.04 - bootstrap_args: '--enable=experimental-features,serialization --enable-release-symbols' - - ci8: - uses: ./.github/workflows/ci-linux_mac.yml - with: - ci_backend: S3 - matrix_image: ubuntu-22.04 - timeout: 120 - bootstrap_args: '--enable-s3 --enable-release-symbols' - - ci_msvc: - uses: ./.github/workflows/build-windows.yml - - ci_mingw_r: - uses: ./.github/workflows/build-rtools40.yml - - backward_compatibility: - uses: ./.github/workflows/build-ubuntu20.04-backwards-compatibility.yml - - standalone: - uses: ./.github/workflows/unit-test-runs.yml - - ci_docker: - uses: ./.github/workflows/build-dockerfile.yml - - ci_rest: - uses: ./.github/workflows/ci-rest.yml - secrets: inherit - - # dummy job for branch protection check - full_ci_passed: - needs: [ - ci1, - ci2, - ci2, - ci3, - ci4, - ci5, - ci6, - ci7, - ci8, - ci_msvc, - backward_compatibility, - standalone - ] - runs-on: ubuntu-22.04 - steps: - - name: '' - run: echo "Complete" diff --git a/.github/workflows/nightly-test.yml b/.github/workflows/nightly-test.yml deleted file mode 100644 index 8412098a9b2..00000000000 --- a/.github/workflows/nightly-test.yml +++ /dev/null @@ -1,84 +0,0 @@ -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: - include: - - os: ubuntu-latest - cxxflags: "-std=c++17" - - os: macos-latest - cxxflags: "-std=c++17" - - os: macos-latest # ASAN build - cxxflags: "-std=c++17" - asan: "true" - - os: windows-latest - cxxflags: "/std:c++17" - - os: windows-2019 - cxxflags: "/std:c++17" - - os: ubuntu-latest - cxxflags: "-std=c++2a" - - os: macos-latest - cxxflags: "-std=c++2a" - - os: windows-latest - cxxflags: "/std:c++20" - - os: windows-2019 - cxxflags: "/std:c++20" - fail-fast: false - - permissions: - issues: write - env: - MACOSX_DEPLOYMENT_TARGET: 10.15 - TILEDB_NIGHTLY_BUILD: 1 - - steps: - - name: Print env - run: printenv - - - name: Checkout TileDB `dev` - uses: actions/checkout@v3 - - - name: Configure TileDB CMake - if: ${{ ! contains(matrix.os, 'windows') }} - env: - CXXFLAGS: ${{ matrix.cxxflags }} - SANITIZER_ARG: ${{ matrix.asan == 'true' && 'address' || 'OFF' }} - run: | - cmake -B build -DTILEDB_WERROR=ON -DTILEDB_SERIALIZATION=ON -DCMAKE_BUILD_TYPE=Release -DSANITIZER=$SANITIZER_ARG - - - name: Configure TileDB CMake - if: contains(matrix.os, 'windows') - env: - CXXFLAGS: ${{ matrix.cxxflags }} - run: | - cmake -B build -DTILEDB_WERROR=ON -DTILEDB_SERIALIZATION=ON -DCMAKE_BUILD_TYPE=Release - - - name: Build TileDB - run: | - cmake --build build -j2 --config Release - - - name: Test TileDB - run: | - cmake --build build --target check --config Release - - create_issue_on_fail: - runs-on: ubuntu-latest - needs: test - if: failure() || cancelled() - steps: - - name: Checkout TileDB `dev` - uses: actions/checkout@v3 - - name: Create Issue if Build Fails - uses: JasonEtco/create-an-issue@v2 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - filename: .github/workflows/nightly-failure-issue-template.md diff --git a/.github/workflows/prepare-release.yml b/.github/workflows/prepare-release.yml deleted file mode 100644 index b5f1f3b81d7..00000000000 --- a/.github/workflows/prepare-release.yml +++ /dev/null @@ -1,39 +0,0 @@ -name: Prepare new release - -on: - workflow_dispatch: - inputs: - version: - description: 'New version to be released' - required: true - branch: - description: 'Release branch' - required: true - -jobs: - prepare_release: - runs-on: ubuntu-20.04 - - steps: - - name: Check out the repository - uses: actions/checkout@v3 - with: - ref: ${{ github.event.inputs.branch }} - token: ${{ secrets.GITHUB_TOKEN }} - - - name: Install dependencies - run: pip install PyGithub - - - name: Update version and history - run: python ./scripts/prepare_release.py ${{ github.event.inputs.version }} --token="${{ secrets.GITHUB_TOKEN }}" - - - name: Commit and push updates - uses: test-room-7/action-update-file@v1 - with: - branch: ${{ github.event.inputs.branch }} - file-path: | - HISTORY.md - doc/source/conf.py - tiledb/sm/c_api/tiledb_version.h - commit-msg: "${{ github.event.inputs.version }} release notes, version update" - github-token: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/quarto-render.yml b/.github/workflows/quarto-render.yml deleted file mode 100644 index 7a6a8eec066..00000000000 --- a/.github/workflows/quarto-render.yml +++ /dev/null @@ -1,47 +0,0 @@ -# Cloned from https://github.com/TileDB-Inc/tiledb-quarto-template - -name: Render and deploy Quarto files -on: - push: - # publish on merge only - branches: dev - # when changes match any path below - paths: - - '.github/workflows/quarto-render.yml' - - '_quarto.yml' - - 'quarto-materials/*' - - '**/.md' - - 'doc/source/conf.py' - - 'tiledb/sm/c_api/tiledb_version.h' - pull_request: - paths: - - '.github/workflows/quarto-render.yml' - - '_quarto.yml' - - 'quarto-materials/*' - - '**/.md' - - 'doc/source/conf.py' - - 'tiledb/sm/c_api/tiledb_version.h' - -jobs: - quarto-render-and-deploy: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - - name: Set up Quarto - uses: quarto-dev/quarto-actions/setup@v2 - - # Check render-ability for all PRs - - name: Render Quarto Project - uses: quarto-dev/quarto-actions/render@v2 - with: - to: html # If set, it will be equivalent to `quarto render --to html` - - # Only publish merges to dev - - name: Publish to GitHub Pages - if: github.ref == 'refs/heads/dev' - uses: quarto-dev/quarto-actions/publish@v2 - with: - target: gh-pages - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # this secret is always available for github actions diff --git a/.github/workflows/unit-test-runs.yml b/.github/workflows/unit-test-runs.yml deleted file mode 100644 index a7b0b2ddca5..00000000000 --- a/.github/workflows/unit-test-runs.yml +++ /dev/null @@ -1,67 +0,0 @@ -name: unit-test-standalone -on: - workflow_call: - -env: - BACKWARDS_COMPATIBILITY_ARRAYS: OFF - TILEDB_ASSERTIONS: ON - TILEDB_S3: OFF - TILEDB_AZURE: OFF - TILEDB_GCS: OFF - TILEDB_SERIALIZATION: ON - TILEDB_STATIC: ON - TILEDB_TOOLS: ON - -jobs: - build: - runs-on: ${{ matrix.os }} - strategy: - matrix: - os: [macos-latest, ubuntu-latest] - fail-fast: false - name: Build - ${{ matrix.os }} - steps: - - uses: actions/checkout@v3 - - - name: 'Homebrew setup' - run: brew install pkg-config - if: ${{ startsWith(matrix.os, 'macos-') == true }} - - - name: 'Print env' - run: | - echo "'uname -s' is:" - echo "uname: " $(uname) - echo "uname -m: " $(uname -m) - echo "uname -r:" $(uname -r) - echo "uname -s: " $(uname -s) - echo "uname -v: " $(uname -v) - printenv - shell: bash - - - name: 'Build and run standalone unit tests' - id: test - run: | - - mkdir -p $GITHUB_WORKSPACE/build - pushd $GITHUB_WORKSPACE/build - - cmake .. \ - -DTILEDB_VCPKG=ON \ - -DTILEDB_AZURE=${TILEDB_AZURE}\ - -DTILEDB_GCS=${TILEDB_GCS} \ - -DTILEDB_S3=${TILEDB_S3} \ - -DTILEDB_SERIALIZATION=${TILEDB_SERIALIZATION} \ - -DTILEDB_ASSERTIONS=${TILEDB_ASSERTIONS} \ - -DTILEDB_STATIC=${TILEDB_STATIC} - make -j4 - # Build all unit tests - make -C tiledb tests -j4 - # Run all unit tests - make -C tiledb test ARGS="-R '^unit_'" -R "test_assert" - make -C tiledb test ARGS="-R 'test_ci_asserts'" - - popd - - name: "Print log files (failed build only)" - run: | - source $GITHUB_WORKSPACE/scripts/ci/print_logs.sh - if: ${{ failure() }} # only run this job if the build step failed