Skip to content

Add a controller-side dry-run deploy preview - #6

Merged
anguoyang merged 1 commit into
anguoyang:mainfrom
faizansaiyed123:feat/dry-run-deploy
Nov 2, 2026
Merged

anguoyang merged 1 commit into
anguoyang:mainfrom
faizansaiyed123:feat/dry-run-deploy

Conversation

@faizansaiyed123

Copy link
Copy Markdown
Contributor

Summary

Adds a --dry-run option to rkdeploy deploy to preview deployment details for each selected board without performing any remote operations.

Changes

  • Add --dry-run to the deploy CLI command.
  • Display the package name and resolved installation root for each board.
  • Render and display the complete systemd unit file on the controller using the existing packaged template.
  • Support board-specific installation roots.
  • Preserve the existing board-side unit rendering during actual deployments.

Tests

  • Add a CLI-level test covering multiple boards with different installation roots.
  • Verify that dry-run does not invoke fleet execution, SSH commands, or SCP uploads.
  • Verify that rendered unit files contain resolved values rather than template placeholders.

Scope

This change is limited to deployment preview functionality. Existing deployment, installation, and rollback behaviour remains unchanged.

Closes #3

@anguoyang

Copy link
Copy Markdown
Owner

Thank you — this is exactly the shape issue #3 asked for, and fast work.

Reviewed and verified locally (CI doesn't auto-run on first-time fork PRs here, so I ran the suite myself): all 15 tests pass, including your new CLI-level test that patches run_fleet/run_ssh/scp_to and asserts none of them fire. I also ran a real dry-run against the demo package by hand — per-board target root, fully rendered unit with no placeholders left, custom install_root honoured.

Two design points I particularly like: reading the template out of the package instead of re-rendering it controller-side (so the preview shows what the board will actually get, not a second implementation of it), and keeping board-side rendering during real deploys untouched.

Merging now. This will ship in v0.2 — and if you have access to an RK3576 or RK356x board, issues #1/#2 are still hungry for real board reports.

@anguoyang
anguoyang merged commit 7ca0ec4 into anguoyang:main Nov 2, 2026
anguoyang added a commit that referenced this pull request Nov 7, 2026
Bump version to 0.2.0 and rotate the changelog. Contents: fleet-aware
uninstall (#7), deploy --dry-run (#6), board diagnostics in status
reports (#9), offline HTML fleet status report (#10), Simplified
Chinese specification (#8).
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.

Add a --dry-run mode to deploy

2 participants