Eerste commit
This commit is contained in:
@@ -0,0 +1,84 @@
|
||||
<#
|
||||
.SYNOPSIS
|
||||
Publiceert MijnBesluit.Web en pakt het resultaat in als één zip-bestand.
|
||||
|
||||
.DESCRIPTION
|
||||
Draai dit op je ontwikkelmachine. Het resultaat is D:\publish\mijnbesluit.zip.
|
||||
Dat bestand pak je op de server uit met Uitrollen.ps1.
|
||||
|
||||
.EXAMPLE
|
||||
.\tools\Publiceren.ps1
|
||||
.\tools\Publiceren.ps1 -Uitvoer D:\publish -Configuratie Release
|
||||
#>
|
||||
[CmdletBinding()]
|
||||
param(
|
||||
# Map waarin de publicatie en het zip-bestand terechtkomen.
|
||||
[string] $Uitvoer = 'D:\publish',
|
||||
|
||||
# Release voor de server, Debug alleen om iets te onderzoeken.
|
||||
[ValidateSet('Release', 'Debug')]
|
||||
[string] $Configuratie = 'Release',
|
||||
|
||||
# Sla het inpakken over als je de losse bestanden wilt hebben.
|
||||
[switch] $GeenZip
|
||||
)
|
||||
|
||||
$ErrorActionPreference = 'Stop'
|
||||
|
||||
# De projectmap is de map boven deze scriptmap.
|
||||
$Project = Join-Path (Split-Path $PSScriptRoot -Parent) 'src\MijnBesluit.Web'
|
||||
$DoelMap = Join-Path $Uitvoer 'mijnbesluit'
|
||||
$ZipPad = Join-Path $Uitvoer 'mijnbesluit.zip'
|
||||
|
||||
if (-not (Test-Path $Project)) {
|
||||
throw "Projectmap niet gevonden: $Project. Draai dit script vanuit de map tools van het project."
|
||||
}
|
||||
|
||||
Write-Host ''
|
||||
Write-Host 'MijnBesluit publiceren' -ForegroundColor Cyan
|
||||
Write-Host " Project : $Project"
|
||||
Write-Host " Configuratie : $Configuratie"
|
||||
Write-Host " Uitvoer : $DoelMap"
|
||||
Write-Host ''
|
||||
|
||||
# Schoon beginnen: anders blijven bestanden van een vorige versie achter die nu niet meer
|
||||
# bestaan, en die worden dan mee uitgerold.
|
||||
if (Test-Path $DoelMap) {
|
||||
Write-Host 'Vorige publicatie opruimen...'
|
||||
Remove-Item $DoelMap -Recurse -Force
|
||||
}
|
||||
|
||||
Write-Host 'Publiceren...' -ForegroundColor Cyan
|
||||
dotnet publish $Project -c $Configuratie -o $DoelMap --nologo
|
||||
if ($LASTEXITCODE -ne 0) { throw 'Publiceren is mislukt. Zie de fouten hierboven.' }
|
||||
|
||||
# Controle: zonder deze twee bestanden start de site niet onder IIS.
|
||||
foreach ($nodig in @('MijnBesluit.Web.dll', 'web.config')) {
|
||||
if (-not (Test-Path (Join-Path $DoelMap $nodig))) {
|
||||
throw "Er ontbreekt iets in de publicatie: $nodig"
|
||||
}
|
||||
}
|
||||
|
||||
# appsettings.Development.json hoort niet op een server thuis.
|
||||
$ontwikkel = Join-Path $DoelMap 'appsettings.Development.json'
|
||||
if (Test-Path $ontwikkel) {
|
||||
Remove-Item $ontwikkel -Force
|
||||
Write-Host 'appsettings.Development.json verwijderd uit de publicatie.'
|
||||
}
|
||||
|
||||
if (-not $GeenZip) {
|
||||
Write-Host 'Inpakken...' -ForegroundColor Cyan
|
||||
if (Test-Path $ZipPad) { Remove-Item $ZipPad -Force }
|
||||
Compress-Archive -Path (Join-Path $DoelMap '*') -DestinationPath $ZipPad -CompressionLevel Optimal
|
||||
}
|
||||
|
||||
$grootte = if (Test-Path $ZipPad) { '{0:N1} MB' -f ((Get-Item $ZipPad).Length / 1MB) } else { '-' }
|
||||
|
||||
Write-Host ''
|
||||
Write-Host 'Klaar.' -ForegroundColor Green
|
||||
Write-Host " Map : $DoelMap"
|
||||
if (-not $GeenZip) { Write-Host " Zip : $ZipPad ($grootte)" }
|
||||
Write-Host ''
|
||||
Write-Host 'Nu op de server, in een PowerShell-venster als administrator:' -ForegroundColor Yellow
|
||||
Write-Host " .\Uitrollen.ps1 -Zip '\\tsclient\$($ZipPad.Substring(0,1))\$($ZipPad.Substring(3))'"
|
||||
Write-Host ''
|
||||
Reference in New Issue
Block a user