eec8c28fb3
Go Benchmark / Performance Regression Check (push) Has been cancelled
Cerberus Integration / Cerberus Security Stack Integration (push) Has been cancelled
Upload Coverage to Codecov / Backend Codecov Upload (push) Has been cancelled
Upload Coverage to Codecov / Frontend Codecov Upload (push) Has been cancelled
CodeQL - Analyze / CodeQL analysis (go) (push) Has been cancelled
CodeQL - Analyze / CodeQL analysis (javascript-typescript) (push) Has been cancelled
CrowdSec Integration / CrowdSec Bouncer Integration (push) Has been cancelled
Docker Build, Publish & Test / build-and-push (push) Has been cancelled
Quality Checks / Auth Route Protection Contract (push) Has been cancelled
Quality Checks / Codecov Trigger/Comment Parity Guard (push) Has been cancelled
Quality Checks / Backend (Go) (push) Has been cancelled
Quality Checks / Frontend (React) (push) Has been cancelled
Rate Limit integration / Rate Limiting Integration (push) Has been cancelled
Security Scan (PR) / Trivy Binary Scan (push) Has been cancelled
Supply Chain Verification (PR) / Verify Supply Chain (push) Has been cancelled
WAF integration / Coraza WAF Integration (push) Has been cancelled
Docker Build, Publish & Test / Security Scan PR Image (push) Has been cancelled
Repo Health Check / Repo health (push) Has been cancelled
History Rewrite Dry-Run / Dry-run preview for history rewrite (push) Has been cancelled
Prune Renovate Branches / prune (push) Has been cancelled
Renovate / renovate (push) Has been cancelled
Nightly Build & Package / sync-development-to-nightly (push) Has been cancelled
Nightly Build & Package / Trigger Nightly Validation Workflows (push) Has been cancelled
Nightly Build & Package / build-and-push-nightly (push) Has been cancelled
Nightly Build & Package / test-nightly-image (push) Has been cancelled
Nightly Build & Package / verify-nightly-supply-chain (push) Has been cancelled
Update GeoLite2 Checksum / update-checksum (push) Has been cancelled
Container Registry Prune / prune-ghcr (push) Has been cancelled
Container Registry Prune / prune-dockerhub (push) Has been cancelled
Container Registry Prune / summarize (push) Has been cancelled
Supply Chain Verification / Verify SBOM (push) Has been cancelled
Supply Chain Verification / Verify Release Artifacts (push) Has been cancelled
Supply Chain Verification / Verify Docker Image Supply Chain (push) Has been cancelled
Monitor Caddy Major Release / check-caddy-major (push) Has been cancelled
Weekly Nightly to Main Promotion / Verify Nightly Branch Health (push) Has been cancelled
Weekly Nightly to Main Promotion / Create Promotion PR (push) Has been cancelled
Weekly Nightly to Main Promotion / Trigger Missing Required Checks (push) Has been cancelled
Weekly Nightly to Main Promotion / Notify on Failure (push) Has been cancelled
Weekly Nightly to Main Promotion / Workflow Summary (push) Has been cancelled
Weekly Security Rebuild / Security Rebuild & Scan (push) Has been cancelled
143 lines
3.3 KiB
Markdown
Executable File
143 lines
3.3 KiB
Markdown
Executable File
---
|
|
name: "utility-version-check"
|
|
version: "1.0.0"
|
|
description: "Validates that VERSION.md/version file matches the latest git tag for release consistency"
|
|
author: "Charon Project"
|
|
license: "MIT"
|
|
tags:
|
|
- "utility"
|
|
- "versioning"
|
|
- "validation"
|
|
- "git"
|
|
compatibility:
|
|
os:
|
|
- "linux"
|
|
- "darwin"
|
|
shells:
|
|
- "bash"
|
|
requirements:
|
|
- name: "git"
|
|
version: ">=2.0"
|
|
optional: false
|
|
environment_variables: []
|
|
parameters: []
|
|
outputs:
|
|
- name: "exit_code"
|
|
type: "integer"
|
|
description: "0 if version matches, 1 if mismatch or error"
|
|
metadata:
|
|
category: "utility"
|
|
subcategory: "versioning"
|
|
execution_time: "short"
|
|
risk_level: "low"
|
|
ci_cd_safe: true
|
|
requires_network: false
|
|
idempotent: true
|
|
---
|
|
|
|
# Utility: Version Check
|
|
|
|
## Overview
|
|
|
|
Validates that the version specified in `.version` file matches the latest git tag. This ensures version consistency across the codebase and prevents version drift during releases. The check is used in CI/CD to enforce version tagging discipline.
|
|
|
|
## Prerequisites
|
|
|
|
- Git repository with tags
|
|
- `.version` file in repository root (optional)
|
|
|
|
## Usage
|
|
|
|
### Basic Usage
|
|
|
|
```bash
|
|
.github/skills/utility-version-check-scripts/run.sh
|
|
```
|
|
|
|
### Via Skill Runner
|
|
|
|
```bash
|
|
.github/skills/scripts/skill-runner.sh utility-version-check
|
|
```
|
|
|
|
### Via VS Code Task
|
|
|
|
Use the task: **Utility: Check Version Match Tag**
|
|
|
|
## Parameters
|
|
|
|
This skill accepts no parameters.
|
|
|
|
## Environment Variables
|
|
|
|
This skill requires no environment variables.
|
|
|
|
## Outputs
|
|
|
|
- **Success Exit Code**: 0 - Version matches latest tag or no tags exist
|
|
- **Error Exit Codes**: 1 - Version mismatch detected
|
|
- **Console Output**: Validation result message
|
|
|
|
### Success Output Example
|
|
|
|
```
|
|
OK: .version matches latest Git tag v0.3.0-beta.2
|
|
```
|
|
|
|
### Error Output Example
|
|
|
|
```
|
|
ERROR: .version (0.3.0-beta.3) does not match latest Git tag (v0.3.0-beta.2)
|
|
To sync, either update .version or tag with 'v0.3.0-beta.3'
|
|
```
|
|
|
|
## Examples
|
|
|
|
### Example 1: Check Version During Release
|
|
|
|
```bash
|
|
# Before tagging a new release
|
|
.github/skills/utility-version-check-scripts/run.sh
|
|
```
|
|
|
|
### Example 2: CI/CD Integration
|
|
|
|
```yaml
|
|
- name: Validate Version
|
|
run: .github/skills/scripts/skill-runner.sh utility-version-check
|
|
```
|
|
|
|
## Version Normalization
|
|
|
|
The skill normalizes both the `.version` file content and git tag by:
|
|
- Stripping leading `v` prefix (e.g., `v1.0.0` → `1.0.0`)
|
|
- Removing newline and carriage return characters
|
|
- Comparing normalized versions
|
|
|
|
This allows flexibility in tagging conventions while ensuring consistency.
|
|
|
|
## Error Handling
|
|
|
|
- **No .version file**: Exits with 0 (skip check)
|
|
- **No git tags**: Exits with 0 (skip check, allows commits before first tag)
|
|
- **Version mismatch**: Exits with 1 and provides guidance
|
|
- **Git errors**: Script fails with appropriate error message
|
|
|
|
## Related Skills
|
|
|
|
- [utility-bump-beta](./utility-bump-beta.SKILL.md) - Increment beta version
|
|
- [build-check-go](../build-check-go.SKILL.md) - Verify Go build integrity
|
|
|
|
## Notes
|
|
|
|
- This check is **non-blocking** when no tags exist (allows initial development)
|
|
- Version format is flexible (supports semver, beta, alpha suffixes)
|
|
- Used in CI/CD to prevent merging PRs with version mismatches
|
|
- Part of the release automation workflow
|
|
|
|
---
|
|
|
|
**Last Updated**: 2025-12-20
|
|
**Maintained by**: Charon Project
|
|
**Source**: `scripts/check-version-match-tag.sh`
|