-
Notifications
You must be signed in to change notification settings - Fork 105
feat: Added Deployment v2 pipeline #521
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This pull request introduces a new modular GitHub Actions workflow system (v2) for deploying, testing, and managing Azure-based infrastructure. The changes establish a reusable workflow architecture that separates concerns into distinct job-specific workflows orchestrated by a central coordinator.
Key changes:
- Added a central orchestrator workflow that coordinates deployment, testing, notification, and cleanup jobs with configurable inputs for Azure regions, WAF/EXP toggles, and test suite selection
- Introduced modular job workflows for deployment, testing, cleanup, and notifications to improve maintainability and reusability
- Enhanced infrastructure configuration to support separate Azure OpenAI location specification distinct from the main infrastructure location
Reviewed changes
Copilot reviewed 10 out of 10 changed files in this pull request and generated 19 comments.
Show a summary per file
| File | Description |
|---|---|
.github/workflows/deploy-windows.yml |
Entry point workflow that triggers on push, schedule, or manual dispatch and delegates to the orchestrator |
.github/workflows/deploy-orchestrator.yml |
Central coordinator that manages the execution flow of deploy, test, notification, and cleanup jobs |
.github/workflows/job-deploy.yml |
Handles Azure setup including quota checks, resource group creation, and configuration preparation |
.github/workflows/job-deploy-windows.yml |
Executes deployment steps including Azure/Kubernetes/Helm setup, azd deployment, and health validation |
.github/workflows/job-cleanup-deployment.yml |
Manages resource group cleanup with asynchronous deletion and job summary reporting |
.github/workflows/job-send-notification.yml |
Sends email notifications for various deployment and test outcomes via Logic App integration |
.github/workflows/test-automation-v2.yml |
Runs end-to-end tests with retry logic and generates detailed test reports |
infra/main.parameters.json |
Adds aiDeploymentsLocation parameter for separate OpenAI resource location configuration |
infra/main.waf.parameters.json |
Adds aiDeploymentsLocation parameter for WAF-enabled deployments |
docs/CustomizingAzdParameters.md |
Documents the new AZURE_ENV_OPENAI_LOCATION parameter for OpenAI resource placement |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
Copilot reviewed 10 out of 10 changed files in this pull request and generated 11 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Purpose
This pull request introduces a new, modular GitHub Actions workflow system for deploying, testing, and cleaning up Azure-based resources, with a focus on orchestrating deployments and supporting Linux-based infrastructure. The changes add several reusable workflow files that can be composed together, improving maintainability and flexibility for different deployment scenarios.
Key changes include:
New Orchestrator and Workflow Structure
Added a central orchestrator workflow (
deploy-orchestrator.yml) that coordinates the deployment, end-to-end testing, notification, and cleanup jobs, with support for configurable inputs such as Azure region, resource group, WAF/EXP toggles, and test suite selection. This workflow delegates actual work to job-specific workflow files for modularity.Introduced a new top-level workflow (
deploy-windows.yml) designed to trigger deployments for Linux-based infrastructure on specific branches, schedules, or manual dispatch. It collects user inputs and invokes the orchestrator workflow.Modular Job Workflows
Added a reusable deployment job for Linux(
job-deploy-windows.yml) that handles all deployment steps, including parameter configuration, Azure/Kubernetes/Helm setup, resource provisioning, health checks, post-deployment scripting, and job summary reporting. Outputs the deployed web app URL for downstream jobs.Added a cleanup job workflow (
job-cleanup-deployment.yml) that logs into Azure, deletes the specified resource group asynchronously, handles logout, and generates a cleanup summary, supporting robust teardown of test environments.These changes lay the groundwork for a more maintainable, flexible, and observable CI/CD pipeline for Azure deployments.
Most important changes:
Workflow Orchestration and Structure
deploy-orchestrator.ymlto coordinate deployment, testing, notification, and cleanup jobs, using modular workflow calls and supporting extensive input customization.deploy-windows.ymlas a trigger workflow for Linux-based deployments, supporting branch, schedule, and manual triggers, and passing parameters to the orchestrator.Modular Job Definitions
job-deploy-windows.ymlto encapsulate all deployment logic for Linux environments, including environment setup, Azure/Kubernetes/Helm configuration, deployment execution, health checks, post-deployment steps, and summary reporting.job-cleanup-deployment.ymlfor resource group cleanup, including Azure authentication, asynchronous deletion, logout, and job summary generation.Parameterization and Reporting
Does this introduce a breaking change?