Files
C4IT-F4SD-M42WebApi/F4SDM42WebApi/deploy.ps1
2026-01-28 12:27:00 +01:00

77 lines
3.2 KiB
PowerShell

#POSTBUILD powershell -ExecutionPolicy Unrestricted $(ProjectDir)deploy.ps1 -ProjectDir $(ProjectDir) -SolutionDir $(SolutionDir) -OutDir $(OutDir) -ConfigurationName $(ConfigurationName)
param([string]$OutDir,
[string]$ConfigurationName,
[string]$SolutionDir,
[string]$ProjectDir);
$copyAssembly = 0
$copyWorkspace = 0
$signAssembly = 1
$ProductName="C4IT - F4SD - WebApi for M42"
$targetPath = "\\srvwsm001.imagoverum.com\c$\Program Files (x86)\Matrix42\Matrix42 Workplace Management"
$minifyApi = "https://www.toptal.com/developers/javascript-minifier/api/raw"
#minify js file
$workdirPath = "$ProjectDir${OutDir}"
$workdirPathZip = "$workdirPath\zip"
Get-ChildItem -Path "$workdirPathZip" -File -Recurse | Remove-Item
Expand-Archive -Path "$workdirPath\F4SD - M42.zip" -DestinationPath $workdirPathZip
$buildDate = $((get-date).ToLocalTime()).ToString("yyyy-MM-dd")
$jsCode = Get-Content -Path "$workdirPath\F4SD.js" -Raw
$body = @{input=$jsCode}
$contentType = 'application/x-www-form-urlencoded'
$resp = Invoke-WebRequest -Method POST -Uri $minifyApi -body $body -ContentType $contentType
$workspaceVersion = (Get-Content -Raw -Path "$workdirPath\workspace.json" | ConvertFrom-Json).version
[IO.File]::WriteAllLines("$workdirPath\F4SD.min.js","/*v$workspaceVersion ($buildDate)*/" + $resp.Content)
$finalWorkspacePath = "$workdirPathZip\Files\WM\workspaces\C4IT_F4SD"
New-Item -ItemType Directory -Force -Path $finalWorkspacePath | out-null
Copy-Item "$workdirPath\F4SD.min.js" -Destination "$finalWorkspacePath"
Copy-Item "$workdirPath\F4SDIcons.svg" -Destination "$finalWorkspacePath"
Copy-Item "$workdirPath\workspace.json" -Destination "$finalWorkspacePath"
$finalAssemblyPath = "$workdirPathZip\Assemblies\svc\bin\"
New-Item -ItemType Directory -Force -Path $finalWorkspacePath | out-null
if($signAssembly -eq 1)
{
$SignTool="$SolutionDir\..\..\Workspaces\Common Code\Tools\signtool.exe"
$TimeStamp="http://rfc3161timestamp.globalsign.com/advanced"
& $SignTool sign /a /tr $TimeStamp /td SHA256 /fd SHA256 /d $ProductName C:\Users\dm134\source\repos\F4SDM42WebApi\F4SDM42WebApi\bin\Release\C4ITF4SDM42WebApi.dll C:\Users\dm134\source\repos\F4SDM42WebApi\F4SDM42WebApi\bin\Release\C4ITF4SDM42WebApiHelper.dll
}
Get-ChildItem -Path "$ProjectDir${OutDir}C4ITF4SD*" -Include *.dll | Copy-Item -Destination $finalAssemblyPath
Remove-Item "$workdirPath\F4SD - M42 v$workspaceVersion.zip"
Compress-Archive -Path "$workdirPathZip\*" -DestinationPath "$workdirPath\F4SD - M42 v$workspaceVersion.zip"
IF( $ConfigurationName -eq "Release_and_copy" -OR $ConfigurationName -eq "Debug_and_copy" )
{
#Copy Assembly
if($copyAssembly -eq 1)
{
Get-ChildItem -Path "$ProjectDir${OutDir}C4ITF4SD*" -Include *.dll | Copy-Item -Destination "$targetPath\svc\bin\"
}
#Copy Workspace
if($copyWorkspace -eq 1)
{
$targetWorkspacePath = "$targetPath\WM\workspaces\C4IT_F4SD"
New-Item -ItemType Directory -Force -Path $targetWorkspacePath | out-null
Get-ChildItem -Path "$finalWorkspacePath\*" -Include * | Copy-Item -Destination $targetWorkspacePath
}
}