Modularize deployment workflows into independent triggerable components#60
Merged
Modularize deployment workflows into independent triggerable components#60
Conversation
Co-authored-by: fpittelo <3135901+fpittelo@users.noreply.github.com>
Co-authored-by: fpittelo <3135901+fpittelo@users.noreply.github.com>
Co-authored-by: fpittelo <3135901+fpittelo@users.noreply.github.com>
Co-authored-by: fpittelo <3135901+fpittelo@users.noreply.github.com>
Co-authored-by: fpittelo <3135901+fpittelo@users.noreply.github.com>
Copilot
AI
changed the title
[WIP] Add triggerable modular deployment workflows
Modularize deployment workflows into independent triggerable components
Nov 22, 2025
Contributor
There was a problem hiding this comment.
Pull request overview
This PR successfully modularizes the monolithic deployment and destroy workflows into independent, triggerable components, enabling efficient, granular control over infrastructure deployments. Instead of running backend creation, Terraform operations, and frontend builds sequentially on every deployment, teams can now trigger only the necessary components.
Key Changes:
- Created six independent workflows for deploying and destroying backend storage, infrastructure, and applications separately
- Converted existing deploy.yaml and destroy.yaml into orchestrators with optional component selection via boolean inputs
- Updated GitHub Actions from v3 to v4 across all workflows
- Added comprehensive documentation explaining workflow usage, dependencies, and best practices
Reviewed changes
Copilot reviewed 10 out of 10 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
.github/workflows/deploy-backend.yaml |
New workflow for creating Terraform state storage (Azure Storage Account/Container) |
.github/workflows/deploy-infra.yaml |
New workflow for Terraform init/apply operations on infrastructure resources |
.github/workflows/deploy-app.yaml |
New workflow for building and deploying frontend React application only |
.github/workflows/destroy-backend.yaml |
New workflow for destroying backend storage with state deletion warnings |
.github/workflows/destroy-infra.yaml |
New workflow for Terraform destroy operations on infrastructure |
.github/workflows/destroy-app.yaml |
New workflow for stopping Azure Web App deployment |
.github/workflows/deploy.yaml |
Updated to orchestrate modular workflows with conditional execution and optional component selection |
.github/workflows/destroy.yaml |
Updated to orchestrate destruction workflows with safe defaults (backend destroy defaults to false) |
.github/workflows/README.md |
Comprehensive documentation covering workflow architecture, usage scenarios, and troubleshooting |
WORKFLOW_MODULARIZATION_SUMMARY.md |
Implementation summary detailing technical decisions, testing considerations, and migration guidance |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The monolithic deploy.yaml workflow ran backend creation, Terraform operations, and frontend builds sequentially for every deployment, regardless of what actually changed.
Changes
New Independent Workflows
Updated Orchestrators
always()with result checks to handle skipped dependencies:Safety & Documentation
falsewith explicit warnings about state deletion.github/workflows/README.mdcovering common scenariosWorkflow Dependencies
Each workflow is independently triggerable via
workflow_dispatch. Orchestrators maintain backward compatibility while enabling granular control.Original prompt
✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.