Skip to content

ci: add missing recipe owners (#1775) #4665

ci: add missing recipe owners (#1775)

ci: add missing recipe owners (#1775) #4665

Workflow file for this run

name: Installation Test
on:
push:
branches:
- main
- "pull-request/[0-9]+"
- "deploy-release/*"
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}-${{ github.event.label.name || 'main' }}-${{ github.event_name }}
cancel-in-progress: true
jobs:
pre-flight:
uses: NVIDIA-NeMo/FW-CI-templates/.github/workflows/_cicd_preflight.yml@v0.64.2
pip-test:
runs-on: ${{ matrix.arch }}
name: Pip - Python${{ matrix.python-version }} - ${{ matrix.arch == 'ubuntu-latest' && 'AMD64/Linux' || (matrix.arch == 'ubuntu-24.04-arm' && 'ARM64/Linux' || 'ARM64/Darwin') }} - No CUDA
needs: [pre-flight]
if: |
!(needs.pre-flight.outputs.docs_only == 'true'
|| needs.pre-flight.outputs.is_deployment_workflow == 'true')
strategy:
fail-fast: false
matrix:
arch: ["ubuntu-latest", "macos-latest"] # After setting the repo to public: "ubuntu-24.04-arm"]
python-version: ["3.10", "3.11", "3.12"]
steps:
- name: Checkout repository
uses: actions/checkout@v6
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v6
with:
python-version: ${{ matrix.python-version }}
- name: Upgrade pip
run: |
python -m pip install --upgrade pip
- name: Install project
run: |
pip install "."
- name: Checkout check-imports
uses: actions/checkout@v6
with:
repository: NVIDIA-NeMo/FW-CI-templates
ref: v0.39.0
path: FW-CI-templates
- name: Check imports for nemo_automodel
uses: ./FW-CI-templates/.github/actions/check-imports
with:
package-name: nemo_automodel
python-binary: python
ngc-cuda-test-uv:
runs-on: linux-amd64-cpu16
name: UV - Python${{ matrix.python-version }} - AMD64/Linux - NGC CUDA
needs: [pre-flight]
if: |
!(needs.pre-flight.outputs.docs_only == 'true'
|| needs.pre-flight.outputs.is_deployment_workflow == 'true')
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@v6
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v6
with:
python-version: ${{ matrix.python-version }}
- name: Install wget
run: |
apt-get update
apt-get install -y wget git
- name: Upgrade pip
run: |
python -m pip install --upgrade pip
- name: Set up UV
uses: astral-sh/setup-uv@v1
with:
version: 0.9.26
- 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 }}
UV_PROJECT_ENVIRONMENT: ./venv
shell: bash
run: |
echo -e "machine github.com\n login token\n password ${{ secrets.PAT }}" > ~/.netrc
chmod 600 ~/.netrc
uv venv ${UV_PROJECT_ENVIRONMENT} --system-site-packages
source ./venv/bin/activate
export PATH="./bin/:$PATH"
uv sync --link-mode copy --locked --all-groups
uv pip install --no-deps -e .
- name: Checkout check-imports
uses: actions/checkout@v6
with:
repository: NVIDIA-NeMo/FW-CI-templates
ref: v0.39.0
path: FW-CI-templates
- name: Check imports for nemo_automodel
uses: ./FW-CI-templates/.github/actions/check-imports
with:
package-name: nemo_automodel
python-binary: ./venv/bin/python
ngc-cuda-test-pip:
runs-on: linux-amd64-cpu16
name: Pip - Python${{ matrix.python-version }}${{ matrix.extra-groups != '' && format('[{0}]', matrix.extra-groups) || '' }} - AMD64/Linux - NGC CUDA
container:
image: nvcr.io/nvidia/cuda:12.8.1-cudnn-devel-ubuntu24.04
environment: nemo-ci
needs: [pre-flight]
if: |
!(needs.pre-flight.outputs.docs_only == 'true'
|| needs.pre-flight.outputs.is_deployment_workflow == 'true')
strategy:
fail-fast: false
matrix:
python-version: ["3.12"]
extra-groups: ["", "vlm", "fa"]
env:
EXTRA: ${{ matrix.extra-groups != '' && format('[{0}]', matrix.extra-groups) || '' }}
steps:
- name: Checkout repository
uses: actions/checkout@v6
- name: Install automodel${{ matrix.extra-groups != '' && format('[{0}]', matrix.extra-groups) || '' }}
shell: bash -x -e -u -o pipefail {0}
run: |
apt-get update
apt-get install -y python3 python3-pip python3-venv git
python3 -m venv ./venv
. ./venv/bin/activate
pip install --upgrade pip
PIP_ARGS=()
if [[ $EXTRA == *"fa"* ]]; then
pip install --index-url https://download.pytorch.org/whl/cu128 "torch<=2.8.0"
pip install numpy packaging psutil pybind11 setuptools wheel wheel_stub
PIP_ARGS=(--no-build-isolation)
fi
pip install ${PIP_ARGS[@]} .$EXTRA
- name: Checkout check-imports
uses: actions/checkout@v6
with:
repository: NVIDIA-NeMo/FW-CI-templates
ref: v0.39.0
path: FW-CI-templates
- name: Check imports for nemo_automodel
uses: ./FW-CI-templates/.github/actions/check-imports
with:
package-name: nemo_automodel
python-binary: ./venv/bin/python
uv-test:
runs-on: ${{ matrix.arch }}
name: UV - Python ${{ matrix.python-version }} - ${{ matrix.arch == 'ubuntu-latest' && 'AMD64/Linux' || 'ARM64/Darwin' }} - No CUDA
needs: [pre-flight]
if: |
!(needs.pre-flight.outputs.docs_only == 'true'
|| needs.pre-flight.outputs.is_deployment_workflow == 'true')
environment: nemo-ci
strategy:
fail-fast: false
matrix:
arch: ["${{ vars.LINT_AND_INSTALL_TEST_RUNNER || 'ubuntu-latest' }}", "macos-latest"]
steps:
- name: Checkout repository
uses: actions/checkout@v6
- name: Set up UV
uses: astral-sh/setup-uv@v1
with:
version: 0.9.26
- name: Install dependencies with UV
env:
UV_PROJECT_ENVIRONMENT: ./venv
PAT: ${{ secrets.PAT }}
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} --system-site-packages
uv sync --link-mode copy --locked --only-group build
uv sync --link-mode copy --locked --all-groups
uv pip install --no-deps -e .
- name: Checkout check-imports
uses: actions/checkout@v6
with:
repository: NVIDIA-NeMo/FW-CI-templates
ref: v0.39.0
path: FW-CI-templates
- name: Check imports for nemo_automodel
uses: ./FW-CI-templates/.github/actions/check-imports
with:
package-name: nemo_automodel
python-binary: ./venv/bin/python
install-test-summary:
needs: [pip-test, uv-test, ngc-cuda-test-uv, ngc-cuda-test-pip, pre-flight]
runs-on: ubuntu-latest
name: Install test summary
if: |
(
needs.pre-flight.outputs.docs_only == 'true'
|| needs.pre-flight.outputs.is_deployment_workflow == 'true'
|| always()
)
&& !cancelled()
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Get workflow result
id: result
shell: bash -x -e -u -o pipefail {0}
env:
GH_TOKEN: ${{ github.token }}
RUN_ID: ${{ github.run_id }}
SKIPPING_IS_ALLOWED: ${{ needs.pre-flight.outputs.docs_only == 'true' || needs.pre-flight.outputs.is_deployment_workflow == 'true' }}
run: |
FAILED_JOBS=$(gh run view $GITHUB_RUN_ID --json jobs --jq '[.jobs[] | select(.status == "completed" and .conclusion != "success")] | length') || echo 0
if [ "${FAILED_JOBS:-0}" -eq 0 ] || [ "$SKIPPING_IS_ALLOWED" == "true" ]; then
echo "✅ All previous jobs completed successfully"
exit 0
else
echo "❌ Found $FAILED_JOBS failed job(s)"
# Show which jobs failed
gh run view $GITHUB_RUN_ID --json jobs --jq '.jobs[] | select(.status == "completed" and .conclusion != "success") | .name'
exit 1
fi