ci: add missing recipe owners (#1775) #4665
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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 |