Skip to content

Commit 93eb51f

Browse files
committed
(ELI-466) updating docs
1 parent b910a97 commit 93eb51f

File tree

2 files changed

+34
-29
lines changed

2 files changed

+34
-29
lines changed

DEPLOYMENT.md

Lines changed: 34 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@
33
This repo uses GitHub Actions to deploy through four environments:
44

55
- **Dev** – continuous integration deploys on push to `main`. Creates a `Dev-<timestamp>` tag.
6-
- **test**manual deploy of an existing tag (usually a `Dev-<timestamp>` tag). No releases or SemVer tags.
7-
- **Preprod**manual deploy that **cuts/bumps a Release Candidate (RC)** tag (`vX.Y.Z-rc.N`) and creates a **GitHub pre-release**.
6+
- **test**Auto deploys the same sha that just deployed to dev (but waits for approval). No releases or SemVer tags.
7+
- **Preprod**Auto deploys the same sha that just deployed to test (but waits for approval) **cuts/bumps a Release Candidate (RC)** tag (`vX.Y.Z-rc.N`) and creates a **GitHub pre-release**.
88
- **prod** – manual promotion of a specific RC to a **final SemVer tag** (`vX.Y.Z`) and a **GitHub Release**.
99

1010
Releases are immutable and auditable:
@@ -16,13 +16,13 @@ Releases are immutable and auditable:
1616

1717
## Workflow Map
1818

19-
| Stage | Workflow file | Trigger | What it does | Tags / Releases |
20-
|------------------|-------------------------------------------------------------------------|---------------------------------------|-----------------------------------------------------------------|---------------------------------------------|
21-
| **Pull Request** | `.github/workflows/cicd-1-pull-request.yml` | `pull_request` (opened/sync/reopened) | Commit/Test/Build/Acceptance stages | No tags/releases |
22-
| **Dev** | `.github/workflows/cicd-2-publish.yml` | `push` to `main` | Builds & deploys to Dev | Creates and pushes `Dev-YYYYMMDDHHMMSS` tag |
23-
| **Test** | `.github/workflows/cicd-3-test.yml` | Manual (`workflow_dispatch`) | Deploys the chosen tag to test | No tags, no releases |
24-
| **Preprod** | `.github/workflows/cicd-4-Preprod-deploy.yml` → calls `base-deploy.yml` | Manual (`workflow_dispatch`) | Deploys chosen ref and **creates/bumps an RC tag**; pre-release | `vX.Y.Z-rc.N` + GitHub **pre-release** |
25-
| **Prod** | `.github/workflows/cicd-5-prod-deploy.yml` → calls `base-deploy.yml` | Manual (`workflow_dispatch`) | Promotes a specific RC to final | `vX.Y.Z` + GitHub **Release** |
19+
| Stage | Workflow file | Trigger | What it does | Tags / Releases |
20+
|------------------|-------------------------------------------------------------------------|---------------------------------------|-------------------------------------------------------------------|---------------------------------------------|
21+
| **Pull Request** | `.github/workflows/cicd-1-pull-request.yml` | `pull_request` (opened/sync/reopened) | Commit/Test/Build/Acceptance stages | No tags/releases |
22+
| **Dev** | `.github/workflows/cicd-2-publish.yml` | `push` to `main` | Builds & deploys to Dev | Creates and pushes `Dev-YYYYMMDDHHMMSS` tag |
23+
| **Test** | `.github/workflows/cicd-3-test.yml` | Auto (`workflow_run`) | Deploys the sha from the run that triggered it | No tags, no releases |
24+
| **Preprod** | `.github/workflows/cicd-4-Preprod-deploy.yml` → calls `base-deploy.yml` | Auto (`workflow_run`) | Deploys the same sha and **creates/bumps an RC tag**; pre-release | `vX.Y.Z-rc.N` + GitHub **pre-release** |
25+
| **Prod** | `.github/workflows/cicd-5-prod-deploy.yml` → calls `base-deploy.yml` | Manual (`workflow_dispatch`) | Promotes a specific RC to final | `vX.Y.Z` + GitHub **Release** |
2626

2727
> **Note:** The Preprod/prod entry workflows are thin wrappers around a **reusable** workflow (`base-deploy.yml`).
2828
@@ -58,44 +58,47 @@ Releases are immutable and auditable:
5858
- Creates a timestamped **Dev tag**: `Dev-YYYYMMDDHHMMSS`
5959
- No SemVer, no GitHub Release.
6060

61+
- Can be manually deployed to flow a candidate though piepline outside of merge
62+
6163
**Why:** fast feedback and a stable pointer (the Dev tag) you can later promote to **test** or use as the **Preprod ref**.
6264

6365
---
6466

65-
## Test Deployment (manual, by tag)
67+
## Test Deployment
6668

6769
**File:** `CI/CD deploy to TEST`
68-
**Trigger:** manual (`workflow_dispatch`)
70+
**Trigger:** Auto (`workflow_run`)
6971

7072
### Inputs
7173

72-
- `tag`: the ref to deploy (e.g., a **Dev** tag created by the Dev workflow).
73-
- `environment`: fixed to `test`.
74+
- taken from previous workflow
7475

7576
### Behavior
7677

