Skip to content

CI rework#217

Open
tarcila wants to merge 1 commit intoNVIDIA:next_releasefrom
tarcila:ci-update
Open

CI rework#217
tarcila wants to merge 1 commit intoNVIDIA:next_releasefrom
tarcila:ci-update

Conversation

@tarcila
Copy link
Collaborator

@tarcila tarcila commented Feb 6, 2026

Mostly vibe coded:

  • Custom CUDA install action, along with a component manager script
  • Custom ANARI-SDK build action
  • Move all TSD CI to build-tsd.yml. Includes both host and CUDA.
  • Enable caching for both CUDA and ANARI-SDK

With those updates, the CI turnaround time is about 6 minutes for the overall pipelines, compare to >20 minutes before.

Also move TSD CUDA build from visrtx to tsd yml
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR significantly reworks the CI infrastructure to improve build times from over 20 minutes to approximately 6 minutes by introducing custom GitHub Actions for CUDA installation and ANARI-SDK builds, along with aggressive caching strategies.

Changes:

  • Created custom setup-cuda and build-anari-sdk GitHub Actions with caching support
  • Consolidated TSD CI workflows into a single build-tsd.yml file covering both host and CUDA builds
  • Updated CMake superbuild macros to respect CMAKE_BUILD_TYPE instead of hardcoding "Release"

Reviewed changes

Copilot reviewed 11 out of 11 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
tsd/cmake/build_deps/superbuild_macros.cmake Updated to use CMAKE_BUILD_TYPE variable instead of hardcoded Release
devices/rtx/cmake/build_deps/superbuild_macros.cmake Updated to use CMAKE_BUILD_TYPE variable instead of hardcoded Release
.github/workflows/tsd_ci.yml Removed old TSD CI workflow (replaced by build-tsd.yml)
.github/workflows/build-visrtx.yml Refactored to use new custom actions with caching
.github/workflows/build-tsd.yml New consolidated TSD CI workflow with separate host and CUDA build jobs
.github/scripts/cuda-version-manager.py New Python utility for managing CUDA versions and components
.github/actions/setup-cuda/scripts/install-cuda.sh New Linux CUDA installation script using redistributables
.github/actions/setup-cuda/scripts/install-cuda.ps1 New Windows CUDA installation script using redistributables
.github/actions/setup-cuda/components.json Configuration file defining CUDA components and supported versions
.github/actions/setup-cuda/action.yml Custom GitHub Action for CUDA toolkit installation with caching
.github/actions/build-anari-sdk/action.yml Custom GitHub Action for building and caching ANARI-SDK

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

id: cache-cuda-linux
with:
path: ~/cuda-${{ steps.parse-version.outputs.major-minor }}
key: cuda-Linux-${{ inputs.cuda-version }}-redist-v4
Copy link

Copilot AI Feb 6, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The cache key version suffix 'v4' for Linux differs from 'v2' for Windows (line 47). This inconsistency could lead to confusion. Consider synchronizing version numbers or documenting why they differ.

Copilot uses AI. Check for mistakes.
Comment on lines +94 to +96
# Skip if not for our platform
if [[ -n "$platforms" && "$platforms" != *"$PLATFORM"* ]]; then
continue
Copy link

Copilot AI Feb 6, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The platform filtering logic uses string matching which could incorrectly match substrings. For example, 'linux-x86' would match within 'linux-x86_64'. Use proper array or exact string matching instead.

Suggested change
# Skip if not for our platform
if [[ -n "$platforms" && "$platforms" != *"$PLATFORM"* ]]; then
continue
# Skip if not for our platform (exact match in comma-separated list)
if [[ -n "$platforms" ]]; then
IFS=',' read -ra platform_array <<< "$platforms"
platform_match=false
for platform in "${platform_array[@]}"; do
if [[ "$platform" == "$PLATFORM" ]]; then
platform_match=true
break
fi
done
if [[ "$platform_match" == "false" ]]; then
continue
fi

Copilot uses AI. Check for mistakes.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant