From b40da1e726bb87147ac3e82f32b64eec6f61d16f Mon Sep 17 00:00:00 2001 From: pqhuy1987 Date: Tue, 21 Apr 2026 14:58:51 +0700 Subject: [PATCH] [CLAUDE] CICD: read appsettings template from source workspace (not publish output) --- .gitea/workflows/deploy.yml | 27 ++++++++++++--------------- 1 file changed, 12 insertions(+), 15 deletions(-) diff --git a/.gitea/workflows/deploy.yml b/.gitea/workflows/deploy.yml index 7ecef57..060feb9 100644 --- a/.gitea/workflows/deploy.yml +++ b/.gitea/workflows/deploy.yml @@ -75,23 +75,20 @@ jobs: Remove-Item -Path 'C:\inetpub\solution-erp\api\*' -Recurse -Force -Exclude 'appsettings.Production.json','logs','uploads','wwwroot' -ErrorAction SilentlyContinue Copy-Item -Path 'out\api\*' -Destination 'C:\inetpub\solution-erp\api\' -Recurse -Force - # Write appsettings.Production.json from template + secrets - $example = 'C:\inetpub\solution-erp\api\appsettings.Production.json.example' + # Write appsettings.Production.json from source template + secrets. + # Template is in source workspace (not in publish output - dotnet publish + # doesn't copy .example files). + $example = 'src\Backend\SolutionErp.Api\appsettings.Production.json.example' $prod = 'C:\inetpub\solution-erp\api\appsettings.Production.json' - if (Test-Path $example) { - $settings = Get-Content $example -Raw | ConvertFrom-Json - $settings.ConnectionStrings.Default = $env:DB_CONNECTION - $settings.Jwt.Secret = $env:JWT_SECRET - $settings | ConvertTo-Json -Depth 10 | Set-Content -Path $prod -Encoding UTF8 - Write-Host "Wrote appsettings.Production.json" + $settings = Get-Content $example -Raw | ConvertFrom-Json + $settings.ConnectionStrings.Default = $env:DB_CONNECTION + $settings.Jwt.Secret = $env:JWT_SECRET + $settings | ConvertTo-Json -Depth 10 | Set-Content -Path $prod -Encoding UTF8 + Write-Host "Wrote appsettings.Production.json" - # Restrict ACL - icacls $prod /inheritance:r | Out-Null - icacls $prod /grant:r 'Administrators:(R,W)' 'IIS AppPool\SolutionErp-Api:(R)' | Out-Null - } else { - Write-Error "Template $example not found" - exit 1 - } + # Restrict ACL + icacls $prod /inheritance:r | Out-Null + icacls $prod /grant:r 'Administrators:(R,W)' 'IIS AppPool\SolutionErp-Api:(R)' | Out-Null # Deploy fe-admin Remove-Item -Path 'C:\inetpub\solution-erp\fe-admin\*' -Recurse -Force -Exclude 'web.config' -ErrorAction SilentlyContinue