77-
- Checks out the provided tag, builds, and deploys to **test**.
78+
- Waits for approval to continue
79+
- Checks out the ref, builds, and deploys to **test**.
7880
- **No new tags** created. **No GitHub Releases** created.
7981

80-
### Recommended usage
81-
82-
- Deploy the **same commit** that was verified in Dev by supplying the `Dev-<timestamp>` tag here.
83-
8482
---
8583

8684
## Preprod (Release Candidates)
8785

8886
**Entry workflow:** `cicd-4-Preprod-deploy.yml` → calls `base-deploy.yml`
89-
**Trigger:** manual (`workflow_dispatch`)
87+
**Trigger:** Auto (`workflow_run`) / Manual (`workflow_dispatch`)
9088

9189
### Inputs
9290

91+
- If Auto then no inputs needed at this point
92+
- Auto will determine the release type from the label given to the PR linked to the commit being promoted
93+
- If no Label is given it defaults to rc
94+
- If Manual:
9395
- **`ref`**: branch/tag/SHA to deploy (`Dev-<timestamp>` tag).
9496
- **`release_type`**: one of:
9597
- `patch` – start a new **patch** series → `vX.Y.(Z+1)-rc.1`
9698
- `minor` – start a new **minor** series → `vX.(Y+1).0-rc.1`
9799
- `major` – start a new **major** series → `v(X+1).0.0-rc.1`
98100
- `rc`**keep the same base** version and cut the **next RC** (e.g. `-rc.1``-rc.2`)
101+
- **`reason`**: A short description of why manual is being used
99102

100103
### Behavior
101104

@@ -105,6 +108,8 @@ Releases are immutable and auditable:
105108

106109
### When to use which `release_type`
107110

111+
- We should not normally be manually deploying, the auto deploy should take care of it
112+
- Manual deploy to brake glass
108113
- Use **`patch`/`minor`/`major`** when starting a **new base version** (first RC becomes `-rc.1`).
109114
- Use **`rc`** when you need another candidate for the **same base** (`-rc.N+1`).
110115

@@ -130,15 +135,16 @@ Releases are immutable and auditable:
130135

131136
## Decision Guide (what to pick, when)
132137

133-
| Situation | Workflow | Input: `ref` | Input: `release_type` | Result |
134-
|-------------------------------------------------|----------------------|------------------------------|-----------------------|----------------------------------------------|
135-
| Deploy automatically after merge to main | **Dev** (auto) | `main` (implicit) | n/a | Deploys to Dev, creates `Dev-YYYYMMDDHHMMSS` |
136-
| Deploy an existing build to test | **Test** (manual) | a tag (e.g. `Dev-20250817…`) | n/a | Deploys to test (no tags/releases) |
137-
| Start a **new patch release** into Preprod | **Preprod** (manual) | branch/tag/SHA | `patch` | `vX.Y.(Z+1)-rc.1` + pre-release |
138-
| Start a **new minor release** into Preprod | **Preprod** | branch/tag/SHA | `minor` | `vX.(Y+1).0-rc.1` + pre-release |
139-
| Start a **new major release** into Preprod | **Preprod** | branch/tag/SHA | `major` | `v(X+1).0.0-rc.1` + pre-release |
140-
| Cut **another candidate** for the **same base** | **Preprod** | branch/tag/SHA (same train) | `rc` | `vX.Y.Z-rc.N+1` + pre-release |
141-
| Promote a **tested RC** to production | **Prod** (manual) | RC tag (e.g. `v1.4.0-rc.2`) | n/a | `v1.4.0` + GitHub Release |
138+
| Situation | Workflow | Input: `ref` | Input: `release_type` | Result |
139+
|------------------------------------------------|----------------------|-----------------------------|-----------------------|----------------------------------------------|
140+
| Deploy automatically after merge to main | **Dev** (auto) | `main` (implicit) | n/a | Deploys to Dev, creates `Dev-YYYYMMDDHHMMSS` |
141+
| Deploy an existing build to test | **Test** (auto) | n/a | n/a | Deploys to test (no tags/releases) |
142+
| Preprod deploy | **Preprod** (auto) | n/a | n/a | tags according to pr label + pre-release |
143+
| Break Glass **new patch release** into Preprod | **Preprod** (manual) | branch/tag/SHA | `patch` | `vX.Y.(Z+1)-rc.1` + pre-release |
144+
| Break Glass **new minor release** into Preprod | **Preprod** | branch/tag/SHA | `minor` | `vX.(Y+1).0-rc.1` + pre-release |
145+
| Break Glass **new major release** into Preprod | **Preprod** | branch/tag/SHA | `major` | `v(X+1).0.0-rc.1` + pre-release |
146+
| Break Glass **another candidate** | **Preprod** | branch/tag/SHA (same train) | `rc` | `vX.Y.Z-rc.N+1` + pre-release |
147+
| Promote a **tested RC** to production | **Prod** (manual) | RC tag (e.g. `v1.4.0-rc.2`) | n/a | `v1.4.0` + GitHub Release |
142148

143149
---
144150

scripts/workflow/ci_utils.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
"""
77

88
from __future__ import annotations
9-
import json
109
import os
1110
import subprocess
1211
import sys

0 commit comments

Comments
 (0)