Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
75 commits
Select commit Hold shift + click to select a range
6ed3083
start cleanup
david-tingdahl-nvidia Oct 27, 2025
bb40736
build and deps
david-tingdahl-nvidia Oct 27, 2025
2bf6348
printing and enum
david-tingdahl-nvidia Nov 20, 2025
282f961
user build args
david-tingdahl-nvidia Nov 20, 2025
f75ca5a
self validate
david-tingdahl-nvidia Nov 20, 2025
155510f
cpp unittest
david-tingdahl-nvidia Nov 21, 2025
2eea0e3
modularize
david-tingdahl-nvidia Nov 21, 2025
2452f85
debug build
david-tingdahl-nvidia Nov 21, 2025
f84783a
lint test
david-tingdahl-nvidia Nov 21, 2025
1fec657
arg name
david-tingdahl-nvidia Nov 21, 2025
8f24d20
pytest
david-tingdahl-nvidia Nov 21, 2025
d799e94
Add back lint file
david-tingdahl-nvidia Nov 24, 2025
d5675fc
add workflow action
david-tingdahl-nvidia Nov 24, 2025
a4899ee
remove build.txt
david-tingdahl-nvidia Nov 24, 2025
5dc1c59
on pr
david-tingdahl-nvidia Nov 24, 2025
8c0df9b
yaml -> yml
david-tingdahl-nvidia Nov 24, 2025
4b7fcb8
cleaner
david-tingdahl-nvidia Nov 25, 2025
6d6b3c4
comment
david-tingdahl-nvidia Nov 25, 2025
0e2f12a
renaming
david-tingdahl-nvidia Nov 25, 2025
0e1ea32
debug
david-tingdahl-nvidia Nov 25, 2025
970cf3f
test
david-tingdahl-nvidia Nov 25, 2025
995bbf2
test
david-tingdahl-nvidia Nov 25, 2025
065431e
checkout code
david-tingdahl-nvidia Nov 25, 2025
7197b91
path fix
david-tingdahl-nvidia Nov 25, 2025
6ee0485
move file
david-tingdahl-nvidia Nov 25, 2025
45eb1b6
ngc login
david-tingdahl-nvidia Nov 25, 2025
da40057
env -> secrets
david-tingdahl-nvidia Nov 25, 2025
a6514b7
Refactor to action files
david-tingdahl-nvidia Nov 25, 2025
7fdb5dd
Further refactoring
david-tingdahl-nvidia Nov 25, 2025
03d9796
Add a comment
david-tingdahl-nvidia Nov 25, 2025
c466719
pass ngc api key as input
david-tingdahl-nvidia Nov 25, 2025
6bf06d5
Trigger workflow with updated action
david-tingdahl-nvidia Nov 25, 2025
ea27dca
move checkout code
david-tingdahl-nvidia Nov 25, 2025
d992d5d
multi jobs
david-tingdahl-nvidia Nov 25, 2025
69037ee
Copy complete source tree in build
david-tingdahl-nvidia Nov 25, 2025
88f9659
reduce docker image size
david-tingdahl-nvidia Nov 25, 2025
766112e
Print system info
david-tingdahl-nvidia Nov 26, 2025
2041328
Clean ws on checkout
david-tingdahl-nvidia Nov 26, 2025
2177a20
Checkout ref
david-tingdahl-nvidia Nov 26, 2025
d3a2c3a
test
david-tingdahl-nvidia Nov 26, 2025
ac11047
test again
david-tingdahl-nvidia Nov 26, 2025
3d4aac4
test print
david-tingdahl-nvidia Nov 26, 2025
0d20e46
Flush the prints
david-tingdahl-nvidia Nov 26, 2025
2e92625
groups
david-tingdahl-nvidia Nov 26, 2025
b986b88
Fix job name
david-tingdahl-nvidia Nov 26, 2025
cb22050
Add lint job
david-tingdahl-nvidia Nov 26, 2025
7079633
Clang-format 14
david-tingdahl-nvidia Nov 26, 2025
1c3a87c
Remove clang-format version specified
david-tingdahl-nvidia Nov 26, 2025
a207c84
remove lint image
david-tingdahl-nvidia Nov 26, 2025
675cf5f
Disable pytorch wrapper for CUDA 13
david-tingdahl-nvidia Nov 26, 2025
1edbe99
formatting
david-tingdahl-nvidia Nov 26, 2025
1450cdc
Sanitizer + stability test
david-tingdahl-nvidia Nov 26, 2025
f58d7fe
gcc sanitizer test
david-tingdahl-nvidia Nov 26, 2025
2fa227f
some name changes
david-tingdahl-nvidia Nov 26, 2025
f636f4a
add timing to premerge jobs
david-tingdahl-nvidia Nov 26, 2025
98010a2
Capturing build errors and warnings
david-tingdahl-nvidia Nov 26, 2025
1d4c15c
separate build step
david-tingdahl-nvidia Nov 26, 2025
ee4e073
capitals
david-tingdahl-nvidia Nov 26, 2025
5b0a3d4
Fix sanitizer arg and limit log
david-tingdahl-nvidia Nov 26, 2025
6f5c221
parse function
david-tingdahl-nvidia Nov 26, 2025
2ef40ca
python3 to run premerge script
david-tingdahl-nvidia Nov 27, 2025
981daea
fix error print
david-tingdahl-nvidia Nov 27, 2025
52c1798
less verbose
david-tingdahl-nvidia Nov 27, 2025
fc3fc91
use bash when calling shell scripts
david-tingdahl-nvidia Nov 27, 2025
db4c50c
Improve error/warning parsing in CI script
david-tingdahl-nvidia Nov 27, 2025
0c3ae22
Starting compute-sanitizer script with bash
david-tingdahl-nvidia Nov 27, 2025
d92729f
Skip pytest on CUDA 13
david-tingdahl-nvidia Nov 27, 2025
1c56dc3
call scripts with bash
david-tingdahl-nvidia Nov 28, 2025
7d26cc8
log parse for more commands
david-tingdahl-nvidia Nov 28, 2025
958e4af
reduce parallel jobs
david-tingdahl-nvidia Nov 28, 2025
6cdb231
Remove stability test
david-tingdahl-nvidia Dec 1, 2025
4b2b469
Sanitizer suffix
david-tingdahl-nvidia Dec 1, 2025
e4b812b
isotalte and debug
david-tingdahl-nvidia Dec 2, 2025
019dc5b
disable randomize va space
david-tingdahl-nvidia Dec 2, 2025
4f57add
privileged flag for docker run
david-tingdahl-nvidia Dec 2, 2025
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
78 changes: 78 additions & 0 deletions .github/actions/build-and-test/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
name: 'Build and Test'
description: 'Build nvblox Docker image and run tests'
inputs:
platform:
description: 'Platform to build for'
required: true
cuda-version:
description: 'CUDA version'
required: true
ubuntu-version:
description: 'Ubuntu version'
required: true
gcc-sanitizer:
description: 'Build in debug mode with gcc sanitizers enabled'
required: false
default: 0
ngc-api-key:
description: 'NGC API Key for authentication'
required: true
runs:
using: 'composite'
steps:
- name: NGC Login
uses: ./.github/actions/ngc-login
with:
ngc-api-key: ${{ inputs.ngc-api-key }}
# Note that the two build-image steps could be omitted since the test automatically builds them if needed.
# However, we separate the steps to get cleaner logs and better timing granularity.
- name: Build dependency image
shell: bash
run: |
echo "::group::BUILD DEPENDENCY IMAGE"
time python3 ci/premerge.py --platform ${{ inputs.platform }} \
--cuda-version ${{ inputs.cuda-version }} \
--ubuntu-version ${{ inputs.ubuntu-version }} \
--gcc-sanitizer ${{ inputs.gcc-sanitizer }} \
--build-image deps
echo "::endgroup::"
- name: Build build image
shell: bash
run: |
echo "::group::BUILD BINARIES IMAGE"
time python3 ci/premerge.py --platform ${{ inputs.platform }} \
--cuda-version ${{ inputs.cuda-version }} \
--ubuntu-version ${{ inputs.ubuntu-version }} \
--gcc-sanitizer ${{ inputs.gcc-sanitizer }} \
--build-image build
echo "::endgroup::"
- name: Run CPP unit tests
shell: bash
run: |
echo "::group::RUN CPP UNIT TESTS"
time python3 ci/premerge.py --platform ${{ inputs.platform }} \
--cuda-version ${{ inputs.cuda-version }} \
--ubuntu-version ${{ inputs.ubuntu-version }} \
--gcc-sanitizer ${{ inputs.gcc-sanitizer }} \
--build-and-test cpp
echo "::endgroup::"
- name: Run Python unit tests
shell: bash
run: |
echo "::group::RUN PYTHON UNIT TESTS"
time python3 ci/premerge.py --platform ${{ inputs.platform }} \
--cuda-version ${{ inputs.cuda-version }} \
--ubuntu-version ${{ inputs.ubuntu-version }} \
--gcc-sanitizer ${{ inputs.gcc-sanitizer }} \
--build-and-test python
echo "::endgroup::"
- name: Run CUDA Sanitizer
shell: bash
run: |
echo "::group::RUN CUDA SANITIZER"
time python3 ci/premerge.py --platform ${{ inputs.platform }} \
--cuda-version ${{ inputs.cuda-version }} \
--ubuntu-version ${{ inputs.ubuntu-version }} \
--gcc-sanitizer ${{ inputs.gcc-sanitizer }} \
--build-and-test cuda-sanitizer
echo "::endgroup::"
21 changes: 21 additions & 0 deletions .github/actions/ngc-login/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
name: 'NGC Login'
description: 'Login to NVIDIA NGC Container Registry'
inputs:
ngc-api-key:
description: 'NGC API Key for authentication'
required: false
runs:
using: 'composite'
steps:
- name: NGC Login
shell: bash
run: |
# Only attempt NGC login if API key is available
if [ -n "${{ inputs.ngc-api-key }}" ]; then
echo "Logging into NGC registry..."
docker login -u \$oauthtoken -p ${{ inputs.ngc-api-key }} nvcr.io
echo "✅ Successfully logged into NGC registry"
else
echo "⚠️ NGC_API_KEY not available - skipping NGC login"
echo "This is normal for PRs from forks or when secrets are not configured"
fi
102 changes: 102 additions & 0 deletions .github/workflows/premerge.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,102 @@
name: nvblox premerge
on:
pull_request:
jobs:
## ------------------------------------------
## Linting and formatting
## ------------------------------------------
lint_precommit:
name: pre-commit
runs-on: ubuntu-latest
steps:
- name: Checkout Code
uses: actions/checkout@v4
with:
lfs: false
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.10'
- name: Install pre-commit
run: |
python -m pip install --upgrade pip
pip install pre-commit clang-format==14.0.6
- name: Run pre-commit
run: pre-commit run --all-files --show-diff-on-failure
## ------------------------------------------
## Build and test x86/CU11/U22
## ------------------------------------------
# premerge_x86_cu11_u22:
# name: Build&Test x86-CU11-U22
# needs: [lint_precommit]
# runs-on: [self-hosted, gpu] # GPU jobs will run on AWS
# steps:
# - name: Checkout Code
# uses: actions/checkout@v4
# with:
# lfs: true
# - name: premerge_x86_cu11_u22 - Unit tests
# uses: ./.github/actions/build-and-test
# with:
# platform: x86_64
# cuda-version: '11'
# ubuntu-version: '22'
# ngc-api-key: ${{ secrets.NGC_API_KEY }}
# ## ------------------------------------------
# ## Build and test x86/CU12/U22
# ## ------------------------------------------
# premerge_x86_cu12_u22:
# name: Build&Test x86-CU12-U22
# needs: [lint_precommit]
# runs-on: [self-hosted, gpu] # GPU jobs will run on AWS
# steps:
# - name: Checkout Code
# uses: actions/checkout@v4
# with:
# lfs: true
# - name: premerge_x86_cu12_u22 - Unit tests
# uses: ./.github/actions/build-and-test
# with:
# platform: x86_64
# cuda-version: '12'
# ubuntu-version: '22'
# ngc-api-key: ${{ secrets.NGC_API_KEY }}
# ## ------------------------------------------
# ## Build and test x86/CU13/U24
# ## ------------------------------------------
# premerge_x86_cu13_u24:
# name: Build&Test x86-CU13-U24
# needs: [lint_precommit]
# runs-on: [self-hosted, gpu] # GPU jobs will run on AWS
# steps:
# - name: Checkout Code
# uses: actions/checkout@v4
# with:
# lfs: true
# - name: premerge_x86_cu13_u24 - Unit tests
# uses: ./.github/actions/build-and-test
# with:
# platform: x86_64
# cuda-version: '13'
# ubuntu-version: '24'
# ngc-api-key: ${{ secrets.NGC_API_KEY }}
## --------------------------------------------------------
## Build and test x86/CU12/U22/gcc-sanitizer
## --------------------------------------------------------
premerge_x86_cu12_u22_debug:
name: Build&Test x86-gcc-sanitizer
needs: [lint_precommit]
runs-on: [self-hosted, gpu] # GPU jobs will run on AWS
steps:
- name: Checkout Code
uses: actions/checkout@v4
with:
lfs: true
- name: premerge_x86_cu12_u22_debug - Unit tests
uses: ./.github/actions/build-and-test
with:
platform: x86_64
cuda-version: '12'
ubuntu-version: '22'
gcc-sanitizer: 1
ngc-api-key: ${{ secrets.NGC_API_KEY }}
3 changes: 1 addition & 2 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,7 @@ repos:
- repo: https://github.com/doublify/pre-commit-clang-format
rev: 62302476d0da01515660132d76902359bed0f782
hooks:
- id: clang-format
entry: clang-format-14 -i
- id: clang-format # See premerge.yml for the clang-format version used.
files: \.(c|cc|cpp|cxx|cu|cuh|h|hh|hpp|hxx|inl|proto|pb\.h|pb\.cc)$
- repo: https://github.com/pylint-dev/pylint
rev: v3.0.3
Expand Down
Loading
Loading