Deploy Packager
Automates Git-based change extraction and directory structure preservation for air-gapped and local-server deployment pipelines.
System Overview
In air-gapped or restricted local-server environments, automated cloud CI/CD pipelines cannot be used. Every release required manually examining Git commits, tracking down dozens of modified files across complex folder trees, creating matching directories by hand on the target server, and copying each file one by one.
Deploy Packager automates this repetitive cycle: select a commit range, review the detected changes in a clean table, and package the files with their complete folder hierarchy preserved in a single click.
Architectural & Technical Challenges
Manual copy-pasting across large codebases carries severe operational risks: overlooking a single configuration file, nested component, or migration script causes silent runtime failures on production servers.
The engineering challenge was building a desktop tool that could parse Git history reliably on client machines, preserve arbitrary directory structures across Windows and Linux path formats, and handle edge cases like deleted files, project build artifacts, and output path changes without performance lag.
Key Architectural Decisions
Native filesystem path preservation
Normalized POSIX and Windows path delimiters during file copying, ensuring generated deployment packages deploy identically to Linux servers or Windows test environments.
Commit-bounded diff parsing
Utilized targeted git diff-tree queries with commit ranges rather than unindexed folder comparisons, reducing file detection time to milliseconds even in repositories with thousands of files.
Extensible pre-build hooks
Supported optional build triggers (such as frontend bundling or static asset collection) directly prior to packaging, ensuring server-ready dist folders are packaged in one pipeline.
Engineering Contributions
Product Conception & Core Build
Identified the workflow pain, formulated the solution, and built the original Flutter desktop product and UI from scratch.
Git Change Detection Engine
Implemented diff-tree analysis using the native Git CLI to accurately isolate modified, added, and deleted files between selected commits.
Subtree Preservation Packaging
Engineered recursive folder packaging that mirrors exact relative project paths into the target deployment bundle.
Persistent Workflow State
Implemented workspace path memory and project-specific export preferences so repetitive deployments require zero re-configuration.
Technologies & Core Stack
Flutter • Dart • Git CLI • Desktop • DevOps Tooling