Skip to content

feat(segkit): add ci wrap and ci summary subcommands#63

Draft
abueide wants to merge 1 commit intomainfrom
feat/segkit-ci-wrap
Draft

feat(segkit): add ci wrap and ci summary subcommands#63
abueide wants to merge 1 commit intomainfrom
feat/segkit-ci-wrap

Conversation

@abueide
Copy link
Copy Markdown
Contributor

@abueide abueide commented May 2, 2026

Summary

Adds segkit ci wrap and segkit ci summary — the first CI observability subcommands for the segkit CLI. This is PR 1.5a from the segkit migration plan.

Changes

  • segkit ci wrap -- <command>: Spawns a child process, captures wall-clock timing, exit code, and stderr tail. Writes JSONL to reports/segkit-timing.jsonl (always) and reports/segkit-errors.jsonl (on failure). Propagates the child's exit code.
  • segkit ci summary --platform <name> --device <name>: Reads timing/error JSONL artifacts and generates a markdown table. Writes to stdout and appends to $GITHUB_STEP_SUMMARY when set.
  • New segkit/src/ci.rs module with unit tests for duration formatting
  • 7 new integration tests in tests/cli.rs covering wrap success/failure/no-args and summary with/without data/errors

Why

CI E2E failures currently require digging through raw process-compose logs to understand what happened. These commands provide structured timing and error capture that can be surfaced directly in GitHub Actions job summaries, making failures immediately visible.


🤖 Generated with Claude Code

Adds `segkit ci wrap -- <command>` to run commands with timing/exit/stderr
capture to JSONL reports, and `segkit ci summary` to generate markdown
tables from those artifacts for $GITHUB_STEP_SUMMARY.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@abueide abueide added the feature New feature or functionality label May 2, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

feature New feature or functionality

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant