# Release Flows

This is the shortest release-owner view.
It assumes the human uses GitHub pages for releases, Actions, and PR review.
If the release work will be delegated to Codex, the human only needs this section plus the agent-oriented documents in this directory.

## Dev release

1. Choose the target commit SHA on `main`.
2. Confirm the four dev image workflows have run successfully for that SHA:
   - `dev-ci-global.yaml`
   - `dev-ci-regional.yaml`
   - `dev-ci-pipeline.yaml`
   - `dev-ci-prometheus.yaml`
3. Submit and merge the required dev manifest PRs:
   - global control plane:
     - update `global/deployment/kustomize/envs/dev/kustomization.yaml`
   - regional control plane:
     - update the three dev regional kustomization files for AWS, GCP, and Azure
   - OTel push pipeline:
     - update `global/deployment/kustomize/envs/dev/configmap.yaml`
   - Prometheus pull pipeline:
     - update the three dev Prometheus cloud-variant kustomization files
4. Run deploy workflows from `main`:
   - global deploy: `universal-deploy-global.yaml` with `env=dev`, diff then apply
   - regional deploy: `dev-deploy-regional.yaml`, diff then apply
   - Prometheus regional deploy: `dev-deploy-prometheus-regional.yaml`, diff then apply
5. Perform minimum dev checks and, if needed, reconcile or roll existing OTel collector deployments after the global config change.

## Prod release

1. Review the delta from the previous GitHub Release and confirm the scope.
2. Create a new GitHub Release with a `release/v*` tag.
3. Confirm these four prod image workflows started or finished successfully:
   - `prod-ci-global.yaml`
   - `prod-ci-regional.yaml`
   - `prod-ci-pipeline.yaml`
   - `prod-ci-prometheus.yaml`
4. Submit and merge the required manifest PRs:
   - global control plane:
     - update `global/deployment/kustomize/envs/prod/kustomization.yaml`
   - regional control plane:
     - update the three prod regional kustomization files for AWS, GCP, and Azure
   - OTel push pipeline:
     - update `global/deployment/kustomize/envs/prod/configmap.yaml`
   - Prometheus pull pipeline:
     - update the three prod Prometheus cloud-variant kustomization files
5. Run deploy workflows from `main`:
   - global deploy: diff, then apply
   - regional deploy: diff, then apply
   - Prometheus regional deploy: diff, then apply
6. Perform minimum production checks and, if needed, manually roll existing OTel collector deployments to the new image.

## Prod hotfix release

1. Build from a hotfix branch with `workflow_dispatch`.
2. Apply the same manifest and deploy flow as a normal prod release.
3. After production is stable, merge the hotfix back to `main`.
4. Create a release tag and GitHub Release from the merged commit so production history remains traceable.

## What a human engineer should ask the agent to do

Useful requests:

- "Release global dev to SHA `<sha>`."
- "Release dev global, regional, OTel pipeline, and Prometheus to SHA `<sha>` and report which deploy workflows are actually wired."
- "Release global prod using tag `release/v2026-03-24`."
- "Release regional prod to SHA `<sha>` and sync the image to GCP and Azure."
- "Release OTel pipeline prod, update the global manager config, and roll the existing managed collectors."
- "Release Prometheus prod from tag `release/v2026-03-24` and run the regional deploy workflow."
- "Do a full prod release and report every run ID, PR, changed file, and production check result."
