You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This repository demonstrates a complete CI/CD solution for multi-environment deployments, integrating the [**zerv**](https://github.com/wislertt/zerv)versioning tool with GitHub Actions for automated versioning and release workflows.
10
+
A demonstration of [**zerv**](https://github.com/wislertt/zerv)in action. Shows how to implement automated versioning for CI/CD pipelines, generating multiple formats (semver, PEP440, Docker tags) with flexible branching strategy framework.
10
11
11
12
## Overview
12
13
@@ -29,7 +30,7 @@ This repository demonstrates a complete CI/CD solution for multi-environment dep
29
30
1. Fork this repository
30
31
2. Install zerv locally for testing
31
32
3. Create a PR to test the workflow
32
-
4. Add `deploy-d`, `deploy-n`, or `deploy`labels to trigger deployments
@@ -49,6 +50,11 @@ This repository demonstrates a complete CI/CD solution for multi-environment dep
49
50
-**Version formats**: This repository demonstrates 3 formats: - Semver: For git repository tags and releases - PEP440: For Python package versions - Docker Tag: For container registry tags
50
51
- Note: This demo repository only echoes these formats as examples, but in a real deployment pipeline they would be used for their respective purposes.
51
52
- Note: Configure zerv to generate formats based on your deployment requirements and constraints. See [zerv documentation](https://github.com/wislertt/zerv) for all supported formats.
53
+
-**Deployment triggers**: Uses PR labels with configurable prefixes:
54
+
-`deploy-` prefix for environment-specific deployments (e.g., `deploy-d`, `deploy-n`)
55
+
-`deploy` for environment-less deployments (e.g., immutable releases)
56
+
-`pre-release` for creating release candidates with tagging
57
+
- These label prefixes can be configured to match your deployment naming conventions
52
58
53
59
## Branching Strategy Design
54
60
@@ -80,17 +86,17 @@ This repository demonstrates a complete CI/CD solution for multi-environment dep
80
86
The following scenarios demonstrate how the deployment flow works in practice:
81
87
82
88
-**Initial State**: Only the main branch exists. All environments (development, nonproduction, production) and environment-less deployments reference version `v1.1.2` from the main branch.
-**Feature Branch Deployment**: A `feature/1` branch is created with PR labels `deploy-n` and `deploy`. The nonproduction environment deploys version `v1.1.3-alpha.1.post.2` from the feature branch and becomes locked to it. Development and production remain on main branch `v1.1.2`. The environment-less deployment creates a new version `v1.1.3-alpha.1.post.2` without overriding previous versions.
-**Concurrent Feature Deployment**: While `feature/1` PR is active, a `feature/2` branch is created with PR labels `deploy-d`, `deploy-n`, and `deploy`. Nonproduction deployment fails due to being locked by `feature/1`. Development deploys successfully with version `v1.1.3-alpha.2.post3` from `feature/2`. Environment-less deployment creates another new version `v1.1.3-alpha.2.post.3` alongside the existing version.
## Branch Rules and Version Generation (Configurable)
92
98
93
-
This repository uses the default branch rules from `zerv flow` command. For complete implementation details, see the shared workflow at [zerv/.github/workflows/shared-zerv-versioning.yml](https://github.com/wislertt/zerv/blob/main/.github/workflows/shared-zerv-versioning.yml).
99
+
This repository uses the default branch rules from `zerv flow` command. For complete implementation details, see the [shared workflow](https://github.com/wislertt/zerv/blob/main/.github/workflows/shared-zerv-versioning.yml).
94
100
95
101
-**Feature branches** (default): Generate alpha pre-releases with branch-based identification
96
102
- Numbered feature branches (`feature/1/xyz`): Extracts number from branch name
0 commit comments