infra/ci: Add GitHub Actions workflow for staging and production deployment (#256)

## Motivation and Context

- Enable all contributors to manage the infrastructure
- Enable deployments without error-prone manual intervention

## How Has This Been Tested?

Tested by deploying from this test branch, getting CI green and seeing
changes were applied

## Breaking Changes
<!-- Will users need to update their code or configurations? -->

## Types of changes
<!-- What types of changes does your code introduce? Put an `x` in all
the boxes that apply: -->
- [ ] Bug fix (non-breaking change which fixes an issue)
- [x] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Documentation update

## Checklist
<!-- Go over all the following points, and put an `x` in all the boxes
that apply. -->
- [x] I have read the [MCP
Documentation](https://modelcontextprotocol.io)
- [x] My code follows the repository's style guidelines
- [x] New and existing tests pass locally
- [x] I have added appropriate error handling
- [ ] I have added or updated documentation as needed
This commit is contained in:
adam jones 2025-08-13 11:03:10 +01:00 • committed by GitHub
commit ff3edee794
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -1,4 +1,4 @@
.PHONY: help build local-preview local-up staging-preview staging-up prod-preview prod-up
.PHONY: help build local-login local-preview local-up staging-login staging-preview staging-up prod-login prod-preview prod-up
# Default target
help: ## Show this help message
@ -10,22 +10,31 @@ build: ## Build the Pulumi Go program
go build
# Local stack commands
local-preview: build ## Preview local infrastructure changes
local-login: ## Login to local Pulumi backend
pulumi login --local
local-preview: build local-login ## Preview local infrastructure changes
PULUMI_CONFIG_PASSPHRASE="" pulumi preview --stack local
local-up: build ## Deploy local infrastructure
local-up: build local-login ## Deploy local infrastructure
PULUMI_CONFIG_PASSPHRASE="" pulumi up --yes --stack local
# Staging stack commands
staging-preview: build ## Preview staging infrastructure changes
staging-login: ## Login to staging Pulumi backend
pulumi login gs://mcp-registry-staging-pulumi-state
staging-preview: build staging-login ## Preview staging infrastructure changes
PULUMI_CONFIG_PASSPHRASE_FILE=passphrase.staging.txt pulumi preview --stack gcpStaging
staging-up: build ## Deploy staging infrastructure
staging-up: build staging-login ## Deploy staging infrastructure
PULUMI_CONFIG_PASSPHRASE_FILE=passphrase.staging.txt pulumi up --yes --stack gcpStaging
# Production stack commands
prod-preview: build ## Preview production infrastructure changes
prod-login: ## Login to production Pulumi backend
pulumi login gs://mcp-registry-prod-pulumi-state
prod-preview: build prod-login ## Preview production infrastructure changes
PULUMI_CONFIG_PASSPHRASE_FILE=passphrase.prod.txt pulumi preview --stack gcpProd
prod-up: build ## Deploy production infrastructure
prod-up: build prod-login ## Deploy production infrastructure
PULUMI_CONFIG_PASSPHRASE_FILE=passphrase.prod.txt pulumi up --yes --stack gcpProd