1212 required : true
1313
1414env :
15- TOOL_PROJ_PATH : ./src/ModVerify.CliApp/ModVerify.CliApp.csproj
16- PUBLISH_SCRIPT : ./modules/ModdingToolBase/scripts/Publish-Release.ps1
17- TOOL_EXE : ModVerify.exe
18- UPDATER_EXE : AnakinRaW.ExternalUpdater.exe
19- EMBEDDED_TRUST_CERT : src/ModVerify.CliApp/Resources/Certs/AET-root.cer
20- ORIGIN_BASE : https://republicatwar.com/downloads/ModVerify
21- SFTP_BASE_PATH : downloads/ModVerify/
15+ # Per-run release channel. Every other per-app value lives in update-tooling.jsonc and is loaded
16+ # into the environment by the "Load app config" step in each job below.
2217 BRANCH_NAME : ${{ github.event.inputs.branch || 'stable' }}
2318
24- # Migration-release values. Leave empty for a normal release; populate to enable.
25- #
26- # Origin URL of the next-generation channel, written into the manifest's componentOriginInfo.
27- NEXT_ORIGIN_BASE : https://republicatwar.com/downloads/ModVerify/v2
28-
29- # SFTP path the next-generation channel uploads to. Set together with NEXT_ORIGIN_BASE.
30- NEXT_SFTP_BASE_PATH : downloads/ModVerify/v2/
31-
32- # Previously-deployed updater used in place of the build-output one for the primary deploy.
33- # Only the old-gen manifest lists this binary; the next-gen manifest still uses the build-output updater.
34- # Requires NEXT_ORIGIN_BASE + NEXT_SFTP_BASE_PATH to be set.
35- COMPAT_UPDATER : tools/v1/AnakinRaW.ExternalUpdater.exe
36-
3719jobs :
3820
3921# Builds and tests the solution.
4022 test :
4123 uses : ./.github/workflows/test.yml
4224
43- # End-to-end self-update test (single-channel + dual-channel via /v2/) .
25+ # End-to-end self-update test.
4426 integration-test :
27+ name : Integration test
4528 needs : [test]
46- uses : ./.github/workflows/integration-test.yml
29+ runs-on : windows-latest
30+ steps :
31+ - uses : actions/checkout@v6
32+ with :
33+ fetch-depth : 0
34+ submodules : recursive
35+ - uses : actions/setup-dotnet@v5
36+ with :
37+ dotnet-version : 10.0.x
38+ - name : Run self-update integration suite
39+ shell : pwsh
40+ run : |
41+ $c = Get-Content -Raw ./update-tooling.jsonc | ConvertFrom-Json
42+ & "$($c.scriptsDir)/Test-LocalUpdateSuite.ps1" -ConfigPath ./update-tooling.jsonc
4743
4844 pack :
4945 name : Pack
5551 with :
5652 fetch-depth : 0
5753 submodules : recursive
54+ - name : Load app config
55+ shell : pwsh
56+ run : |
57+ $c = Get-Content -Raw ./update-tooling.jsonc | ConvertFrom-Json
58+ "TOOL_PROJ_PATH=$($c.toolProject)" >> $env:GITHUB_ENV
5859 - name : Setup .NET
5960 uses : actions/setup-dotnet@v5
6061 - name : Create NetFramework Release
9798 with :
9899 dotnet-version : 10.0.x
99100
101+ - name : Load app config
102+ shell : pwsh
103+ # Per-app release values come from update-tooling.jsonc.
104+ run : |
105+ $c = Get-Content -Raw ./update-tooling.jsonc | ConvertFrom-Json
106+ "PUBLISH_SCRIPT=$($c.scriptsDir)/Publish-Release.ps1" >> $env:GITHUB_ENV
107+ "TOOL_EXE=$($c.appExe)" >> $env:GITHUB_ENV
108+ "UPDATER_EXE=$($c.updaterExe)" >> $env:GITHUB_ENV
109+ "EMBEDDED_TRUST_CERT=$($c.embeddedTrustCert)" >> $env:GITHUB_ENV
110+ "ORIGIN_BASE=$($c.origin)" >> $env:GITHUB_ENV
111+ "SFTP_BASE_PATH=$($c.sftpBasePath)" >> $env:GITHUB_ENV
112+ "SFTP_HOST=$($c.sftpHost)" >> $env:GITHUB_ENV
113+ "SFTP_PORT=$($c.sftpPort)" >> $env:GITHUB_ENV
114+ "NEXT_ORIGIN_BASE=$($c.nextOrigin)" >> $env:GITHUB_ENV
115+ "NEXT_SFTP_BASE_PATH=$($c.nextSftpBasePath)" >> $env:GITHUB_ENV
116+ "COMPAT_UPDATER=$($c.compatUpdater)" >> $env:GITHUB_ENV
117+
100118 - name : Publish self-update release
101119 shell : pwsh
102120 run : |
@@ -135,5 +153,5 @@ jobs:
135153 token : ${{ secrets.GITHUB_TOKEN }}
136154 generate_release_notes : true
137155 files : |
138- ./releases/net481/ModVerify.exe
156+ ./releases/net481/${{ env.TOOL_EXE }}
139157 ./releases/ModVerify-Net10.zip
0 commit comments