1111 SLN_PATH : PES5_WE9_LE_CameraTool.sln
1212 TEST_DLL : PES5_WE9_LE_CameraTool.Tests\bin\Release\PES5_WE9_LE_CameraTool.Tests.dll
1313 APP_RELEASE_DIR : PES5_WE9_LE_CameraTool\bin\Release
14+ PRODUCT_PREFIX : PES5_WE9_LE_CameraTool
1415
1516jobs :
1617 build-test :
1718 runs-on : windows-latest
18-
19+ outputs :
20+ version : ${{ steps.ver.outputs.version }}
21+ zipname : ${{ steps.pkg.outputs.zipname }}
1922 steps :
2023 - name : Checkout
2124 uses : actions/checkout@v4
@@ -65,24 +68,40 @@ jobs:
6568 name : nunit-results
6669 path : TestResult.xml
6770
68- - name : Package Release binaries
69- if : always()
71+ - name : Determine version
72+ id : ver
73+ shell : bash
74+ run : |
75+ ref="${GITHUB_REF_NAME}"
76+ if [[ "$ref" =~ ^v[0-9] ]]; then
77+ ver="${ref#v}"
78+ else
79+ ver="0.0.0-${GITHUB_RUN_NUMBER}"
80+ fi
81+ echo "version=$ver" >> $GITHUB_OUTPUT
82+ echo "Resolved version: $ver"
83+
84+ - name : Package versioned ZIP
85+ id : pkg
7086 shell : powershell
7187 run : |
7288 $dir = "${{ env.APP_RELEASE_DIR }}"
7389 if (!(Test-Path $dir)) { throw "Release output not found: $dir" }
7490
75- $zip = "CameraTool_Release.zip"
76- if (Test-Path $zip) { Remove-Item $zip -Force }
77- Compress-Archive -Path "$dir\*" -DestinationPath $zip -Force
78- Write-Host "Created $zip"
91+ $ver = "${{ steps.ver.outputs.version }}"
92+ $zipname = "${{ env.PRODUCT_PREFIX }}_v$ver.zip"
93+
94+ if (Test-Path $zipname) { Remove-Item $zipname -Force }
95+ Compress-Archive -Path "$dir\*" -DestinationPath $zipname -Force
96+ Write-Host "Created $zipname"
97+ echo "zipname=$zipname" | Out-File -FilePath $env:GITHUB_OUTPUT -Append -Encoding utf8
7998
80- - name : Upload Release artifact
99+ - name : Upload versioned ZIP artifact
81100 if : always()
82101 uses : actions/upload-artifact@v4
83102 with :
84- name : CameraTool_Release
85- path : CameraTool_Release.zip
103+ name : CameraTool_Zip
104+ path : ${{ steps.pkg.outputs.zipname }}
86105
87106 release :
88107 runs-on : windows-latest
@@ -92,15 +111,15 @@ jobs:
92111 - name : Checkout
93112 uses : actions/checkout@v4
94113
95- - name : Download packaged binaries
114+ - name : Download packaged ZIP
96115 uses : actions/download-artifact@v4
97116 with :
98- name : CameraTool_Release
117+ name : CameraTool_Zip
99118 path : .
100119
101120 - name : Create GitHub Release
102121 uses : softprops/action-gh-release@v2
103122 with :
104- files : CameraTool_Release.zip
123+ files : ${{ needs.build-test.outputs.zipname }}
105124 env :
106125 GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
0 commit comments