Agent Skills › dartsim/dart › dart-ci

dart-ci

GitHub

用于调试 CI/CD 失败及 GitHub Actions 工作流。提供快速命令监控 PR 检查、查看运行详情及重试作业,并列出格式化、测试、跨平台构建等常见故障的解决方案。

.claude/skills/dart-ci/SKILL.md dartsim/dart

Trigger Scenarios

CI 流程失败排查 GitHub Actions 工作流调试 跨平台编译问题定位

Install

npx skills add dartsim/dart --skill dart-ci -g -y
More Options

Non-standard path

npx skills add https://github.com/dartsim/dart/tree/main/.claude/skills/dart-ci -g -y

Use without installing

npx skills use dartsim/dart@dart-ci

指定 Agent (Claude Code)

npx skills add dartsim/dart --skill dart-ci -a claude-code -g -y

安装 repo 全部 skill

npx skills add dartsim/dart --all -g -y

预览 repo 内 skill

npx skills add dartsim/dart --list

SKILL.md

Frontmatter
{
    "name": "dart-ci",
    "description": "DART CI: GitHub Actions, cache debugging, and platform-specific failures"
}

DART CI/CD Troubleshooting

Load this skill when debugging CI failures or working with GitHub Actions.

When the failing claim depends on model/scene structure, physics behavior, or Filament output, also load dart-verify-sim and reproduce it with a text oracle plus assessed visual evidence. Document a visual exception when graphics support is unavailable or not applicable in the failing environment.

Quick Commands

# Monitor PR checks
gh pr checks <PR_NUMBER>
gh pr view <PR_NUMBER> --json headRefOid,mergeStateStatus,statusCheckRollup

# View run details
gh run list --branch <BRANCH> -e pull_request -L 20
gh run view <RUN_ID> --json status,conclusion,url

# Debug failures
gh run view <RUN_ID> --job <JOB_ID> --log-failed
gh run view <RUN_ID> --json jobs --jq '.jobs[] | {name, databaseId}'

# Rerun failed jobs only after explicit maintainer/user approval
gh run rerun <RUN_ID> --failed
gh run rerun <RUN_ID> --job <DATABASE_ID>

Full Documentation

For complete CI/CD guide: docs/onboarding/ci-cd.md

Common Failure Modes

Failure Type Solution
Formatting fails pixi run lint; push only after approval
Codecov patch fails Add tests for uncovered lines
FreeBSD RTTI fails Use type enums + static_cast instead of dynamic_cast
macOS ARM64 SEGFAULT Replace alloca()/VLAs with std::vector<T>
RTD build fails Use defensive .get(key, default) patterns
gz-physics fails Reproduce with pixi run -e gazebo test-gz
CI Filament fails Configure with pixi run config -- -DDART_ENABLE_GUI_SMOKE_TESTS=ON, then run pixi run test-gui; native-window failures with pixi run ctest --test-dir build/<env>/cpp/Release -L filament-native (pixi run ctest --test-dir build/<env>/cpp -C Release -L filament-native on Windows; under xvfb-run on headless Linux); consumer failures with pixi run python scripts/test_gui_install.py on that build directory

Workflow Architecture

The CI workflows that a failing PR check belongs to (full workflow index: docs/onboarding/ci-cd.md § "Workflow Index"):

Workflow Purpose Platforms
ci_ubuntu.yml AI checks, lint, build, test, coverage Ubuntu
ci_macos.yml Lint, build, test macOS
ci_windows.yml Lint, build, test Windows
ci_filament.yml Filament GUI functional lane (<runner>-Filament-functional; not yet required) Ubuntu, Windows, macOS
ci_freebsd.yml Build + test (VM) FreeBSD
ci_simd.yml SIMD x86 instruction-level matrix Ubuntu x86_64
ci_toolchain.yml Alternate toolchain build + test Ubuntu
ci_gz_physics.yml Gazebo integration Ubuntu
api_doc.yml Doxygen API docs build Ubuntu

FreeBSD, toolchain, CodeQL, wheels, Linux ASan/coverage/Eigen alignment, and macOS Debug run only in nightly.yml; their failures arrive as nightly-failure issues, not PR checks.

Default test gates exclude device-dependent CTests labeled gui-device and Python rendering tests; device-free GUI tests still run. pixi run test-gui selects all gui CTests except filament-native. The capture smoke option DART_ENABLE_GUI_SMOKE_TESTS defaults to OFF, needs a graphics device, and replaces DART_ENABLE_GUI_OSG_SMOKE_TESTS; CI Filament enables it.

