Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 15 additions & 10 deletions .github/workflows/create-stale-docs-issues.yml
Original file line number Diff line number Diff line change
Expand Up @@ -47,9 +47,16 @@ jobs:
path: logs

- name: Create or Update Issues (One Per File)
env:
GH_TOKEN: ${{ github.token }}
RESULTS_FILE: ${{ inputs.results-file }}
THRESHOLD_DAYS: ${{ inputs.threshold-days }}
GITHUB_REPOSITORY: ${{ github.repository }}
GITHUB_SERVER_URL: ${{ github.server_url }}
GITHUB_RUN_ID: ${{ github.run_id }}
run: |
# Extract stale files from JSON
$results = Get-Content '${{ inputs.results-file }}' | ConvertFrom-Json
$results = Get-Content $env:RESULTS_FILE | ConvertFrom-Json
$staleFiles = $results | Where-Object { $_.IsStale -eq $true }

if (-not $staleFiles) {
Expand All @@ -73,9 +80,9 @@ jobs:

# Check for existing open issue for this specific file using search
# Search by automation marker in issue body
$searchQuery = "repo:${{ github.repository }} is:issue is:open in:body `"automation:stale-docs:$filePath`""
$searchQuery = "repo:$env:GITHUB_REPOSITORY is:issue is:open in:body `"automation:stale-docs:$filePath`""
$existingIssueJson = gh issue list `
--repo "${{ github.repository }}" `
--repo $env:GITHUB_REPOSITORY `
--search "$searchQuery" `
--limit 1 `
--json number `
Expand All @@ -89,10 +96,10 @@ jobs:

**File:** ``$filePath``
**Current ms.date:** ``$msDate``
**Age:** $ageDays days (threshold: ${{ inputs.threshold-days }} days)
**Age:** $ageDays days (threshold: $env:THRESHOLD_DAYS days)

---
**Workflow Run:** ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
**Workflow Run:** $env:GITHUB_SERVER_URL/$env:GITHUB_REPOSITORY/actions/runs/$env:GITHUB_RUN_ID
**Detection Date:** $(Get-Date -Format 'yyyy-MM-dd' -AsUTC)

### Action Required
Expand All @@ -107,23 +114,21 @@ jobs:
if ($existingIssue) {
Write-Host "Updating existing issue #$existingIssue for $filePath"
gh issue edit $existingIssue `
--repo "${{ github.repository }}" `
--repo $env:GITHUB_REPOSITORY `
--body $issueBody

$updateDate = Get-Date -Format 'yyyy-MM-dd' -AsUTC
gh issue comment $existingIssue `
--repo "${{ github.repository }}" `
--repo $env:GITHUB_REPOSITORY `
--body "πŸ”„ **Weekly validation update:** Still stale ($ageDays days) as of $updateDate"
} else {
Write-Host "Creating new issue for $filePath"
gh issue create `
--repo "${{ github.repository }}" `
--repo $env:GITHUB_REPOSITORY `
--title $issueTitle `
--body $issueBody `
--label "documentation,stale-docs,automated,needs-triage"
}
}

Write-Host "Issue creation/update complete"
env:
GH_TOKEN: ${{ github.token }}
19 changes: 14 additions & 5 deletions .github/workflows/msdate-freshness-check.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,11 @@ on:
required: false
type: boolean
default: false
soft-fail:
description: 'Prevent PR failures when ms.date issues are detected'
required: false
type: boolean
default: false

permissions:
contents: read
Expand Down Expand Up @@ -43,14 +48,18 @@ jobs:
Install-Module -Name PowerShell-Yaml -Force -Scope CurrentUser

- name: Run ms.date Freshness Check
env:
THRESHOLD_DAYS: ${{ inputs.staleness-threshold-days }}
CHANGED_FILES_ONLY: ${{ inputs.changed-files-only }}
run: |
$args = @{
ThresholdDays = ${{ inputs.staleness-threshold-days }}
$params = @{
ThresholdDays = [int]$env:THRESHOLD_DAYS
}
if ('${{ inputs.changed-files-only }}' -eq 'true') {
$args['ChangedFilesOnly'] = $true
if ($env:CHANGED_FILES_ONLY -eq 'true') {
$params['ChangedFilesOnly'] = $true
}
& shared/ci/linting/Invoke-MsDateFreshnessCheck.ps1 @args
& shared/ci/linting/Invoke-MsDateFreshnessCheck.ps1 @params
continue-on-error: ${{ inputs.soft-fail }}

- name: Upload freshness check results
if: always()
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/pr-validation.yml
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@ jobs:
with:
staleness-threshold-days: 90
changed-files-only: true
soft-fail: false
permissions:
contents: read

Expand Down
1 change: 1 addition & 0 deletions .github/workflows/weekly-validation.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ jobs:
with:
staleness-threshold-days: 90
changed-files-only: false # Check all files
soft-fail: false
permissions:
contents: read

Expand Down
1 change: 1 addition & 0 deletions shared/ci/linting/Invoke-MsDateFreshnessCheck.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -201,6 +201,7 @@ function New-MsDateReport {
| File | ms.date | Age (days) |
|------|---------|------------|
"@
$markdown += "`n"

$sortedStaleFiles = $staleFiles | Sort-Object -Property AgeDays -Descending

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
title: Empty Description Test
description: ""
ms.date: 2026-03-16
ms.date: 2026-03-20
---

# Empty Description
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
title: Formatted Footer Test
description: A document with bold and italic formatting applied to the footer
author: test-author
ms.date: 2026-03-16
ms.date: 2026-03-20
---

Content with a formatted footer that should still match after normalization.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
title: HTML Comment Footer Test
description: A document with HTML comment wrapping around the footer
author: test-author
ms.date: 2026-03-16
ms.date: 2026-03-20
---

Content with HTML comments interspersed near the footer.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
title: Azure ML Validation Job Debugging
description: Troubleshooting guide for Azure Machine Learning validation job failures
author: Robotics-AI Team
ms.date: 2026-03-16
ms.date: 2026-03-20
ms.topic: troubleshooting
---

Expand Down
2 changes: 1 addition & 1 deletion shared/ci/tests/Fixtures/Frontmatter/valid-docs.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
title: Azure ML Validation Job Debugging
description: Troubleshooting guide for Azure Machine Learning validation job failures
author: Robotics-AI Team
ms.date: 2026-03-16
ms.date: 2026-03-20
ms.topic: troubleshooting
---

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
title: Contributing Guide
description: Guidelines for contributing to the Physical AI Toolchain
author: Robotics-AI Team
ms.date: 2026-03-16
ms.date: 2026-03-20
---

Thank you for your interest in contributing to this project.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
title: Contributing Guide
description: Guidelines for contributing to the Physical AI Toolchain
author: Robotics-AI Team
ms.date: 2026-03-16
ms.date: 2026-03-20
---

Thank you for your interest in contributing to this project.
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
title: Warning Test Fixture
description: File with empty author field to trigger a validation warning
author: ""
ms.date: 2026-03-16
ms.date: 2026-03-20
ms.topic: conceptual
---

Expand Down
38 changes: 19 additions & 19 deletions workflows/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
title: Workflows
description: AzureML and OSMO workflow templates for robotics training and validation jobs
author: Edge AI Team
ms.date: 2026-03-16
ms.date: 2026-03-20
ms.topic: reference
---

Expand Down Expand Up @@ -43,32 +43,32 @@ workflows/

```bash
# Training job
./scripts/submit-azureml-training.sh --task Isaac-Velocity-Rough-Anymal-C-v0
training/rl/scripts/submit-azureml-training.sh --task Isaac-Velocity-Rough-Anymal-C-v0

# LeRobot behavioral cloning (AzureML)
./scripts/submit-azureml-lerobot-training.sh -d lerobot/aloha_sim_insertion_human
training/il/scripts/submit-azureml-lerobot-training.sh -d lerobot/aloha_sim_insertion_human

# Validation job (model name derived from task by default)
./scripts/submit-azureml-validation.sh --task Isaac-Velocity-Rough-Anymal-C-v0
evaluation/sil/scripts/submit-azureml-validation.sh --task Isaac-Velocity-Rough-Anymal-C-v0
```

### OSMO Workflows

```bash
# Base64 payload (< 1MB training code)
./scripts/submit-osmo-training.sh --task Isaac-Velocity-Rough-Anymal-C-v0
training/rl/scripts/submit-osmo-training.sh --task Isaac-Velocity-Rough-Anymal-C-v0

# Dataset folder upload (unlimited size, versioned)
./scripts/submit-osmo-dataset-training.sh --task Isaac-Velocity-Rough-Anymal-C-v0
training/il/scripts/submit-osmo-dataset-training.sh --task Isaac-Velocity-Rough-Anymal-C-v0

# LeRobot behavioral cloning (HuggingFace datasets)
./scripts/submit-osmo-lerobot-training.sh -d lerobot/aloha_sim_insertion_human
training/il/scripts/submit-osmo-lerobot-training.sh -d lerobot/aloha_sim_insertion_human

# LeRobot inference/evaluation
./scripts/submit-osmo-lerobot-inference.sh --policy-repo-id user/trained-policy
evaluation/sil/scripts/submit-osmo-lerobot-eval.sh --policy-repo-id user/trained-policy

# End-to-end pipeline: train β†’ evaluate β†’ register
./scripts/run-lerobot-pipeline.sh \
training/pipelines/run-lerobot-pipeline.sh \
-d lerobot/aloha_sim_insertion_human \
--policy-repo-id user/my-policy \
-r my-model
Expand All @@ -89,10 +89,10 @@ The `train-dataset.yaml` template uploads `training/rl/` as a versioned OSMO dat

```bash
# Default configuration
./scripts/submit-osmo-dataset-training.sh --task Isaac-Velocity-Rough-Anymal-C-v0
training/il/scripts/submit-osmo-dataset-training.sh --task Isaac-Velocity-Rough-Anymal-C-v0

# Custom dataset configuration
./scripts/submit-osmo-dataset-training.sh \
training/il/scripts/submit-osmo-dataset-training.sh \
--dataset-bucket custom-bucket \
--dataset-name my-training-v1 \
--task Isaac-Velocity-Rough-Anymal-C-v0
Expand Down Expand Up @@ -135,11 +135,11 @@ The `lerobot-train.yaml` workflow trains behavioral cloning policies using the L

```bash
# ACT training with WANDB
./scripts/submit-osmo-lerobot-training.sh \
training/il/scripts/submit-osmo-lerobot-training.sh \
-d lerobot/aloha_sim_insertion_human

# Diffusion policy with MLflow and model registration
./scripts/submit-osmo-lerobot-training.sh \
training/il/scripts/submit-osmo-lerobot-training.sh \
-d user/custom-dataset \
-p diffusion \
--mlflow-enable \
Expand Down Expand Up @@ -172,11 +172,11 @@ The `lerobot-infer.yaml` workflow evaluates trained LeRobot policies from Huggin

```bash
# Evaluate trained policy
./scripts/submit-osmo-lerobot-inference.sh \
evaluation/sil/scripts/submit-osmo-lerobot-eval.sh \
--policy-repo-id user/trained-act-policy

# Evaluate with model registration
./scripts/submit-osmo-lerobot-inference.sh \
evaluation/sil/scripts/submit-osmo-lerobot-eval.sh \
--policy-repo-id user/trained-act-policy \
-r my-evaluated-model \
--eval-episodes 50
Expand Down Expand Up @@ -208,7 +208,7 @@ The workflow accepts checkpoints from multiple sources:
### Basic Usage

```bash
./scripts/submit-osmo-inference.sh \
evaluation/sil/scripts/submit-osmo-eval.sh \
--checkpoint-uri "runs:/abc123/checkpoints/final/model_999.pt" \
--task Isaac-Ant-v0
```
Expand All @@ -228,7 +228,7 @@ The workflow accepts checkpoints from multiple sources:

```bash
# ONNX-only inference with custom parameters
./scripts/submit-osmo-inference.sh \
evaluation/sil/scripts/submit-osmo-eval.sh \
--checkpoint-uri "models:/my-model/1" \
--task Isaac-Velocity-Rough-Anymal-C-v0 \
--format onnx \
Expand All @@ -237,13 +237,13 @@ The workflow accepts checkpoints from multiple sources:
--video-length 300

# TorchScript-only inference
./scripts/submit-osmo-inference.sh \
evaluation/sil/scripts/submit-osmo-eval.sh \
--checkpoint-uri "runs:/abc123/checkpoints/final/model_99.pt" \
--task Isaac-Ant-v0 \
--format jit

# With explicit Azure context
./scripts/submit-osmo-inference.sh \
evaluation/sil/scripts/submit-osmo-eval.sh \
--checkpoint-uri "runs:/abc123/checkpoints/model_999.pt" \
--task Isaac-Ant-v0 \
--azure-subscription-id "00000000-0000-0000-0000-000000000000" \
Expand Down
24 changes: 12 additions & 12 deletions workflows/azureml/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,19 +2,19 @@
title: AzureML Workflows
description: Azure Machine Learning job templates for robotics training and validation
author: Edge AI Team
ms.date: 2025-12-04
ms.date: 2026-03-20
ms.topic: reference
---

Azure Machine Learning job templates for Isaac Lab training and validation workloads.

## πŸ“œ Available Templates

| Template | Purpose | Submission Script |
|------------------------------------------|---------------------------------------|----------------------------------------------|
| [train.yaml](train.yaml) | Training jobs with checkpoint support | `scripts/submit-azureml-training.sh` |
| [validate.yaml](validate.yaml) | Policy validation and inference | `scripts/submit-azureml-validation.sh` |
| [lerobot-train.yaml](lerobot-train.yaml) | LeRobot behavioral cloning training | `scripts/submit-azureml-lerobot-training.sh` |
| Template | Purpose | Submission Script |
|---------------------------------------------------------------------------------|---------------------------------------|----------------------------------------------------------|
| [train.yaml](../../training/rl/workflows/azureml/train.yaml) | Training jobs with checkpoint support | `training/rl/scripts/submit-azureml-training.sh` |
| [validate.yaml](../../evaluation/sil/workflows/azureml/validate.yaml) | Policy validation and inference | `evaluation/sil/scripts/submit-azureml-validation.sh` |
| [lerobot-train.yaml](../../training/il/workflows/azureml/lerobot-train.yaml) | LeRobot behavioral cloning training | `training/il/scripts/submit-azureml-lerobot-training.sh` |

## πŸ‹οΈ Training Job (`train.yaml`)

Expand All @@ -35,10 +35,10 @@ Submits Isaac Lab reinforcement learning training to AKS GPU nodes via Azure ML.

```bash
# Default configuration from Terraform outputs
./scripts/submit-azureml-training.sh
training/rl/scripts/submit-azureml-training.sh

# Override specific parameters
./scripts/submit-azureml-training.sh \
training/rl/scripts/submit-azureml-training.sh \
--resource-group rg-custom \
--workspace-name mlw-custom
```
Expand All @@ -60,10 +60,10 @@ Runs trained policy validation and generates inference metrics.

```bash
# Default configuration
./scripts/submit-azureml-validation.sh
evaluation/sil/scripts/submit-azureml-validation.sh

# With custom checkpoint
./scripts/submit-azureml-validation.sh \
evaluation/sil/scripts/submit-azureml-validation.sh \
--checkpoint-path "azureml://datastores/checkpoints/paths/model.pt"
```

Expand Down Expand Up @@ -103,11 +103,11 @@ Submits LeRobot behavioral cloning training (ACT/Diffusion policies) to Azure ML

```bash
# ACT policy training
./scripts/submit-azureml-lerobot-training.sh \
training/il/scripts/submit-azureml-lerobot-training.sh \
-d lerobot/aloha_sim_insertion_human

# Diffusion policy with model registration
./scripts/submit-azureml-lerobot-training.sh \
training/il/scripts/submit-azureml-lerobot-training.sh \
-d user/custom-dataset \
-p diffusion \
-r my-diffusion-model \
Expand Down
Loading
Loading