Manual Generate UWP MSIX/MSIXBundle #3
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: Manual Generate UWP MSIX/MSIXBundle | |
| on: | |
| workflow_dispatch: | |
| inputs: | |
| buildConfiguration: | |
| type: choice | |
| description: 'Build Configuration' | |
| required: true | |
| default: 'Release' | |
| options: | |
| - Release | |
| - Debug | |
| buildPlatform: | |
| type: choice | |
| description: 'Build Platform' | |
| required: true | |
| default: 'Bundle' | |
| options: | |
| - Bundle | |
| - x64 | |
| - ARM64 | |
| - ARM | |
| signedPackage: | |
| type: boolean | |
| description: 'Signed Package' | |
| required: true | |
| default: true | |
| jobs: | |
| build-uwp: | |
| name: Generate ${{ github.event.inputs.buildConfiguration }} ${{ github.event.inputs.buildPlatform }} UWP | |
| runs-on: windows-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 0 | |
| submodules: recursive | |
| - name: Check Valid Version Tags | |
| id: valid-tags | |
| shell: bash | |
| run: | | |
| echo "count=$(git tag -l 'v[0-9]*' | wc -l | tr -d ' ')" >> $GITHUB_OUTPUT # $env:GITHUB_OUTPUT on pwsh | |
| - name: Fetch upstream tags # required for git describe to return a valid version on a new fork | |
| if: ${{ steps.valid-tags.outputs.count == '0' }} | |
| run: | | |
| # TODO: should try to fetch tags from whereever this repo was forked from before fetching from official repo | |
| git remote add upstream https://github.com/hrydgard/ppsspp.git # fetching from official repo as a fallback | |
| git fetch --deepen=15000 --no-recurse-submodules --tags upstream || exit 0 | |
| - name: Add MSBuild to PATH | |
| uses: microsoft/setup-msbuild@v2 | |
| #- name: Setup cache # We probably need something like MSBuildCache for MSBuild to be able to use cache properly | |
| # id: cache-uwp | |
| # uses: actions/cache@v3 | |
| # with: | |
| # path: | | |
| # UWP/${{ github.event.inputs.buildPlatform }}/${{ github.event.inputs.buildConfiguration }}/** | |
| # key: uwp-${{ github.event.inputs.buildConfiguration }}-${{ github.event.inputs.buildPlatform }} | |
| - name: Testing values | |
| run: | | |
| # Testing values ... | |
| #env | |
| echo "Content of [env.GITHUB_WORKSPACE] = ${env.GITHUB_WORKSPACE}" | |
| echo "Content of [[env.GITHUB_WORKSPACE]] = ${{env.GITHUB_WORKSPACE}}" | |
| echo "Content of [env:GITHUB_WORKSPACE] = ${env:GITHUB_WORKSPACE}" | |
| echo "Content of [github.workspace] = ${github.workspace}" | |
| echo "Content of [[github.workspace]] = ${{github.workspace}}" | |
| echo "double ${{ github.event.inputs.buildConfiguration }}" | |
| echo ${{github.workspace}} | |
| echo "count=${{steps.valid-tags.outputs.count}}" | |
| echo "single ${ github.event.inputs.buildConfiguration }" | |
| echo $env:GITHUB_WORKSPACE | |
| - name: Execute MSIX build | |
| working-directory: ${{ github.workspace }} | |
| env: | |
| INCLUDE_SYMBOLS: ${{ github.event.inputs.buildConfiguration == 'Debug' && 'true' || 'false' }} | |
| if: ${{ github.event.inputs.buildPlatform != 'Bundle' }} | |
| run: | | |
| echo "include symbols = ${{ env.INCLUDE_SYMBOLS }}" | |
| msbuild UWP/PPSSPP_UWP.sln /m /p:TrackFileAccess=false /p:Configuration=${{ github.event.inputs.buildConfiguration }} /p:Platform=${{ github.event.inputs.buildPlatform }} /p:IncludeSymbols=${{ env.INCLUDE_SYMBOLS }} /p:AppxSymbolPackageEnabled=${{ env.INCLUDE_SYMBOLS }} /p:AppxPackageSigningEnabled=${{ github.event.inputs.signedPackage }} /p:PackageCertificateKeyFile=PPSSPP_UWP_TemporaryKey.pfx /p:AppxBundle=Never /p:UapAppxPackageBuildMode=SideloadOnly /p:AppxBundlePlatforms="${{ github.event.inputs.buildPlatform }}" | |
| - name: Execute MSIXBundle build | |
| working-directory: ${{ github.workspace }} | |
| env: | |
| INCLUDE_SYMBOLS: ${{ github.event.inputs.buildConfiguration == 'Debug' && 'true' || 'false' }} | |
| if: ${{ github.event.inputs.buildPlatform == 'Bundle' }} | |
| run: | | |
| echo "include symbols = ${{ env.INCLUDE_SYMBOLS }}" | |
| msbuild UWP/PPSSPP_UWP.sln /m /p:TrackFileAccess=false /p:Configuration=${{ github.event.inputs.buildConfiguration }} /p:Platform=x64 /p:IncludeSymbols=${{ env.INCLUDE_SYMBOLS }} /p:AppxSymbolPackageEnabled=${{ env.INCLUDE_SYMBOLS }} /p:AppxPackageSigningEnabled=${{ github.event.inputs.signedPackage }} /p:PackageCertificateKeyFile=PPSSPP_UWP_TemporaryKey.pfx /p:AppxBundle=Always /p:UapAppxPackageBuildMode=SideloadOnly /p:AppxBundlePlatforms="x64|ARM64|ARM" | |
| - name: Package build | |
| working-directory: ${{ github.workspace }} | |
| run: | | |
| # Testing file location ... | |
| #find . -name "PPSSPP*.exe" | |
| #find . -name "*.appx*" | |
| #find . -name "*.msix*" | |
| mkdir ppsspp | |
| #ls UWP/AppPackages/PPSSPP_UWP | |
| cp -r UWP/AppPackages/PPSSPP_UWP/*.* ppsspp/ | |
| #ls ppsspp | |
| - name: Upload artifact | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: UWP-${{ github.event.inputs.buildConfiguration }}-${{ github.event.inputs.buildPlatform }} build | |
| path: ppsspp/ |