Downstream Compatibility Policy

Package, exported-target, collision, constraint, and dependency changes can affect Gazebo/gz-physics even when local unit tests pass. Reproduce those failures with the Gazebo Pixi environment when practical: pixi run -e gazebo test-gz.

Fast Iteration Loop

  1. Identify failing step from job logs
  2. Reproduce locally with same build toggles
  3. Fix the smallest failing test
  4. Push only after explicit maintainer/user approval, then monitor: gh run view <RUN_ID> --json status,conclusion,url

Caching And Duration

Treat the current run and job logs as authoritative. Inspect cache restore/save steps and job timestamps before changing a key; do not rely on fixed duration or cache-speed estimates in this skill.

Version History

  • f630c91 Current 2026-10-18 20:26

    新增 Quick Commands 章节;更新 Filament GUI 测试配置;移除 CUDA Runner Policy 章节。

  • deb9869 2026-09-08 21:46

    新增Common Failure Modes表格以提供具体解决方案,移除Quick Commands代码块,强化CUDA Runner安全策略说明。

  • bcd584e 2026-09-02 23:41

    更新常见故障模式:新增Codecov覆盖率失败、FreeBSD RTTI失败、macOS ARM64段错误、RTD构建失败及gz-physics失败的解决方案;调整模拟器验证触发条件描述。

  • b9fbefc 2026-07-19 11:30

    新增视觉验证联动指引(dart-verify-sim)及 CUDA Runner 安全策略说明

  • e0d13fd 2026-07-05 10:36

Same Skill Collection

.agents/skills/dart-analyze/SKILL.md
.agents/skills/dart-architecture/SKILL.md
.agents/skills/dart-audit-agent-compliance/SKILL.md
.agents/skills/dart-backport-pr/SKILL.md
.agents/skills/dart-benchmark-packet/SKILL.md
.agents/skills/dart-branch-cleanup/SKILL.md
.agents/skills/dart-build/SKILL.md
.agents/skills/dart-changelog/SKILL.md
.agents/skills/dart-ci/SKILL.md
.agents/skills/dart-close-issue/SKILL.md
.agents/skills/dart-contribute/SKILL.md
.agents/skills/dart-deps/SKILL.md
.agents/skills/dart-docs-update/SKILL.md
.agents/skills/dart-downstream-fix/SKILL.md
.agents/skills/dart-execute-packet/SKILL.md
.agents/skills/dart-fix-issue/SKILL.md
.agents/skills/dart-io/SKILL.md
.agents/skills/dart-manage-pr/SKILL.md
.agents/skills/dart-mechanical-refactor/SKILL.md
.agents/skills/dart-model-upgrade/SKILL.md
.agents/skills/dart-new-task/SKILL.md
.agents/skills/dart-next/SKILL.md
.agents/skills/dart-perf/SKILL.md
.agents/skills/dart-plan-update/SKILL.md
.agents/skills/dart-pr/SKILL.md
.agents/skills/dart-python/SKILL.md
.agents/skills/dart-references/SKILL.md
.agents/skills/dart-release-ci-fix/SKILL.md
.agents/skills/dart-release-merge-main/SKILL.md
.agents/skills/dart-release-packaging/SKILL.md
.agents/skills/dart-resume/SKILL.md
.agents/skills/dart-retro/SKILL.md
.agents/skills/dart-review-pr/SKILL.md
.agents/skills/dart-test/SKILL.md
.agents/skills/dart-triage-issue/SKILL.md
.agents/skills/dart-ultrawork/SKILL.md
.agents/skills/dart-verify-sim/SKILL.md
.claude/skills/dart-architecture/SKILL.md
.claude/skills/dart-build/SKILL.md
.claude/skills/dart-contribute/SKILL.md
.claude/skills/dart-io/SKILL.md
.claude/skills/dart-perf/SKILL.md
.claude/skills/dart-python/SKILL.md
.claude/skills/dart-references/SKILL.md
.claude/skills/dart-test/SKILL.md
.claude/skills/dart-verify-sim/SKILL.md
.codex/skills/dart-analyze/SKILL.md
.codex/skills/dart-architecture/SKILL.md
.codex/skills/dart-audit-agent-compliance/SKILL.md

Metadata

Files
0
Version
f630c91
Hash
e878b13c
Indexed
2026-07-05 10:36

홈 - 위키
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-10-19 02:32
浙ICP备14020137号-1