svengeance / Husky

Modernizing the way developers think about installers
3 stars 0 forks source link

[Feature] Figure Out Execution Pattern #5

Closed svengeance closed 3 years ago

svengeance commented 3 years ago

Context

There should be a pattern for executing the installer that respects a multi-step approach.

Elevator Pitch

Mirroring the approach of CI/CD pipelines and their tiered approach (run, stage, job, task), we should let users logically group together the execution plan of their installer. Depending on the approach, we can then reset the app state between tiers (think service scoping), we can run stages in parallel, we can encapsulate logic & data/variables to specific stages (and explicitly share between), and we can group our logging and metrics by stage.

Interested Users

End Users

svengeance commented 3 years ago

This has been identified and implemented about here: 0ace055f57bdd7d7fbb9f68fd66d8c8b49ad3055

HuskyInstaller.cs is the top-level execution engine that is responsible for taking a fully validated HuskyWorkflow and executing it, iterating over each stage/job/task.

In the future we will need to add better support for conditional execution of tasks, install/update/uninstall specific tasks, and other such dynamic movement.