Version Management
The project includes a version management script at scripts/version.sh with the following commands:
# Get current version
./scripts/version.sh get
# Check if current version is a dev version
./scripts/version.sh is-dev
# Get next dev version (e.g., 1.2.0 -> 1.3.0-dev)
./scripts/version.sh bump-dev
CI/CD Workflows
The project uses reusable GitHub Actions workflows for consistent building and releasing:
Build Workflows
- Located in
.github/workflows/build-{backend,frontend}.yml - Reusable workflows for building Docker images
- Support both development and release builds
- Handle image tagging and pushing to GitHub Container Registry
- Used by both dev builds and releases
Release Workflow
- Located in
.github/workflows/release.yml - Triggers on VERSION file changes in release branches
- Creates Git tags and GitHub Releases
- Reuses build workflows for consistent image building
- Handles version bumping on main after releases
Automated Actions
The following actions happen automatically:
-
On push to
mainorbuild-dev/*:- Triggers build workflows
- Images tagged with commit SHA
- Images pushed to GitHub Container Registry
-
On merge to
release/*branch with VERSION change:- Creates Git tag and GitHub Release
- Triggers build workflows with version tag
- If previous version was
-dev:- Creates PR to bump main to next dev version
Version Format
- Development:
X.Y.Z-dev - Release:
X.Y.Z - Bugfix:
X.Y.Z+1
Notes
- Only one active release branch is supported at a time
- All changes must go through PR review process