gmao/docker/build-release.ps1

42 lines
1.1 KiB
PowerShell
Raw Permalink Normal View History

2026-08-14 18:02:25 +02:00
param(
[switch]$TagLatest
)
$ErrorActionPreference = 'Stop'
$ProjectRoot = Split-Path -Parent $PSScriptRoot
$Version = (Get-Content -LiteralPath (Join-Path $ProjectRoot 'VERSION') -Raw).Trim()
if ($Version -notmatch '^\d+\.\d+\.\d+([+-][0-9A-Za-z.-]+)?$') {
throw "Version invalide dans VERSION: $Version"
}
$Revision = 'unknown'
if (Get-Command git -ErrorAction SilentlyContinue) {
$candidate = git -C $ProjectRoot rev-parse --short HEAD 2>$null
if ($LASTEXITCODE -eq 0 -and $candidate) {
$Revision = $candidate.Trim()
}
}
$env:GMAO_VERSION = $Version
$env:GIT_VERSION = $Revision
Push-Location $ProjectRoot
try {
docker compose -f docker-compose.yml build gmao
if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE }
if ($TagLatest) {
if ($Version.Contains('-')) {
throw 'Une preversion ne peut pas recevoir le tag latest.'
}
docker tag "gmao-college:$Version" 'gmao-college:latest'
if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE }
}
}
finally {
Pop-Location
}
Write-Host "Image construite: gmao-college:$Version (revision $Revision)"