Skip to content

test(e2e): migrate device auth health to vitest #10848

test(e2e): migrate device auth health to vitest

test(e2e): migrate device auth health to vitest #10848

Workflow file for this run

# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
# SPDX-License-Identifier: Apache-2.0
name: E2E / macOS
on:
workflow_dispatch:
pull_request:
paths:
- "bin/**"
- "nemoclaw/**"
- "scripts/**"
- "src/**"
- "test/**"
- ".github/workflows/macos-e2e.yaml"
- "package.json"
- "package-lock.json"
- "nemoclaw/package-lock.json"
- "vitest.config.ts"
push:
branches:
- main
paths-ignore:
- "docs/**"
- "**/*.md"
- ".github/workflows/docs-preview-*.yaml"
- "ISSUE_TEMPLATE/**"
- ".github/ISSUE_TEMPLATE/**"
permissions:
contents: read
concurrency:
group: macos-e2e-${{ github.ref }}
cancel-in-progress: true
jobs:
macos-e2e:
runs-on: macos-26
timeout-minutes: 30
steps:
- name: Checkout
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
- name: Setup Node.js
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6
with:
node-version: "22"
cache: npm
- name: Show environment
run: |
set -euo pipefail
echo "Runner: $(uname -a)"
echo "Arch: $(uname -m)"
sw_vers
node --version
npm --version
- name: Install root dependencies
run: npm ci --ignore-scripts
- name: Build CLI TypeScript modules
run: npm run build:cli
- name: Install and build plugin
run: |
set -euo pipefail
cd nemoclaw
npm ci --ignore-scripts
npm run build
- name: Detect Docker availability
id: docker
run: |
if docker info >/dev/null 2>&1; then
echo "docker_ok=true" >> "$GITHUB_OUTPUT"
echo "Docker is available"
docker version
else
echo "docker_ok=false" >> "$GITHUB_OUTPUT"
echo "Docker is not available on this runner"
fi
- name: Run macOS full E2E
if: steps.docker.outputs.docker_ok == 'true'
env:
NVIDIA_INFERENCE_API_KEY: ${{ secrets.NVIDIA_INFERENCE_API_KEY }}
GITHUB_TOKEN: ${{ github.token }}
NEMOCLAW_NON_INTERACTIVE: "1"
NEMOCLAW_ACCEPT_THIRD_PARTY_SOFTWARE: "1"
NEMOCLAW_RECREATE_SANDBOX: "1"
NEMOCLAW_SANDBOX_NAME: "e2e-macos"
run: bash test/e2e/test-full-e2e.sh
- name: Explain skipped full E2E
if: steps.docker.outputs.docker_ok != 'true'
run: |
echo 'Skipping macOS full E2E because Docker is unavailable on this runner.'
echo 'The workflow still validated the NemoClaw build on macOS (Apple Silicon).'
- name: Upload logs on failure
if: failure()
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
name: macos-e2e-logs
path: |
/tmp/nemoclaw-e2e-*.log
if-no-files-found: ignore