@@ -107,4 +107,44 @@ jobs:
107107 uses : actions/upload-artifact@v4
108108 with :
109109 name : Msix-x64
110- path : ${{ steps.set-package.outputs.x64 }}\*.msix
110+ path : ${{ steps.set-package.outputs.x64 }}\*.msix
111+
112+ - name : Create appsettings.json from secrets
113+ shell : pwsh
114+ run : |
115+ $configDir = "LCSC.App\Assets\Config"
116+ New-Item -ItemType Directory -Force -Path $configDir | Out-Null
117+
118+ # Fail fast if a required secret is missing
119+ $required = @{
120+ AIRBASE_TOKEN='${{ secrets.AIRBASE_TOKEN }}'
121+ AIRBASE_BASEID='${{ secrets.AIRBASE_BASEID }}'
122+ BNET_CLIENT_ID='${{ secrets.BNET_CLIENT_ID }}'
123+ BNET_CLIENT_SECRET='${{ secrets.BNET_CLIENT_SECRET }}'
124+ DISCORD_TOKEN='${{ secrets.DISCORD_TOKEN }}'
125+ DISCORD_CLIENT_SECRET='${{ secrets.DISCORD_CLIENT_SECRET }}'
126+ TELEMETRY_KEY='${{ secrets.TELEMETRY_KEY }}'
127+ }
128+ $missing = @()
129+ foreach($k in $required.Keys){ if([string]::IsNullOrWhiteSpace($required[$k])){ $missing += $k } }
130+ if($missing.Count -gt 0){ throw "Missing required secrets: $($missing -join ', ')" }
131+
132+ $json = @{
133+ AirBaseSettings = @{
134+ token = "${{ secrets.AIRBASE_TOKEN }}"
135+ baseId = "${{ secrets.AIRBASE_BASEID }}"
136+ }
137+ BattleNetSettings = @{
138+ clientId = "${{ secrets.BNET_CLIENT_ID }}"
139+ clientSecret = "${{ secrets.BNET_CLIENT_SECRET }}"
140+ }
141+ DiscordSettings = @{
142+ token = "${{ secrets.DISCORD_TOKEN }}"
143+ clientSecret = "${{ secrets.DISCORD_CLIENT_SECRET }}"
144+ }
145+ TelemetryKey = @{
146+ key = "${{ secrets.TELEMETRY_KEY }}"
147+ }
148+ } | ConvertTo-Json -Depth 5
149+
150+ Set-Content -Path (Join-Path $configDir 'appsettings.json') -Value $json -Encoding UTF8
0 commit comments