1818 fail-fast : false
1919 matrix :
2020 configuration : [Debug ,Release]
21- platform : [x86 ,x64]
21+ platform : [x86 ,x64 ,ARM64 ]
2222
2323 runs-on : windows-latest
2424
6262 ./vcpkg.exe install libsrt:x64-windows libsrtp:x64-windows
6363 ./vcpkg.exe integrate install
6464 shell : pwsh
65+ - name : vcpkg install (ARM64)
66+ if : matrix.platform == 'ARM64'
67+ run : |
68+ cd vcpkg
69+ ./bootstrap-vcpkg.bat
70+ ./vcpkg.exe install libsrt:Arm64-windows libsrtp:Arm64-windows
71+ ./vcpkg.exe integrate install
72+ shell : pwsh
6573
6674 - name : Set up Dependency x86_64 Environment
6775 if : matrix.platform == 'x64'
8391 echo "XENGINE_INCLUDE=${{ github.workspace }}/XEngine_Windows" | Out-File -FilePath $env:GITHUB_ENV -Append
8492 echo "XENGINE_LIB32=${{ github.workspace }}/XEngine_Windows/XEngine_Windows" | Out-File -FilePath $env:GITHUB_ENV -Append
8593 shell : pwsh
94+ - name : Set up Dependency ARM64 Environment
95+ if : matrix.platform == 'ARM64'
96+ run : |
97+ $response = Invoke-RestMethod -Uri "https://api.github.com/repos/libxengine/libxengine/releases/latest" -Headers @{"Accept"="application/vnd.github.v3+json"}
98+ $latest_tag = $response.tag_name
99+ Write-Host "Latest Tag: $latest_tag"
100+
101+ $url = "https://github.com/libxengine/libxengine/releases/download/$latest_tag/XEngine_Windows_Arm64.zip"
102+ Invoke-WebRequest -Uri $url -OutFile "XEngine_Windows_Arm64.zip"
103+ Expand-Archive -Path ./XEngine_Windows_Arm64.zip -DestinationPath ./XEngine_Windows -Force
104+
105+ echo "XENGINE_INCLUDE=${{ github.workspace }}/XEngine_Windows" | Out-File -FilePath $env:GITHUB_ENV -Append
106+ echo "XENGINE_LIBARM64=${{ github.workspace }}/XEngine_Windows/XEngine_Windows" | Out-File -FilePath $env:GITHUB_ENV -Append
107+ shell : pwsh
86108
87109 - name : Setup MSBuild
88110 uses : microsoft/setup-msbuild@v2
@@ -109,19 +131,35 @@ jobs:
109131 cd XEngine_Release
110132 .\VSCopy_x64.bat
111133 shell : pwsh
134+ - name : Conditional Step for ARM64 Release
135+ if : matrix.configuration == 'Release' && matrix.platform == 'ARM64'
136+ run : |
137+ cp -r XEngine_Source/ARM64/Release/*.dll XEngine_Release/
138+ cp -r XEngine_Source/ARM64/Release/*.exe XEngine_Release/
139+ cp -r XEngine_Source/VSCopy_Arm64.bat XEngine_Release/
140+ cd XEngine_Release
141+ .\VSCopy_Arm64.bat
142+ shell : pwsh
112143
113144 - name : Upload folder as artifact with x86
114145 if : matrix.configuration == 'Release' && matrix.platform == 'x86'
115146 uses : actions/upload-artifact@v4
116147 with :
117- name : XEngine_StreamMediaApp-x86_32-Windows
148+ name : XEngine_StreamMediaApp-Windows_x86_32
118149 path : XEngine_Release/
119- retention-days : 3
150+ retention-days : 1
120151
121152 - name : Upload folder as artifact with x64
122153 if : matrix.configuration == 'Release' && matrix.platform == 'x64'
123154 uses : actions/upload-artifact@v4
124155 with :
125- name : XEngine_StreamMediaApp-x86_64-Windows
156+ name : XEngine_StreamMediaApp-Windows_x86_64
157+ path : XEngine_Release/
158+ retention-days : 1
159+ - name : Upload folder as artifact with ARM64
160+ if : matrix.configuration == 'Release' && matrix.platform == 'ARM64'
161+ uses : actions/upload-artifact@v4
162+ with :
163+ name : XEngine_StreamMediaApp-Windows_Arm64
126164 path : XEngine_Release/
127- retention-days : 3
165+ retention-days : 1
0 commit comments