42 lines
1.1 KiB
PowerShell
42 lines
1.1 KiB
PowerShell
|
|
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)"
|