Skip to content

f

f #21

Workflow file for this run

# 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.
# This workflow verifies that the basic install works across all supported platforms.
# For basic install, all imports need to either be successful or appropriately guarded.
name: Installation Test
on:
push:
branches:
- main
- "pull-request/[0-9]+"
env:
UV_PROJECT_ENVIRONMENT: "./venv"
jobs:
pip-test:
runs-on: ${{ matrix.arch }}
name: Pip - Python${{ matrix.python-version }} - ${{ matrix.arch == 'ubuntu-latest' && 'AMD64/Linux' || 'ARM64/Darwin' }} - No CUDA
strategy:
fail-fast: false
matrix:
arch: ["ubuntu-latest", "macos-latest"]
python-version: ["3.10", "3.11", "3.12"]
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Upgrade pip
run: |
python -m pip install --upgrade pip
- name: Install project
run: |
pip install .
- name: Run import checks
run: |
python .github/scripts/check_imports.py
ngc-cuda-test:
runs-on: linux-amd64-cpu16
name: UV - Python${{ matrix.python-version }} - AMD64/Linux - NGC CUDA
container:
image: nvcr.io/nvidia/cuda:12.8.1-cudnn-devel-ubuntu24.04
environment: nemo-ci
strategy:
fail-fast: false
matrix:
python-version: ["3.12"]
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Install wget
run: |
apt-get update
apt-get install -y wget git libopenmpi-dev
- name: Upgrade pip
run: |
python -m pip install --upgrade pip
- name: Set up UV
uses: astral-sh/setup-uv@v1
with:
version: 0.7.2
- name: Set up yq
shell: bash
run: |
wget https://github.com/mikefarah/yq/releases/download/v4.45.4/yq_linux_amd64.tar.gz
tar -xzf yq_linux_amd64.tar.gz
mkdir -p ./bin
mv yq_linux_amd64 ./bin/yq
chmod +x ./bin/yq
- name: Install project
env:
PAT: ${{ secrets.PAT }}
shell: bash
run: |
echo -e "machine github.com\n login token\n password ${{ secrets.PAT }}" > ~/.netrc
chmod 600 ~/.netrc
uv venv ${UV_PROJECT_ENVIRONMENT}
source ./venv/bin/activate
export PATH="./bin/:$PATH"
uv sync --link-mode copy --locked --all-groups
bash ./docker/common/install_conflicting_deps.sh
uv pip install --no-deps -e .
python .github/scripts/check_imports.py
uv-test:
runs-on: ${{ matrix.arch }}
name: UV - Python ${{ matrix.python-version }} - ${{ matrix.arch == 'ubuntu-latest' && 'AMD64/Linux' || 'ARM64/Darwin' }} - No CUDA
environment: nemo-ci
strategy:
fail-fast: false
matrix:
arch: ["ubuntu-latest", "macos-latest"]
python-version: ["3.12"]
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Set up UV
uses: astral-sh/setup-uv@v1
with:
version: 0.7.2
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies with UV
env:
PAT: ${{ secrets.PAT }}
shell: bash
run: |
echo -e "machine github.com\n login token\n password ${{ secrets.PAT }}" > ~/.netrc
chmod 600 ~/.netrc
export PATH="${UV_PROJECT_ENVIRONMENT}/bin/:$PATH"
uv venv ${UV_PROJECT_ENVIRONMENT}
uv sync --link-mode copy --locked --only-group build
uv sync --link-mode copy --locked --all-groups
uv pip install --no-deps -e .
uv run python .github/scripts/check_imports.py
install-test-summary:
needs: [pip-test, uv-test, ngc-cuda-test]
runs-on: ubuntu-latest
name: Install test summary
steps:
- name: Result
run: echo Install check successful