@@ -26,36 +26,37 @@ RUN Invoke-WebRequest -Uri 'https://github.com/LocalGovIMS/localgov-ims/archive/
2626# Restore NuGet packages (all from nuget.org — no GitHub Packages needed)
2727RUN nuget restore src\L ocalGovIms.sln
2828
29- # Build the full solution (compiles all projects including dependencies)
30- RUN msbuild src\L ocalGovIms.sln /p:Configuration=Live /t:Build /verbosity:minimal
31-
32- # Publish each web project individually to separate directories
33- RUN msbuild src\P aymentPortal\P aymentPortal.csproj `
34- /p:Configuration=Live /t:pipelinePreDeployCopyAllFilesToOneFolder `
35- /p:_PackageTempDir=C:\b uild\p ortal /verbosity:minimal ; `
36- if ($LASTEXITCODE -ne 0) { `
37- Write-Host 'pipelinePreDeploy failed, falling back to WebPublishMethod' ; `
38- msbuild src\P aymentPortal\P aymentPortal.csproj `
39- /p:Configuration=Live /p:DeployOnBuild=true `
40- /p:WebPublishMethod=FileSystem /p:publishUrl=C:\b uild\p ortal /verbosity:minimal `
41- }
42- RUN msbuild src\A dmin\A dmin.csproj `
43- /p:Configuration=Live /t:pipelinePreDeployCopyAllFilesToOneFolder `
44- /p:_PackageTempDir=C:\b uild\a dmin /verbosity:minimal ; `
45- if ($LASTEXITCODE -ne 0) { `
46- Write-Host 'pipelinePreDeploy failed, falling back to WebPublishMethod' ; `
47- msbuild src\A dmin\A dmin.csproj `
48- /p:Configuration=Live /p:DeployOnBuild=true `
49- /p:WebPublishMethod=FileSystem /p:publishUrl=C:\b uild\a dmin /verbosity:minimal `
50- }
51- RUN msbuild src\A pi\A pi.csproj `
52- /p:Configuration=Live /t:pipelinePreDeployCopyAllFilesToOneFolder `
53- /p:_PackageTempDir=C:\b uild\a pi /verbosity:minimal ; `
54- if ($LASTEXITCODE -ne 0) { `
55- Write-Host 'pipelinePreDeploy failed, falling back to WebPublishMethod' ; `
56- msbuild src\A pi\A pi.csproj `
57- /p:Configuration=Live /p:DeployOnBuild=true `
58- /p:WebPublishMethod=FileSystem /p:publishUrl=C:\b uild\a pi /verbosity:minimal `
29+ # Build and publish: solution build compiles with Live config (maps to Release for libs).
30+ # DeployOnBuild publishes each web project. We publish three times with different publishUrl
31+ # to get separate output directories. Each publish overwrites _shared but we copy immediately.
32+ RUN msbuild src\L ocalGovIms.sln /p:Configuration=Live /p:DeployOnBuild=true `
33+ /p:WebPublishMethod=FileSystem /p:publishUrl=C:\b uild\_ shared /verbosity:minimal ; `
34+ Copy-Item -Path C:\b uild\_ shared -Destination C:\b uild\p ortal -Recurse -Force ; `
35+ Write-Host "Portal snapshot taken"
36+
37+ # The solution publish puts all web projects into _shared (last one wins). We need to
38+ # identify each project's output. Since all three share the same _shared dir, we use
39+ # the WAP (Web Application Project) _PackageTempDir which is created during publish.
40+ # Actually, let's just use the obj/Live/Package/PackageTmp directories that MSBuild creates.
41+ RUN if (Test-Path 'src\P aymentPortal\o bj\L ive\P ackage\P ackageTmp' ) { `
42+ Copy-Item -Path 'src\P aymentPortal\o bj\L ive\P ackage\P ackageTmp\* ' -Destination C:\b uild\p ortal -Recurse -Force ; `
43+ Write-Host "Portal from PackageTmp" `
44+ } ; `
45+ if (Test-Path 'src\A dmin\o bj\L ive\P ackage\P ackageTmp' ) { `
46+ Copy-Item -Path 'src\A dmin\o bj\L ive\P ackage\P ackageTmp\* ' -Destination C:\b uild\a dmin -Recurse -Force ; `
47+ Write-Host "Admin from PackageTmp" `
48+ } else { `
49+ New-Item -ItemType Directory -Force C:\b uild\a dmin | Out-Null ; `
50+ Copy-Item -Path C:\b uild\_ shared\* -Destination C:\b uild\a dmin -Recurse -Force ; `
51+ Write-Host "Admin from _shared fallback" `
52+ } ; `
53+ if (Test-Path 'src\A pi\o bj\L ive\P ackage\P ackageTmp' ) { `
54+ Copy-Item -Path 'src\A pi\o bj\L ive\P ackage\P ackageTmp\* ' -Destination C:\b uild\a pi -Recurse -Force ; `
55+ Write-Host "Api from PackageTmp" `
56+ } else { `
57+ New-Item -ItemType Directory -Force C:\b uild\a pi | Out-Null ; `
58+ Copy-Item -Path C:\b uild\_ shared\* -Destination C:\b uild\a pi -Recurse -Force ; `
59+ Write-Host "Api from _shared fallback" `
5960 }
6061
6162RUN Write-Host "Portal: $((Get-ChildItem C:\b uild\p ortal -Recurse -File).Count) files" ; `
0 commit comments