diff --git a/.github/steps/install_dependencies/action.yml b/.github/steps/install_dependencies/action.yml index 752799e1..37437030 100644 --- a/.github/steps/install_dependencies/action.yml +++ b/.github/steps/install_dependencies/action.yml @@ -13,7 +13,7 @@ inputs: sdkVersion: description: 'The version of the Windows Sdk' required: false - default: '19041' + default: '22621' runs: using: "composite" @@ -31,30 +31,15 @@ runs: run: .\.github\Install-WindowsSdkISO.ps1 ${{ inputs.sdkVersion }} # Run Uno.Check - - name: Run Uno.Check + - name: Install ${{ inputs.target-platform }} Workloads shell: pwsh run: | - dotnet tool install -g uno.check --version 1.17.0-dev.7 - uno-check -v --ci --non-interactive --fix --skip vswin --skip vsmac --skip xcode --skip vswinworkloads --skip androidemulator --skip dotnetnewunotemplates --verbose - continue-on-error: true - - # Install .NET workloads - - name: Install workloads - shell: pwsh - run: dotnet workload install ios maccatalyst android wasm-tools - - # Install Node.js - - name: Setup Node.js environment - uses: actions/setup-node@v3.8.1 - - # Add MSBuild to the PATH: https://github.com/microsoft/setup-msbuild - - name: Setup MSBuild - uses: microsoft/setup-msbuild@v1.3.1 - - - name: Set up dependency caching for faster builds - uses: actions/cache@v3 - with: - path: ~/.nuget/packages - key: ${{ runner.os }}-nuget-${{ hashFiles('**/packages.lock.json') }} - restore-keys: | - ${{ runner.os }}-nuget- + dotnet tool install -g uno.check + ("${{ inputs.target-platform }} ".Split(' ') | ForEach-Object { + $target = $_.Replace("_win", "").Replace("_macos", "") + if (![string]::IsNullOrEmpty($target)) { + echo "target: $target" + uno-check -v --ci --non-interactive --fix --target $target --skip vswin --skip vsmac --skip xcode --skip vswinworkloads --skip androidemulator --skip dotnetnewunotemplates + echo "uno-check finished for target: $target " + } + }) diff --git a/.github/workflows/package-windows.yml b/.github/workflows/package-windows.yml new file mode 100644 index 00000000..e4e995b9 --- /dev/null +++ b/.github/workflows/package-windows.yml @@ -0,0 +1,74 @@ +name: Build Windows Packages + +on: + workflow_dispatch: + +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: true + +jobs: + + create_package: + + strategy: + matrix: + configuration: [Release] + platform: [x86,x64,ARM64] + + runs-on: windows-latest # For a list of available runner types, refer to + # https://help.github.com/en/actions/reference/workflow-syntax-for-github-actions#jobsjob_idruns-on + + env: + Solution_Fullname: src/MZikmund.sln + App_Project_Fullname: src/app/MZikmund.App/MZikmund.App.csproj + App_Project_Path: src/app/MZikmund.App + STEP_TIMEOUT_MINUTES: 60 + + steps: + - uses: actions/checkout@v3 + with: + fetch-depth: 0 + + - name: Install Dependencies + timeout-minutes: ${{ fromJSON(env.STEP_TIMEOUT_MINUTES) }} + uses: "./.github/steps/install_dependencies" + + # Add MSBuild to the PATH: https://github.com/microsoft/setup-msbuild + - name: Setup MSBuild + uses: microsoft/setup-msbuild@v1.3.1 + + # Restore the application to populate the obj folder with RuntimeIdentifiers + - name: Restore the application + run: msbuild $env:App_Project_Fullname /t:Restore /p:Configuration=$env:Configuration /p:PublishReadyToRun=true + env: + Configuration: ${{ matrix.configuration }} + + # Create the app package by building and packaging the project + - name: Create the app package + run: msbuild $env:App_Project_Fullname /p:TargetFramework=net8.0-windows10.0.22621 /p:Configuration=$env:Configuration /p:Platform=$env:Platform /p:UapAppxPackageBuildMode=$env:Appx_Package_Build_Mode /p:AppxBundle=$env:Appx_Bundle /p:AppxPackageDir="$env:Appx_Package_Dir" /p:GenerateAppxPackageOnBuild=true + env: + Appx_Bundle: Never + Appx_Package_Build_Mode: CI + Appx_Package_Dir: Packages\ + Configuration: ${{ matrix.configuration }} + Platform: ${{ matrix.platform }} + + # Upload the MSIX package: https://github.com/marketplace/actions/upload-a-build-artifact + - name: Upload MSIX package + uses: actions/upload-artifact@v4 + with: + name: MSIX_Package_${{ matrix.platform }} + path: ${{ env.App_Project_Path }}\\Packages + + merge: + runs-on: windows-latest + needs: create_package + steps: + - name: Merge Artifacts + uses: actions/upload-artifact/merge@v4 + with: + name: MSIX + delete-merged: true + pattern: MSIX_Package_* + retention-days: 10 \ No newline at end of file diff --git a/src/Directory.Build.props b/src/Directory.Build.props index 563e1840..10ba1ed7 100644 --- a/src/Directory.Build.props +++ b/src/Directory.Build.props @@ -21,6 +21,11 @@ --> $(NoWarn);NU1507;NETSDK1201;PRI257;XAOBS001 Uno0001 + + + 10.0.22621.3233 + 4.2.2 +