ci:rocky update #114
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: windows build workflows | |
| on: | |
| push: | |
| branches: | |
| - 'master' | |
| paths: | |
| - 'XEngine_Source/**' | |
| - 'XEngine_Release/**' | |
| - '.github/**' | |
| jobs: | |
| build: | |
| strategy: | |
| # Set fail-fast to false to ensure that feedback is delivered for all matrix combinations. Consider changing this to true when your workflow is stable. | |
| fail-fast: false | |
| matrix: | |
| configuration: [Debug ,Release] | |
| platform: [x86 ,x64 ,ARM64] | |
| runs-on: windows-latest # 最新的 Windows 环境 | |
| steps: | |
| # 检出您的主仓库代码 | |
| - name: Checkout main repository code | |
| uses: actions/checkout@v4 | |
| with: | |
| ref: 'master' | |
| # 检出依赖的xengine仓库到指定的xengine目录 | |
| - name: Checkout dependency repository (xengine) | |
| uses: actions/checkout@v4 | |
| with: | |
| repository: libxengine/libxengine | |
| path: xengine | |
| - name: sub module checkout (opensource) | |
| run: | | |
| git submodule init | |
| git submodule update | |
| shell: pwsh | |
| # 设置依赖库的环境变量 | |
| - name: Set up Dependency x86_64 Environment | |
| if: matrix.platform == 'x64' | |
| run: | | |
| echo "XENGINE_INCLUDE=${{ github.workspace }}/xengine" | Out-File -FilePath $env:GITHUB_ENV -Append | |
| echo "XENGINE_LIB64=${{ github.workspace }}/xengine/XEngine_Windows" | Out-File -FilePath $env:GITHUB_ENV -Append | |
| shell: pwsh | |
| - name: Set up Dependency x86_32 Environment | |
| if: matrix.platform == 'x86' | |
| run: | | |
| $response = Invoke-RestMethod -Uri "https://api.github.com/repos/libxengine/libxengine/releases/latest" -Headers @{"Accept"="application/vnd.github.v3+json"} | |
| $latest_tag = $response.tag_name | |
| $url = "https://github.com/libxengine/libxengine/releases/download/$latest_tag/XEngine_Windows_x86-32.zip" | |
| Write-Host "Latest Tag: $url" | |
| Invoke-WebRequest -Uri $url -OutFile "XEngine_Windows_x86-32.zip" | |
| Expand-Archive -Path ./XEngine_Windows_x86-32.zip -DestinationPath ./XEngine_Windows -Force | |
| echo "XENGINE_INCLUDE=${{ github.workspace }}/XEngine_Windows" | Out-File -FilePath $env:GITHUB_ENV -Append | |
| echo "XENGINE_LIB32=${{ github.workspace }}/XEngine_Windows/XEngine_Windows" | Out-File -FilePath $env:GITHUB_ENV -Append | |
| shell: pwsh | |
| - name: Set up Dependency ARM64 Environment | |
| if: matrix.platform == 'ARM64' | |
| run: | | |
| $response = Invoke-RestMethod -Uri "https://api.github.com/repos/libxengine/libxengine/releases/latest" -Headers @{"Accept"="application/vnd.github.v3+json"} | |
| $latest_tag = $response.tag_name | |
| Write-Host "Latest Tag: $latest_tag" | |
| $url = "https://github.com/libxengine/libxengine/releases/download/$latest_tag/XEngine_Windows_Arm64.zip" | |
| Invoke-WebRequest -Uri $url -OutFile "XEngine_Windows_Arm64.zip" | |
| Expand-Archive -Path ./XEngine_Windows_Arm64.zip -DestinationPath ./XEngine_Windows -Force | |
| echo "XENGINE_INCLUDE=${{ github.workspace }}/XEngine_Windows" | Out-File -FilePath $env:GITHUB_ENV -Append | |
| echo "XENGINE_LibArm64=${{ github.workspace }}/XEngine_Windows/XEngine_Windows" | Out-File -FilePath $env:GITHUB_ENV -Append | |
| shell: pwsh | |
| # 配置 MSBuild 的路径,准备构建 VC++ 项目 | |
| - name: Setup MSBuild | |
| uses: microsoft/setup-msbuild@v2 | |
| #编译 | |
| - name: Build Solution | |
| run: msbuild XEngine_Source/XEngine.sln /p:Configuration=${{ matrix.configuration }} /p:Platform=${{ matrix.platform }} | |
| - name: Conditional Step for x86 Release | |
| if: matrix.configuration == 'Release' && matrix.platform == 'x86' | |
| run: | | |
| cp -r XEngine_Source/Release/*.dll XEngine_Release/ | |
| cp -r XEngine_Source/Release/*.exe XEngine_Release/ | |
| cp -r XEngine_Source/VSCopy_x86.bat XEngine_Release/ | |
| cd XEngine_Release | |
| ./VSCopy_x86.bat | |
| ./XEngine_CenterApp -t | |
| ./XEngine_Http2App -t | |
| ./XEngine_HttpApp -t | |
| ./XEngine_SimpleApp -t | |
| ./XEngine_WebSocketApp -t | |
| shell: pwsh | |
| - name: Conditional Step for x64 Release | |
| if: matrix.configuration == 'Release' && matrix.platform == 'x64' | |
| run: | | |
| cp -r XEngine_Source/x64/Release/*.dll XEngine_Release/ | |
| cp -r XEngine_Source/x64/Release/*.exe XEngine_Release/ | |
| cp -r XEngine_Source/VSCopy_x64.bat XEngine_Release/ | |
| cd XEngine_Release | |
| ./VSCopy_x64.bat | |
| shell: pwsh | |
| - name: Conditional Step for Arm64 Release | |
| if: matrix.configuration == 'Release' && matrix.platform == 'Arm64' | |
| run: | | |
| cp -r XEngine_Source/ARM64/Release/*.dll XEngine_Release/ | |
| cp -r XEngine_Source/ARM64/Release/*.exe XEngine_Release/ | |
| cp -r XEngine_Source/VSCopy_Arm64.bat XEngine_Release/ | |
| cd XEngine_Release | |
| ./VSCopy_Arm64.bat | |
| shell: pwsh |