Skip to content

Conversation

@tjsullivan1
Copy link
Contributor

This is v1 of the infrastructure automation pipeline. Currently, it runs a simplistic version of the pipeline with terraform in a simple environment. It will build the docker images and push to Tim's docker hub for ease of use.

Future enhancements needed

  • Add full build out with CosmosDB
  • Add networking of components
  • Make sure bicep functions as well
  • Get the react app build in the pipeline instead of just the fast API version.

Key changes include:

1. Infrastructure Automation & Modularity

  • Added .github/workflows/infrastructure.yml to support both Terraform and Bicep deployments, with dynamic environment selection and integration test preparation. This workflow is reusable via workflow_call and supports both manual and automated triggers.
  • Introduced .github/workflows/destroy.yml for automated infrastructure teardown using Terraform or Bicep, parameterized by environment and IaC tool.

2. Orchestrated Deployment Pipeline

  • Added .github/workflows/orchestrate.yml to coordinate the end-to-end deployment process: preflight checks, container builds, infrastructure deployment, and optional teardown, all parameterized by target environment.

3. Container Build Workflow Improvements

  • Updated .github/workflows/docker-fastapi.yml and .github/workflows/docker-mcp.yml to accept environment inputs via workflow_call, enabling dynamic tagging and better integration with orchestrated workflows. [1] [2]

4. Documentation & Guidance

  • Added .github/workflows/readme.md to document the new infrastructure deployment workflow, required environment variables, and Azure setup steps.

5. Cleanup

  • Removed the obsolete .github/workflows/documentation-checks.yml workflow for link checking, as it is no longer relevant to the current CI/CD process.

@tjsullivan1
Copy link
Contributor Author

@james-tn / @DCMattyG - assigning you as reviewers. Please make sure the PR checks complete successfully first.

Updated Key Vault role assignment to use user assigned identity and added a user assigned managed identity resource for the backend container app.
@tjsullivan1
Copy link
Contributor Author

Looks like I finally got it polished up. Tests might still be a little fragile from what I can tell, but we can now run through a process of automatically building containers, deploying them, and validating that none of our expected tests have broken.

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.

4 participants