Eu24 Web
Project Deployment
π§Ύ Overview
This document outlines the Git tagβbased deployment process for the project, which consists of a frontend-only application.
Deployments are triggered via Git tags pushed using GitKraken, with different tag formats for each environment and platform:
- Vercel β Environments:
feature,develop,staging - Google Cloud Platform (GCP) β Environments:
feature,develop,staging,pre-prod,prod
π§° Tools Used
- GitKraken β Git client used to push tags
- Vercel β Hosts frontend for testing environments
- GCP β Hosts frontend in staging, pre-prod, and production
- CI/CD Pipelines:
bundle_size_and_deployto check bundle size on feature tag creationbenchmarks_and_automated_teststriggered after production release to run performance and automated tests
π Deployment Strategy
Deployment is fully automated and triggered by pushing Git tags. Each environment listens for tags that follow a specific format.
π Tagging Conventions
β
Vercel Tags
- Format:
feature_devops,dev-X.Y.Z,staging-X.Y.Z- Release Candidate Format for Staging:
staging-X.Y.Z-rcX
- CI/CD Pipeline β
bundle_size_and_deployto check bundle size on feature tag creation
| Environment | Tag Format Example | URL |
|---|---|---|
| Feature | feature_devops | https://ts-eu24-feature-*.ventrox.com |
| Develop | dev/1.1.1 | ts-eu24-develop.ventrox.com |
| Staging | staging/1.2.0 | ts-eu24-staging.ventrox.com |
βοΈ GCP Tags
- Format:
feature-X.Y.Z,dev-X.Y.Z,staging-X.Y.Z- For Pre-Prod and Prod: just
X.Y.Z - Release Candidate Format for Staging:
staging-X.Y.Z-rcX
Tag Usage:
| Environment | Tag Format | Example | URL |
|---|---|---|---|
| Feature | feature-X.Y.Z | feature-1.0.0 | website-feature.gke.pre-prod.nl.toolstation.dev |
| Develop | dev-X.Y.Z | develop-1.1.1 | website-dev.gke.pre-prod.nl.toolstation.dev |
| Staging | staging-X.Y.Z | staging-1.2.0 | website-staging.gke.pre-prod.nl.toolstation.dev |
| Pre-Prod | X.Y.Z | 1.1.1 | www.pre-prod.nl.toolstation.dev |
| Production | X.Y.Z | 1.1.1 | www.toolstation.nl |
β οΈ No separate
prod-tag is required. The client promotes the same version deployed to Pre-Prod.
π·οΈ Tagging Workflow in GitKraken
- Right-click on the commit to deploy.
- Click Create Tag.
- Enter the tag name using the appropriate format.
- Click Push Tag to Origin.
Example: Pre-Prod β Prod
# Step 1: Create and push tag to deploy to Pre-Prod
Tag: 1.1.1
# Step 2: Client reviews and approves in Pre-Prod
# Step 3: Client promotes same tag to Prod (manually)
Key Updates to the benchmarks_and_automated_tests Pipeline:
- Tag Format: The tag
prod-devops/x.x.x-test-1is created after production deployment. - Purpose: This pipeline runs benchmark and automated tests on the production deployment to ensure performance and correctness.
- Trigger Action: The pipeline is triggered by pushing the
prod-devops/x.x.x-test-1tag, which initiates the test suite.
π Build Monitoring Links
You can check the build status and logs directly from the deployment platforms:
π§ Vercel Build Dashboard
βοΈ GCP Cloud Build Logs
You may need appropriate permissions to access the above dashboards.
β οΈ Important Notes
- β
Use Semantic Versioning: Tag using the
MAJOR.MINOR.PATCHformat (e.g.,1.2.3) - π Do not overwrite tags: Each tag should represent a unique, stable release
- π Prod uses the same tag as Pre-Prod: No new tag is needed for Prod; the client promotes the exact same version deployed to Pre-Prod (e.g.,
1.1.1) - π Client Approval Required: Only after approval in Pre-Prod can the version be promoted to Production
- π§ͺ Test before tagging: Ensure the version is stable and verified in staging