Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
54 changes: 54 additions & 0 deletions .github/workflows/unit-tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
# Copyright (c) 2025, NVIDIA CORPORATION. All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
name: Unit tests

on:
pull_request:
types: [opened, synchronize, reopened, labeled, unlabeled]
workflow_call:

jobs:
test:
name: Test
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
submodules: 'recursive'

- name: Fail on draft PRs
if: github.event.pull_request.draft == true
run: |
echo "Failing on draft PR to enforce this check to run"
exit 1

- name: Setup for test
run: |
sudo apt-get update
# Curl is required for setup_nvidia.sh to download uv
# ca-certificates is there to support curl and mitigate `curl: (77) error setting certificate file: /etc/ssl/certs/ca-certificates.crt`
sudo apt-get install -y --no-install-recommends git curl ca-certificates
# The flow below should be used and synced with any Docker or container related flows. There is no script here to keep it 100% explicit.
# This is how we test and this is how you should use/consume.
curl -LsSf https://astral.sh/uv/install.sh | sh
uv venv --python 3.12
source .venv/bin/activate
uv sync --extra dev

- name: Test
run: |
source .venv/bin/activate
ng_dev_test
ng_test_all +fail_on_total_and_test_mismatch=true
Comment thread
bxyu-nvidia marked this conversation as resolved.
72 changes: 65 additions & 7 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ eggs/
.eggs/
lib/
lib64/
#parts/
parts/
sdist/
var/
wheels/
Expand Down Expand Up @@ -67,8 +67,10 @@ htmlcov/
nosetests.xml
coverage.xml
*.cover
*.py,cover
.hypothesis/
.pytest_cache/
cover/

# Translations
*.mo
Expand All @@ -78,6 +80,7 @@ coverage.xml
*.log
local_settings.py
db.sqlite3
db.sqlite3-journal

# Flask stuff:
instance/
Expand All @@ -89,8 +92,10 @@ instance/
# Sphinx documentation
docs/_build
docs/apidocs
docs/_build/

# PyBuilder
.pybuilder/
target/

# Jupyter Notebook
Expand All @@ -110,12 +115,31 @@ ipython_config.py
# pipenv
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
# However, in case of collaboration, if having platform-specific dependencies or dependencies
# having no cross-platform support, pipenv may install dependencies that dont work, or not
# having no cross-platform support, pipenv may install dependencies that don't work, or not
# install all needed dependencies.
#Pipfile.lock

# celery beat schedule file
# poetry
# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
# This is especially recommended for binary packages to ensure reproducibility, and is more
# commonly ignored for libraries.
# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
#poetry.lock

# pdm
# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
#pdm.lock
# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
# in version control.
# https://pdm.fming.dev/#use-with-ide
.pdm.toml

# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
__pypackages__/

# Celery stuff
celerybeat-schedule
celerybeat.pid

# SageMath parsed files
*.sage.py
Expand All @@ -129,7 +153,7 @@ ENV/
env.bak/
venv.bak/

# VSCode project settins
# VSCode project settings
.vscode/

# Spyder project settings
Expand All @@ -155,12 +179,21 @@ dmypy.json
# Emacs backup files
*~

# pytype static type analyzer
.pytype/

# Cython debug symbols
cython_debug/

cifar-10-batches-py
*.tar.gz

# Test data.
tests/.data
tests/data
# PyCharm
# JetBrains specific template is maintained in a separate JetBrains.gitignore that can
# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
# and can be added to the global gitignore or merged into this file. For a more nuclear
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
#.idea/

# outputs folder
examples/*/outputs
Expand All @@ -182,3 +215,28 @@ examples/neural_graphs/*.yml
nemo_experiments/

slurm*.out

# Test data.
tests/.data
tests/data

# Convenience files
run.md
temp*

.DS_Store

#Vscode stuff
.vscode/

#Vim stuff
*.sw*

# Gradio
*.gradio

# Hydra outputs
outputs

# Environment with sensitive information like API keys
env.yaml
Loading