# Copyright (c) 2025, NVIDIA CORPORATION. # # 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: NeMo Unit Tests on: workflow_call: inputs: test_to_run: required: true type: string runner: required: false default: nemo-ci-aws-gpu-x2 type: string description: "Runner to use for GPU jobs" container-image: required: true type: string description: "Full image URL with tag for the NeMo container" jobs: collections-common-tests: strategy: fail-fast: false matrix: include: - script: L0_Unit_Tests_GPU_Common runner: ${{ inputs.runner }} - script: L0_Unit_Tests_CPU_Common runner: ${{ inputs.runner }} cpu-only: true runs-on: ${{ matrix.runner }} name: ${{ matrix.script }} steps: - name: Checkout uses: actions/checkout@v6 - name: Checkout NeMo uses: actions/checkout@v6 with: path: ${{ github.run_id }} - name: main uses: ./.github/actions/test-template with: runner: ${{ runner.name }} script: ${{ matrix.script }} is_unit_test: true tests_to_run: ${{ inputs.test_to_run }} image: ${{ inputs.container-image }} test-data-path: ${{ vars.DEFAULT_TEST_DATA_PATH || '/mnt/datadrive/TestData' }} cpu-only: ${{ matrix.cpu-only || false }} core-tests: strategy: fail-fast: false matrix: include: - script: L0_Unit_Tests_GPU_Core runner: ${{ inputs.runner }} - script: L0_Unit_Tests_CPU_Core runner: ${{ inputs.runner }} cpu-only: true - script: L0_Unit_Tests_GPU_Hydra runner: ${{ inputs.runner }} - script: L0_Unit_Tests_CPU_Hydra runner: ${{ inputs.runner }} cpu-only: true runs-on: ${{ matrix.runner }} name: ${{ matrix.script }} steps: - name: Checkout uses: actions/checkout@v6 - name: Checkout NeMo uses: actions/checkout@v6 with: path: ${{ github.run_id }} - name: main uses: ./.github/actions/test-template with: runner: ${{ runner.name }} script: ${{ matrix.script }} is_unit_test: true tests_to_run: ${{ inputs.test_to_run }} image: ${{ inputs.container-image }} test-data-path: ${{ vars.DEFAULT_TEST_DATA_PATH || '/mnt/datadrive/TestData' }} cpu-only: ${{ matrix.cpu-only || false }} other-tests: strategy: fail-fast: false matrix: include: - script: L0_Unit_Tests_GPU_Others runner: ${{ inputs.runner }} - script: L0_Unit_Tests_CPU_Others runner: ${{ inputs.runner }} cpu-only: true runs-on: ${{ matrix.runner }} name: ${{ matrix.script }} steps: - name: Checkout uses: actions/checkout@v6 - name: Checkout NeMo uses: actions/checkout@v6 with: path: ${{ github.run_id }} - name: main uses: ./.github/actions/test-template with: runner: ${{ runner.name }} script: ${{ matrix.script }} is_unit_test: true tests_to_run: ${{ inputs.test_to_run }} image: ${{ inputs.container-image }} test-data-path: ${{ vars.DEFAULT_TEST_DATA_PATH || '/mnt/datadrive/TestData' }} cpu-only: ${{ matrix.cpu-only || false }} is_optional: ${{ matrix.is-optional || false }}