ppsspp/.github/workflows/manual_generate_uwp.yml
2024-03-27 22:08:02 +07:00

118 lines
5.1 KiB
YAML

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/