name: RetroArch Angle Builder on: workflow_dispatch: inputs: tag_name: description: 'Tag Name' required: true default: 'v1.0.0' package_name: description: 'Package Name' required: true default: 'RetroArch' jobs: build: runs-on: windows-latest env: SolutionPath: pkg/msvc-uwp/RetroArch-msvcUWP.sln Platform: x64 Configuration: ReleaseANGLE BuildMode: SideLoadOnly AppxBundle: Never ProjectPath: pkg/msvc-uwp/RetroArch-msvcUWP/RetroArch-msvcUWP.vcxproj ProjectDirectory: .\pkg/msvc-uwp/RetroArch-msvcUWP PackageOutputRootDir: C:\AppPackage PackageOutputDir: RetroArch steps: - name: Add msbuild to PATH uses: microsoft/setup-msbuild@v1.1 - name: Setup NuGet.exe for use with actions uses: NuGet/setup-nuget@v1.1.1 - name: Checkout Repository uses: actions/checkout@v3 with: submodules: true fetch-depth: 0 - name: Generate Self-Signed Certificate id: generate_cert run: | $cert = New-SelfSignedCertificate -CertStoreLocation "Cert:\CurrentUser\My" -Subject "CN=MyUWPCert" -KeyAlgorithm RSA -KeyLength 2048 -Provider "Microsoft Enhanced RSA and AES Cryptographic Provider" -KeyExportPolicy Exportable -NotAfter (Get-Date).AddYears(1) -Type CodeSigningCert echo "THUMBPRINT=$($cert.Thumbprint)" >> $env:GITHUB_ENV shell: pwsh - name: Set Package Name id: set_package_name run: | echo "PACKAGE_NAME=${{ github.event.inputs.package_name }}_${{ github.event.inputs.tag_name }}" >> $GITHUB_ENV - name: Download and Extract File run: | Invoke-WebRequest -Uri "https://drive.google.com/uc?export=download&id=1bZWta3dHaHQt4jTMnN9EK2-eMUJr6-jS" -OutFile "downloaded_file.zip" Expand-Archive -Path "downloaded_file.zip" -DestinationPath "pkg/msvc-uwp/RetroArch-msvcUWP/cores/x64/cores" -Force Remove-Item "pkg/msvc-uwp/RetroArch-msvcUWP/cores/x64/cores/.empty" -Force shell: pwsh - name: App Build run: | msbuild $env:SolutionPath ` /p:Platform=$env:Platform ` /p:Configuration=$env:Configuration ` /p:UapAppxPackageBuildMode=$env:BuildMode ` /p:AppxBundle=$env:AppxBundle ` /p:PackageCertificateThumbprint="${{ env.THUMBPRINT }}" ` /p:AppxPackageTestDir="${{ env.PackageOutputRootDir }}\${{ env.PACKAGE_NAME }}" ` /p:AppxPackageSigningEnabled=true ` /restore shell: pwsh - name: Clean the Package run: | $PackagePath = "${{ env.PackageOutputRootDir }}\${{ env.PACKAGE_NAME }}" if (Test-Path $PackagePath) { Write-Host "Cleaning package directory: $PackagePath" Remove-Item -Recurse -path "$PackagePath\Add-AppDevPackage.resources" -ErrorAction SilentlyContinue Remove-Item -Recurse -path "$PackagePath\TelemetryDependencies" -ErrorAction SilentlyContinue Remove-Item -Recurse -path "$PackagePath\Dependencies\arm" -ErrorAction SilentlyContinue Remove-Item -Recurse -path "$PackagePath\Dependencies\arm64" -ErrorAction SilentlyContinue Remove-Item -Recurse -path "$PackagePath\Dependencies\x86" -ErrorAction SilentlyContinue Remove-Item -Recurse -path "$PackagePath\Dependencies\Win32" -ErrorAction SilentlyContinue Remove-Item -path "$PackagePath\Add-AppDevPackage.ps1" -ErrorAction SilentlyContinue Remove-Item -Recurse -path "$PackagePath\Install.ps1" -ErrorAction SilentlyContinue } else { Write-Host "Package path does not exist: $PackagePath" exit 1 } shell: pwsh - name: Create Archive run: | $PackagePath = "${{ env.PackageOutputRootDir }}\${{ env.PACKAGE_NAME }}" if (Test-Path $PackagePath) { Write-Host "Creating archive for: $PackagePath" Compress-Archive -Path "$PackagePath\*" -DestinationPath "${{ env.PackageOutputRootDir }}\${{ env.PACKAGE_NAME }}.zip" Write-Host "Contents of package output directory after archiving:" Get-ChildItem -Path "${{ env.PackageOutputRootDir }}" -Recurse } else { Write-Host "Package path does not exist for archiving: $PackagePath" exit 1 } shell: pwsh - name: Upload Build Artifact uses: actions/upload-artifact@v4 with: name: ${{ github.event.inputs.package_name }} Build path: ${{ env.PackageOutputRootDir }}\${{ env.PACKAGE_NAME }}