Skip to content

feat(cli): collectUnityLogs + streamUnityLogs flags (refs unity-builder#740)#48

Merged
frostebite merged 2 commits into
mainfrom
feat/unity-log-collection
May 7, 2026
Merged

feat(cli): collectUnityLogs + streamUnityLogs flags (refs unity-builder#740)#48
frostebite merged 2 commits into
mainfrom
feat/unity-log-collection

Conversation

@frostebite
Copy link
Copy Markdown
Member

Summary

Companion to game-ci/orchestrator#23 — surfaces the same Unity diagnostic log collection feature on the standalone game-ci CLI.

After a Docker build, the CLI gathers Editor.log, Unity.Licensing.Client.log, Unity.Entitlements.Audit.log, services-config.json, build report, bee_backend.log, ProjectVersion.txt, and Packages/manifest.json into <workspace>/Logs/UnityDiagnostics/ along with a manifest.json. Live tailing of the Unity -logFile output is also wired in.

Notes

  • The orchestrator package owns the canonical, multi-platform path registry (UnityLogCollectorService with ~17 categories). The CLI keeps a slim subset for users running game-ci build directly. The orchestrate flow inherits the full implementation via the @game-ci/orchestrator plugin.
  • Refs Simple way to fetch logs unity-builder#740.

New flags

```
--collectUnityLogs
--collectUnityLogsOnSuccess
--unityLogCategories
--unityLogsIncludeSensitive
--unityLogsOutputDir
--streamUnityLogs
--streamUnityLogPaths
```

Test plan

  • bun build clean
  • Existing command-options tests pass
  • Smoke game-ci build --targetPlatform StandaloneLinux64 --collectUnityLogs against a self-hosted Linux runner; confirm Logs/UnityDiagnostics/manifest.json appears

🤖 Generated with Claude Code

Mirrors the Orchestrator's Unity diagnostic log collection feature on
the standalone CLI. After a Docker build the CLI gathers Editor.log,
Unity.Licensing.Client.log, Unity.Entitlements.Audit.log,
services-config.json, build report, bee_backend.log, ProjectVersion.txt
and Packages/manifest.json into <workspace>/Logs/UnityDiagnostics/
along with a manifest.json. Live tailing of the Unity -logFile output
is also wired in.

The orchestrator package owns the canonical, multi-platform path
registry (UnityLogCollectorService) — the CLI keeps a slim subset for
users running game-ci build directly. The orchestrate flow inherits
the full implementation via the @game-ci/orchestrator plugin.

Flags:
  --collectUnityLogs
  --collectUnityLogsOnSuccess
  --unityLogCategories
  --unityLogsIncludeSensitive
  --unityLogsOutputDir
  --streamUnityLogs
  --streamUnityLogPaths

Refs: game-ci/unity-builder#740

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 7, 2026

Warning

Rate limit exceeded

@frostebite has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 35 minutes and 59 seconds before requesting another review.

To continue reviewing without waiting, purchase usage credits in the billing tab.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 340d08ae-c978-44c9-8243-b9132f260c8f

📥 Commits

Reviewing files that changed from the base of the PR and between 13a5067 and 0714fc6.

📒 Files selected for processing (5)
  • src/command-options/unity-logs-options.ts
  • src/command/build/unity-build-command.ts
  • src/command/logs/unity-logs-command.ts
  • src/model/unity-logs.ts
  • src/plugin/builtin/unity-plugin.ts
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/unity-log-collection

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Adds a discoverable verb-first surface for Unity diagnostic logs:

  game-ci logs collect [--unityLogCategories ...] [--unityLogsOutputDir ...]
  game-ci logs tail    [--streamUnityLogPaths ...]
  game-ci logs pull    # stub — points at orchestrator roadmap issue
  game-ci logs fetch   # stub — points at orchestrator roadmap issue

Replaces the awkward `game-ci orchestrate --providerStrategy local
--collectUnityLogs ...` recipe with a one-liner. `logs collect` runs
the same UnityLogs collector against the local host, so users can
SSH into a self-hosted runner after a failing job and grab the
Unity-support bundle without editing the workflow.

`logs tail` runs UnityLogs.streamFiles until Ctrl+C and is the
standalone counterpart to streamUnityLogs=true on a running build.

`logs pull` and `logs fetch` are reserved for the upcoming
remote-provider exec and retroactive-fetch follow-ups; for now they
print actionable messages pointing users to the existing path.

Wired into the unity plugin's command dispatcher.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@frostebite frostebite merged commit c8305fb into main May 7, 2026
13 checks passed
@frostebite frostebite deleted the feat/unity-log-collection branch May 7, 2026 17:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant