Files
2026-09-21 10:14:57 +01:00

63 lines
2.4 KiB
YAML
Executable File

mode: 'absorb' # or 'increment'
blade-directive: version
current:
label: v
major: 1
minor: 1
patch: 41
prerelease:
buildmetadata:
commit: 100001
timestamp:
mode: absorb
year:
month:
day:
hour:
minute:
second:
timezone:
commit:
mode: absorb
length: 6
increment-by: 1
git:
from: 'local' # or "remote"
commit:
local: 'git rev-parse --verify HEAD'
remote: 'git ls-remote {$repository}'
branch: refs/heads/master
repository: '' ### you can use config() to get it here: {{ config('version.git.remote.repository') }}. Do not use env()
version:
local: 'git describe'
remote: 'git ls-remote {$repository} | grep tags/ | grep -v {} | cut -d / -f 3 | sort --version-sort | tail -1'
matcher: '/^(?P<label>[v|V]*[er]*[sion]*)[\.|\s]*(?P<major>0|[1-9]\d*)\.(?P<minor>0|[1-9]\d*)\.(?P<patch>0|[1-9]\d*)(?:-(?P<prerelease>(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+(?P<buildmetadata>[0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$/'
timestamp:
local: 'git show -s --format=%ci'
remote: 'git show -s --format=%ci origin/master' ## we will have to find a better way
format:
regex:
optional_bracket: '\[(?P<prefix>.*?)(?P<spaces>\s*)(?P<delimiter>\?\=)(?P<optional>.*?)\]'
label: "{$label}"
major: "{$major}"
minor: "{$minor}"
patch: "{$patch}"
prerelease: "{$prerelease}"
buildmetadata: "{$buildmetadata}"
commit: "{$commit}"
version: 'version {$major}.{$minor}.{$patch} (commit {$commit})'
version-only: 'version {$major}.{$minor}.{$patch}'
## Bracket enclosed expressions "[.?{$variable}]" are only rendered if the ?={$variable} is filled
full: '{$version-only}[.?={$prerelease}][+?={$buildmetadata}] (commit {$commit})'
compact: "v{$major}.{$minor}.{$patch}-{$commit}"
timestamp-year: '{$timestamp.year}'
timestamp-month: '{$timestamp.month}'
timestamp-day: '{$timestamp.day}'
timestamp-hour: '{$timestamp.hour}'
timestamp-minute: '{$timestamp.minute}'
timestamp-second: '{$timestamp.second}'
timestamp-timezone: '{$timestamp.timezone}'
timestamp-datetime: '{$timestamp.year}-{$timestamp.month}-{$timestamp.day} {$timestamp.hour}:{$timestamp.minute}:{$timestamp.second}'
timestamp-full: '{$timestamp.year}-{$timestamp.month}-{$timestamp.day} {$timestamp.hour}:{$timestamp.minute}:{$timestamp.second} {$timestamp.timezone}'
## add as many formats as you need !!!!