From 8a8b2887df71dc6c84bec2fd80cb07e30c50a14d Mon Sep 17 00:00:00 2001 From: Arlo Godfrey Date: Fri, 26 Jul 2024 13:06:22 -0500 Subject: [PATCH 01/19] Expand matrix to build each winui/multitarget separately --- .github/workflows/build.yml | 35 +++++++++++++++++++---------------- tooling | 2 +- 2 files changed, 20 insertions(+), 17 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 12bccde0..bd1692e3 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -61,14 +61,17 @@ jobs: # See https://docs.github.com/actions/using-jobs/using-a-matrix-for-your-jobs strategy: - fail-fast: false # prevent one matrix pipeline from being cancelled if one fails, we want them both to run to completion. + fail-fast: false # prevent one matrix pipeline from being cancelled if one fails, we want them all to run to completion. matrix: - platform: [WinUI2, WinUI3] + winui: [2, 3] + multitarget: ['uwp', 'wasdk', 'wasm', 'wpf', 'linuxgtk', 'macos', 'ios', 'android'] + exclude: + - winui: 2 + multitarget: wasdk + - winui: 3 + multitarget: uwp env: - # faux-ternary expression to select which platforms to build for each platform vs. duplicating step below. - TARGET_PLATFORMS: ${{ matrix.platform != 'WinUI3' && 'all-wasdk' || 'all-uwp' }} - TEST_PLATFORM: ${{ matrix.platform != 'WinUI3' && 'UWP' || 'WinAppSdk' }} VERSION_PROPERTY: ${{ github.ref == 'refs/heads/main' && format('build.{0}', github.run_number) || format('pull-{0}.{1}', github.event.number, github.run_number) }} # Steps represent a sequence of tasks that will be executed as part of the job @@ -124,18 +127,17 @@ jobs: with: vs-version: '[17.9,)' - - name: Enable ${{ env.TARGET_PLATFORMS }} TargetFrameworks + - name: Enable ${{ matrix.multitarget }} TargetFrameworks working-directory: ./${{ env.MULTI_TARGET_DIRECTORY }} - run: powershell -version 5.1 -command "./UseTargetFrameworks.ps1 ${{ env.TARGET_PLATFORMS }}" -ErrorAction Stop - - - name: Generate solution w/ ${{ env.TEST_PLATFORM }} Tests - working-directory: ./ - run: powershell -version 5.1 -command "./tooling/GenerateAllSolution.ps1 -IncludeHeads ${{ env.TEST_PLATFORM }}${{ env.ENABLE_DIAGNOSTICS == 'true' && ' -UseDiagnostics' || '' }}" -ErrorAction Stop + run: powershell -version 5.1 -command "./UseTargetFrameworks.ps1 -Include ${{ matrix.multitarget }}" -ErrorAction Stop - - name: Enable Uno.WinUI (in WinUI3 matrix only) - if: ${{ matrix.platform == 'WinUI3' }} + - name: Set WinUI Version working-directory: ./${{ env.MULTI_TARGET_DIRECTORY }} - run: powershell -version 5.1 -command "./UseUnoWinUI.ps1 3" -ErrorAction Stop + run: powershell -version 5.1 -command "./UseUnoWinUI.ps1 ${{ matrix.winui }}" -ErrorAction Stop + + - name: Generate solution with ${{ matrix.multitarget }} gallery and tests + working-directory: ./ + run: powershell -version 5.1 -command "./tooling/GenerateAllSolution.ps1 -IncludeHeads ${{ matrix.multitarget }}${{ env.ENABLE_DIAGNOSTICS == 'true' && ' -UseDiagnostics' || '' }}" -ErrorAction Stop - name: Format Date/Time of Commit for Package Version if: ${{ env.IS_RELEASE == 'false' }} @@ -189,9 +191,10 @@ jobs: id: test-generator run: vstest.console.exe ./tooling/CommunityToolkit.Tooling.SampleGen.Tests/bin/Release/net6.0/CommunityToolkit.Tooling.SampleGen.Tests.dll /logger:"trx;LogFileName=SourceGenerators.trx" - - name: Run experiment tests against ${{ env.TEST_PLATFORM }} + - name: Run experiment tests against ${{ matrix.multitarget }} + if: ${{ matrix.multitarget == 'uwp' || matrix.multitarget == 'wasdk' }} id: test-platform - run: vstest.console.exe ./tooling/**/CommunityToolkit.Tests.${{ env.TEST_PLATFORM }}.build.appxrecipe /Framework:FrameworkUap10 /logger:"trx;LogFileName=${{ env.TEST_PLATFORM }}.trx" /Blame + run: vstest.console.exe ./tooling/**/CommunityToolkit.Tests.${{ matrix.multitarget }}.build.appxrecipe /Framework:FrameworkUap10 /logger:"trx;LogFileName=${{ matrix.multitarget }}.trx" /Blame - name: Create test reports run: | diff --git a/tooling b/tooling index e366657a..91b3fc0b 160000 --- a/tooling +++ b/tooling @@ -1 +1 @@ -Subproject commit e366657a924a745c6fb4162dc4c58d2e07fc0613 +Subproject commit 91b3fc0b811fc09ff3f373fa7580d62fea504337 From e0798fdcc321feab92f59962ba9a4b0fc3f46e6f Mon Sep 17 00:00:00 2001 From: Arlo Godfrey Date: Fri, 26 Jul 2024 13:27:14 -0500 Subject: [PATCH 02/19] Limit usage of uno-check to uno targeted jobs --- .github/workflows/build.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index bd1692e3..56dde1bc 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -112,9 +112,11 @@ jobs: run: dotnet tool restore - name: Run Uno Check to Install Dependencies + if: ${{ matrix.multitarget == 'wasm' || matrix.multitarget == 'ios' || matrix.multitarget == 'android' || matrix.multitarget == 'macos' || matrix.multitarget == 'uwp' }} run: > dotnet tool run uno-check --ci + --target ${{ matrix.multitarget }} --fix --non-interactive --skip wsl From 00d76f38bd663b2bae5820543317796bdc354d90 Mon Sep 17 00:00:00 2001 From: Arlo Godfrey Date: Fri, 26 Jul 2024 17:14:36 -0500 Subject: [PATCH 03/19] Use new MultiTargets parameter for passing head/target references from batch file --- GenerateAllSolution.bat | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/GenerateAllSolution.bat b/GenerateAllSolution.bat index e7d3e989..c4344e07 100644 --- a/GenerateAllSolution.bat +++ b/GenerateAllSolution.bat @@ -1,5 +1,5 @@ @ECHO OFF -SET "IncludeHeads=%1" -IF "%IncludeHeads%"=="" SET "IncludeHeads=all" +SET "MultiTargets=%1" +IF "%MultiTargets%"=="" SET "MultiTargets=all" -powershell .\tooling\GenerateAllSolution.ps1 -IncludeHeads %IncludeHeads% \ No newline at end of file +powershell .\tooling\GenerateAllSolution.ps1 -MultiTargets %MultiTargets% \ No newline at end of file From 311c4974abcd834cccdd2a232c38704c56c56d20 Mon Sep 17 00:00:00 2001 From: Arlo Godfrey Date: Fri, 26 Jul 2024 17:59:26 -0500 Subject: [PATCH 04/19] Split packaging into separate build step for matrix build, use latest submodule fixes --- .github/workflows/build.yml | 150 +++++++++++++++++++++++------------- tooling | 2 +- 2 files changed, 96 insertions(+), 56 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 56dde1bc..11f015b0 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -66,14 +66,13 @@ jobs: winui: [2, 3] multitarget: ['uwp', 'wasdk', 'wasm', 'wpf', 'linuxgtk', 'macos', 'ios', 'android'] exclude: + # WinUI 2 not supported on wasdk - winui: 2 multitarget: wasdk + # WinUI 3 not supported on uwp - winui: 3 multitarget: uwp - env: - VERSION_PROPERTY: ${{ github.ref == 'refs/heads/main' && format('build.{0}', github.run_number) || format('pull-{0}.{1}', github.event.number, github.run_number) }} - # Steps represent a sequence of tasks that will be executed as part of the job steps: - name: Configure Pagefile @@ -129,57 +128,21 @@ jobs: with: vs-version: '[17.9,)' - - name: Enable ${{ matrix.multitarget }} TargetFrameworks - working-directory: ./${{ env.MULTI_TARGET_DIRECTORY }} - run: powershell -version 5.1 -command "./UseTargetFrameworks.ps1 -Include ${{ matrix.multitarget }}" -ErrorAction Stop - - - name: Set WinUI Version - working-directory: ./${{ env.MULTI_TARGET_DIRECTORY }} - run: powershell -version 5.1 -command "./UseUnoWinUI.ps1 ${{ matrix.winui }}" -ErrorAction Stop - - - name: Generate solution with ${{ matrix.multitarget }} gallery and tests + # Generate full solution with all projects (sample gallery heads, components, tests) + - name: Generate solution with ${{ matrix.multitarget }} gallery, components and tests working-directory: ./ - run: powershell -version 5.1 -command "./tooling/GenerateAllSolution.ps1 -IncludeHeads ${{ matrix.multitarget }}${{ env.ENABLE_DIAGNOSTICS == 'true' && ' -UseDiagnostics' || '' }}" -ErrorAction Stop - - - name: Format Date/Time of Commit for Package Version - if: ${{ env.IS_RELEASE == 'false' }} - run: | - echo "VERSION_DATE=$(git log -1 --format=%cd --date=format:%y%m%d)" >> $env:GITHUB_ENV - - # Semver regex: https://regex101.com/r/Ly7O1x/3/ - - name: Format Date/Time of Release Package Version - if: ${{ env.IS_RELEASE == 'true' }} - run: | - $ref = "${{ github.ref }}" - $ref -match "^refs/heads/rel/(?0|[1-9]\d*)\.(?0|[1-9]\d*)\.(?0|[1-9]\d*)(?:-(?(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+(?[0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$" - echo "VERSION_DATE=$($matches['patch'])" >> $env:GITHUB_ENV - echo "VERSION_PROPERTY=$($matches['prerelease'])" >> $env:GITHUB_ENV + run: powershell -version 5.1 -command "./tooling/GenerateAllSolution.ps1 -MultiTargets ${{ matrix.multitarget }} ${{ env.ENABLE_DIAGNOSTICS == 'true' && ' -UseDiagnostics' || '' }} -WinUIMajorVersion ${{ matrix.winui }}" -ErrorAction Stop + # Build solution - name: MSBuild run: > msbuild.exe /restore /nowarn:MSB4011 /p:Configuration=Release /m - /p:DateForVersion=${{ env.VERSION_DATE }} - /p:PreviewVersion=${{ env.VERSION_PROPERTY }} ${{ env.ENABLE_DIAGNOSTICS == 'true' && '/bl' || '' }} /v:${{ env.MSBUILD_VERBOSITY }} CommunityToolkit.AllComponents.sln - # Build All Packages - - name: pack experiments - working-directory: ./tooling/Scripts/ - run: ./PackEachExperiment.ps1 -date ${{ env.VERSION_DATE }}${{ env.VERSION_PROPERTY != '' && format(' -postfix {0}', env.VERSION_PROPERTY) || '' }} - - # Push Pull Request Packages to our DevOps Artifacts Feed (see nuget.config) - - name: Push Pull Request Packages (if not fork) - if: ${{ env.IS_PR == 'true' && github.event.pull_request.head.repo.full_name == github.repository && github.actor != 'dependabot[bot]' }} - run: | - dotnet nuget add source https://pkgs.dev.azure.com/dotnet/CommunityToolkit/_packaging/CommunityToolkit-PullRequests/nuget/v3/index.json ` - --name PullRequests ` - --username dummy --password ${{ secrets.DEVOPS_PACKAGE_PUSH_TOKEN }} - dotnet nuget push "**/*.nupkg" --api-key dummy --source PullRequests --skip-duplicate - # Run tests - name: Setup VSTest Path uses: darenm/setup-vstest@3a16d909a1f3bbc65b52f8270d475d905e7d3e44 @@ -193,21 +156,22 @@ jobs: id: test-generator run: vstest.console.exe ./tooling/CommunityToolkit.Tooling.SampleGen.Tests/bin/Release/net6.0/CommunityToolkit.Tooling.SampleGen.Tests.dll /logger:"trx;LogFileName=SourceGenerators.trx" - - name: Run experiment tests against ${{ matrix.multitarget }} + - name: Run component tests against ${{ matrix.multitarget }} if: ${{ matrix.multitarget == 'uwp' || matrix.multitarget == 'wasdk' }} id: test-platform run: vstest.console.exe ./tooling/**/CommunityToolkit.Tests.${{ matrix.multitarget }}.build.appxrecipe /Framework:FrameworkUap10 /logger:"trx;LogFileName=${{ matrix.multitarget }}.trx" /Blame - name: Create test reports + if: ${{ matrix.multitarget == 'uwp' || matrix.multitarget == 'wasdk' }} run: | - testspace '[${{ matrix.platform }}]./TestResults/*.trx' + testspace '[${{ matrix.multitarget }}]./TestResults/*.trx' if: ${{ always() && (steps.test-generator.conclusion == 'success' || steps.test-platform.conclusion == 'success') }} - name: Artifact - Diagnostic Logs uses: actions/upload-artifact@v4 if: ${{ (env.ENABLE_DIAGNOSTICS == 'true' || env.COREHOST_TRACE != '') && always() }} with: - name: build-logs-${{ matrix.platform }} + name: build-logs-${{ matrix.multitarget }}-winui${{ matrix.winui }} path: ./**/*.*log - name: Artifact - ILC Repro @@ -229,7 +193,7 @@ jobs: uses: actions/upload-artifact@v4 if: ${{ (env.ENABLE_DIAGNOSTICS == 'true' || env.COREHOST_TRACE != '') && always() }} with: - name: CrashDumps-${{ matrix.platform }} + name: CrashDumps-${{ matrix.multitarget }}-winui${{ matrix.winui }} path: '${{ github.workspace }}/CrashDumps' - name: Analyze Dump @@ -238,11 +202,80 @@ jobs: dotnet tool install --global dotnet-dump dotnet-dump analyze ${{ steps.detect-dump.outputs.DUMP_FILE }} -c "clrstack" -c "pe -lines" -c "exit" + package: + needs: [build] + strategy: + fail-fast: false # prevent one matrix pipeline from being cancelled if one fails, we want them all to run to completion. + matrix: + winui: [2, 3] + + env: + VERSION_PROPERTY: ${{ github.ref == 'refs/heads/main' && format('build.{0}', github.run_number) || format('pull-{0}.{1}', github.event.number, github.run_number) }} + + steps: + - name: Install .NET SDK v${{ env.DOTNET_VERSION }} + uses: actions/setup-dotnet@v4 + with: + dotnet-version: ${{ env.DOTNET_VERSION }} + + - name: .NET Info (if diagnostics) + if: ${{ env.ENABLE_DIAGNOSTICS == 'true' }} + run: dotnet --info + + # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it + - name: Checkout Repository + uses: actions/checkout@v4 + with: + submodules: recursive + + # Semver regex: https://regex101.com/r/Ly7O1x/3/ + - name: Format Date/Time of Release Package Version + if: ${{ env.IS_RELEASE == 'true' }} + run: | + $ref = "${{ github.ref }}" + $ref -match "^refs/heads/rel/(?0|[1-9]\d*)\.(?0|[1-9]\d*)\.(?0|[1-9]\d*)(?:-(?(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+(?[0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$" + echo "VERSION_DATE=$($matches['patch'])" >> $env:GITHUB_ENV + echo "VERSION_PROPERTY=$($matches['prerelease'])" >> $env:GITHUB_ENV + + - name: Format Date/Time of Commit for Package Version + if: ${{ env.IS_RELEASE == 'false' }} + run: | + echo "VERSION_DATE=$(git log -1 --format=%cd --date=format:%y%m%d)" >> $env:GITHUB_ENV + + - name: Run Uno Check to Install Dependencies + run: > + dotnet tool run uno-check + --ci + --fix + --non-interactive + --skip wsl + --skip androidemulator + --skip vswinworkloads + --verbose + + - name: Add msbuild to PATH + uses: microsoft/setup-msbuild@v2 + with: + vs-version: '[17.9,)' + + # Build and pack component nupkg + - name: Build and pack component packages + run: ./tooling/Build-Toolkit-Components.ps1 -MultiTargets all -WinUIMajorVersion ${{ matrix.winui }} -DateForVersion ${{ env.VERSION_DATE }} ${{ env.VERSION_PROPERTY != '' && format(' -PreviewVersion {0}', env.VERSION_PROPERTY) || '' }} -EnableBinlogs ${{ env.ENABLE_DIAGNOSTICS }} -Verbose ${{ env.ENABLE_DIAGNOSTICS }} -BinlogOutput ./ -NupkgOutput ./ -Release + + # Push Pull Request Packages to our DevOps Artifacts Feed (see nuget.config) + - name: Push Pull Request Packages (if not fork) + if: ${{ env.IS_PR == 'true' && github.event.pull_request.head.repo.full_name == github.repository && github.actor != 'dependabot[bot]' }} + run: | + dotnet nuget add source https://pkgs.dev.azure.com/dotnet/CommunityToolkit/_packaging/CommunityToolkit-PullRequests/nuget/v3/index.json ` + --name PullRequests ` + --username dummy --password ${{ secrets.DEVOPS_PACKAGE_PUSH_TOKEN }} + dotnet nuget push "./*.nupkg" --api-key dummy --source PullRequests --skip-duplicate + - name: Upload Package List uses: actions/upload-artifact@v4 if: ${{ env.IS_PR == 'false' }} with: - name: nuget-list-${{ matrix.platform }} + name: nuget-list-${{ matrix.winui }} if-no-files-found: error path: | ${{ github.workspace }}/.github/workflows/SignClientFileList.txt @@ -252,13 +285,20 @@ jobs: uses: actions/upload-artifact@v4 if: ${{ env.IS_PR == 'false' || github.event.pull_request.head.repo.full_name != github.repository }} with: - name: nuget-packages-${{ matrix.platform }} + name: nuget-packages-winui${{ matrix.winui }} if-no-files-found: error path: | - **/*.nupkg + ./*.nupkg + + - name: Artifact - Diagnostic Logs + uses: actions/upload-artifact@v4 + if: ${{ (env.ENABLE_DIAGNOSTICS == 'true' || env.COREHOST_TRACE != '') && always() }} + with: + name: build-logs-winui${{ matrix.winui }} + path: ./*.*log sign: - needs: [build] + needs: [package] if: ${{ github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/heads/rel/') }} runs-on: windows-latest permissions: @@ -267,7 +307,7 @@ jobs: strategy: fail-fast: false # prevent one matrix pipeline from being cancelled if one fails, we want them both to run to completion. matrix: - platform: [WinUI2, WinUI3] + winui: [2, 3] steps: - name: Install .NET SDK v${{ env.DOTNET_VERSION }} @@ -278,13 +318,13 @@ jobs: - name: Download Package List uses: actions/download-artifact@v4 with: - name: nuget-list-${{ matrix.platform }} + name: nuget-list-${{ matrix.winui }} path: ./ - - name: Download built packages for ${{ matrix.platform }} + - name: Download built packages for WinUI ${{ matrix.winui }} uses: actions/download-artifact@v4 with: - name: nuget-packages-${{ matrix.platform }} + name: nuget-packages-winui${{ matrix.winui }} path: ./packages - name: Install Signing Tool diff --git a/tooling b/tooling index 91b3fc0b..23bc8ec0 160000 --- a/tooling +++ b/tooling @@ -1 +1 @@ -Subproject commit 91b3fc0b811fc09ff3f373fa7580d62fea504337 +Subproject commit 23bc8ec0e7b7b26943286bc4705a3ad2dbc99188 From 5e51f33119de01e555b07b5461b60667d40c4210 Mon Sep 17 00:00:00 2001 From: Arlo Godfrey Date: Fri, 26 Jul 2024 18:00:55 -0500 Subject: [PATCH 05/19] Add missing required runs-on field --- .github/workflows/build.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 11f015b0..ecfbd8c5 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -203,6 +203,7 @@ jobs: dotnet-dump analyze ${{ steps.detect-dump.outputs.DUMP_FILE }} -c "clrstack" -c "pe -lines" -c "exit" package: + runs-on: windows-latest needs: [build] strategy: fail-fast: false # prevent one matrix pipeline from being cancelled if one fails, we want them all to run to completion. From 6ac35c72b96726374f07139d5f08ed9de8728a06 Mon Sep 17 00:00:00 2001 From: Arlo Godfrey Date: Fri, 26 Jul 2024 18:03:12 -0500 Subject: [PATCH 06/19] Deduplication 'if' condition for Create test reports step --- .github/workflows/build.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index ecfbd8c5..cf33afc5 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -162,10 +162,9 @@ jobs: run: vstest.console.exe ./tooling/**/CommunityToolkit.Tests.${{ matrix.multitarget }}.build.appxrecipe /Framework:FrameworkUap10 /logger:"trx;LogFileName=${{ matrix.multitarget }}.trx" /Blame - name: Create test reports - if: ${{ matrix.multitarget == 'uwp' || matrix.multitarget == 'wasdk' }} run: | testspace '[${{ matrix.multitarget }}]./TestResults/*.trx' - if: ${{ always() && (steps.test-generator.conclusion == 'success' || steps.test-platform.conclusion == 'success') }} + if: ${{ (matrix.multitarget == 'uwp' || matrix.multitarget == 'wasdk') && (steps.test-generator.conclusion == 'success' || steps.test-platform.conclusion == 'success') }} - name: Artifact - Diagnostic Logs uses: actions/upload-artifact@v4 From 965a77349b485aaf951363016e2116a86ae199bc Mon Sep 17 00:00:00 2001 From: Arlo Godfrey Date: Fri, 26 Jul 2024 18:57:42 -0500 Subject: [PATCH 07/19] Add dotnet tool restore to package job --- .github/workflows/build.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index cf33afc5..2cae9d27 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -242,6 +242,9 @@ jobs: run: | echo "VERSION_DATE=$(git log -1 --format=%cd --date=format:%y%m%d)" >> $env:GITHUB_ENV + - name: Restore dotnet tools + run: dotnet tool restore + - name: Run Uno Check to Install Dependencies run: > dotnet tool run uno-check From 1ae25555031845714c565f724f79d3d0f5e4de74 Mon Sep 17 00:00:00 2001 From: Arlo Godfrey Date: Mon, 29 Jul 2024 13:07:41 -0500 Subject: [PATCH 08/19] Fixed syntax error --- tooling | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tooling b/tooling index 23bc8ec0..ae6f58fb 160000 --- a/tooling +++ b/tooling @@ -1 +1 @@ -Subproject commit 23bc8ec0e7b7b26943286bc4705a3ad2dbc99188 +Subproject commit ae6f58fb2456bcad1a8be985db386e83fb54e023 From 4f7ab163d2f954521e18e75ee9a90c6e847acb3b Mon Sep 17 00:00:00 2001 From: Arlo Godfrey Date: Tue, 30 Jul 2024 16:06:42 -0500 Subject: [PATCH 09/19] Update tooling pointer --- tooling | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tooling b/tooling index ae6f58fb..c51b4d53 160000 --- a/tooling +++ b/tooling @@ -1 +1 @@ -Subproject commit ae6f58fb2456bcad1a8be985db386e83fb54e023 +Subproject commit c51b4d53199aba76a5f7caf722797887ee0e75cc From b7be4d08cb11ce64ebff2d8409e06d9e880a0299 Mon Sep 17 00:00:00 2001 From: Arlo Godfrey Date: Tue, 30 Jul 2024 18:30:54 -0500 Subject: [PATCH 10/19] Use quotes for PreviewVersion parameter --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 2cae9d27..8b2e3b76 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -263,7 +263,7 @@ jobs: # Build and pack component nupkg - name: Build and pack component packages - run: ./tooling/Build-Toolkit-Components.ps1 -MultiTargets all -WinUIMajorVersion ${{ matrix.winui }} -DateForVersion ${{ env.VERSION_DATE }} ${{ env.VERSION_PROPERTY != '' && format(' -PreviewVersion {0}', env.VERSION_PROPERTY) || '' }} -EnableBinlogs ${{ env.ENABLE_DIAGNOSTICS }} -Verbose ${{ env.ENABLE_DIAGNOSTICS }} -BinlogOutput ./ -NupkgOutput ./ -Release + run: ./tooling/Build-Toolkit-Components.ps1 -MultiTargets all -WinUIMajorVersion ${{ matrix.winui }} -DateForVersion ${{ env.VERSION_DATE }} ${{ env.VERSION_PROPERTY != '' && format('-PreviewVersion \'{0}\'', env.VERSION_PROPERTY) || '' }} -EnableBinlogs ${{ env.ENABLE_DIAGNOSTICS }} -Verbose ${{ env.ENABLE_DIAGNOSTICS }} -BinlogOutput ./ -NupkgOutput ./ -Release # Push Pull Request Packages to our DevOps Artifacts Feed (see nuget.config) - name: Push Pull Request Packages (if not fork) From 60fba08f8c33cd21bd11ee9e02d7964cefdd089c Mon Sep 17 00:00:00 2001 From: Arlo Godfrey Date: Tue, 30 Jul 2024 18:49:40 -0500 Subject: [PATCH 11/19] Use double quotes instead of escaped single quotes --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 8b2e3b76..1dfd0ccd 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -263,7 +263,7 @@ jobs: # Build and pack component nupkg - name: Build and pack component packages - run: ./tooling/Build-Toolkit-Components.ps1 -MultiTargets all -WinUIMajorVersion ${{ matrix.winui }} -DateForVersion ${{ env.VERSION_DATE }} ${{ env.VERSION_PROPERTY != '' && format('-PreviewVersion \'{0}\'', env.VERSION_PROPERTY) || '' }} -EnableBinlogs ${{ env.ENABLE_DIAGNOSTICS }} -Verbose ${{ env.ENABLE_DIAGNOSTICS }} -BinlogOutput ./ -NupkgOutput ./ -Release + run: ./tooling/Build-Toolkit-Components.ps1 -MultiTargets all -WinUIMajorVersion ${{ matrix.winui }} -DateForVersion ${{ env.VERSION_DATE }} ${{ env.VERSION_PROPERTY != '' && format('-PreviewVersion "{0}"', env.VERSION_PROPERTY) || '' }} -EnableBinlogs ${{ env.ENABLE_DIAGNOSTICS }} -Verbose ${{ env.ENABLE_DIAGNOSTICS }} -BinlogOutput ./ -NupkgOutput ./ -Release # Push Pull Request Packages to our DevOps Artifacts Feed (see nuget.config) - name: Push Pull Request Packages (if not fork) From c2298a9407f5736d919f5d3bc50a3c996b38ad17 Mon Sep 17 00:00:00 2001 From: Arlo Godfrey Date: Tue, 30 Jul 2024 20:05:51 -0500 Subject: [PATCH 12/19] Include or exclude switch params instead of passing true/false --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 1dfd0ccd..18df5c4a 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -263,7 +263,7 @@ jobs: # Build and pack component nupkg - name: Build and pack component packages - run: ./tooling/Build-Toolkit-Components.ps1 -MultiTargets all -WinUIMajorVersion ${{ matrix.winui }} -DateForVersion ${{ env.VERSION_DATE }} ${{ env.VERSION_PROPERTY != '' && format('-PreviewVersion "{0}"', env.VERSION_PROPERTY) || '' }} -EnableBinlogs ${{ env.ENABLE_DIAGNOSTICS }} -Verbose ${{ env.ENABLE_DIAGNOSTICS }} -BinlogOutput ./ -NupkgOutput ./ -Release + run: ./tooling/Build-Toolkit-Components.ps1 -MultiTargets all -WinUIMajorVersion ${{ matrix.winui }} -DateForVersion ${{ env.VERSION_DATE }} ${{ env.VERSION_PROPERTY != '' && format('-PreviewVersion "{0}"', env.VERSION_PROPERTY) || '' }} ${{ env.ENABLE_DIAGNOSTICS == 'true' && -EnableBinlogs || '' }} ${{ env.ENABLE_DIAGNOSTICS == 'true' && -Verbose || '' }} -BinlogOutput ./ -NupkgOutput ./ -Release # Push Pull Request Packages to our DevOps Artifacts Feed (see nuget.config) - name: Push Pull Request Packages (if not fork) From c1e845a1531a4d0cbf0dde367e8e2ac53f9fd63c Mon Sep 17 00:00:00 2001 From: Arlo Godfrey Date: Wed, 31 Jul 2024 11:40:31 -0500 Subject: [PATCH 13/19] Fixed syntax error --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 18df5c4a..606f324a 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -263,7 +263,7 @@ jobs: # Build and pack component nupkg - name: Build and pack component packages - run: ./tooling/Build-Toolkit-Components.ps1 -MultiTargets all -WinUIMajorVersion ${{ matrix.winui }} -DateForVersion ${{ env.VERSION_DATE }} ${{ env.VERSION_PROPERTY != '' && format('-PreviewVersion "{0}"', env.VERSION_PROPERTY) || '' }} ${{ env.ENABLE_DIAGNOSTICS == 'true' && -EnableBinlogs || '' }} ${{ env.ENABLE_DIAGNOSTICS == 'true' && -Verbose || '' }} -BinlogOutput ./ -NupkgOutput ./ -Release + run: ./tooling/Build-Toolkit-Components.ps1 -MultiTargets all -WinUIMajorVersion ${{ matrix.winui }} -DateForVersion ${{ env.VERSION_DATE }} ${{ env.VERSION_PROPERTY != '' && format('-PreviewVersion "{0}"', env.VERSION_PROPERTY) || '' }} ${{ env.ENABLE_DIAGNOSTICS == 'true' && '-EnableBinlogs' || '' }} ${{ env.ENABLE_DIAGNOSTICS == 'true' && '-Verbose' || '' }} -BinlogOutput ./ -NupkgOutput ./ -Release # Push Pull Request Packages to our DevOps Artifacts Feed (see nuget.config) - name: Push Pull Request Packages (if not fork) From dbb5a9b536bfd4b7806c51035f48683078ad6fc5 Mon Sep 17 00:00:00 2001 From: Arlo Date: Wed, 31 Jul 2024 12:11:51 -0500 Subject: [PATCH 14/19] Update .github/workflows/build.yml --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 606f324a..2ca2b585 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -111,7 +111,7 @@ jobs: run: dotnet tool restore - name: Run Uno Check to Install Dependencies - if: ${{ matrix.multitarget == 'wasm' || matrix.multitarget == 'ios' || matrix.multitarget == 'android' || matrix.multitarget == 'macos' || matrix.multitarget == 'uwp' }} + if: ${{ matrix.multitarget != 'wasdk' && matrix.multitarget != 'linuxgtk' && matrix.multitarget != 'wpf' }} run: > dotnet tool run uno-check --ci From 05ef05e3fa28dd968624258552ab80cf80a28ca7 Mon Sep 17 00:00:00 2001 From: Arlo Godfrey Date: Wed, 31 Jul 2024 19:08:28 -0500 Subject: [PATCH 15/19] Use recursive wildcard for discovering nuget packages. It should have output the *.nupkg for all packages to the path ./ we passed into the build script, but the ./*.nupkg wildcard failed to find them for artifact upload. Either our script copies nupkg to the given folder locally but not in CI, or `dotnet nuget push ./*.nupkg` failed to locate nupkg files output to the working directory. Let's see which one. --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 2ca2b585..8ee9ff09 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -272,7 +272,7 @@ jobs: dotnet nuget add source https://pkgs.dev.azure.com/dotnet/CommunityToolkit/_packaging/CommunityToolkit-PullRequests/nuget/v3/index.json ` --name PullRequests ` --username dummy --password ${{ secrets.DEVOPS_PACKAGE_PUSH_TOKEN }} - dotnet nuget push "./*.nupkg" --api-key dummy --source PullRequests --skip-duplicate + dotnet nuget push "./**/*.nupkg" --api-key dummy --source PullRequests --skip-duplicate - name: Upload Package List uses: actions/upload-artifact@v4 From 04de6e232256ba3b5867107ec703a9fee77b7aeb Mon Sep 17 00:00:00 2001 From: Arlo Godfrey Date: Thu, 1 Aug 2024 10:32:39 -0500 Subject: [PATCH 16/19] Remove leading './' from dotnet nuget push --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 8ee9ff09..2940c52a 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -272,7 +272,7 @@ jobs: dotnet nuget add source https://pkgs.dev.azure.com/dotnet/CommunityToolkit/_packaging/CommunityToolkit-PullRequests/nuget/v3/index.json ` --name PullRequests ` --username dummy --password ${{ secrets.DEVOPS_PACKAGE_PUSH_TOKEN }} - dotnet nuget push "./**/*.nupkg" --api-key dummy --source PullRequests --skip-duplicate + dotnet nuget push "*.nupkg" --api-key dummy --source PullRequests --skip-duplicate - name: Upload Package List uses: actions/upload-artifact@v4 From c11e7c3aa824e839c3562f3740376eab8a7daadc Mon Sep 17 00:00:00 2001 From: Arlo Godfrey Date: Thu, 1 Aug 2024 17:52:39 -0500 Subject: [PATCH 17/19] Update tooling to latest main --- docs | 1 + tooling | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) create mode 160000 docs diff --git a/docs b/docs new file mode 160000 index 00000000..0bbb0f87 --- /dev/null +++ b/docs @@ -0,0 +1 @@ +Subproject commit 0bbb0f87b21550a0900264500b0b8a37a419d2a0 diff --git a/tooling b/tooling index c51b4d53..fda081e1 160000 --- a/tooling +++ b/tooling @@ -1 +1 @@ -Subproject commit c51b4d53199aba76a5f7caf722797887ee0e75cc +Subproject commit fda081e11081ec7b0c034cdacbb817d906128b24 From 8834dd10b97ec9add1deaea8acb89ca8786bea1b Mon Sep 17 00:00:00 2001 From: Arlo Godfrey Date: Thu, 1 Aug 2024 17:54:34 -0500 Subject: [PATCH 18/19] Revert "Update tooling to latest main" This reverts commit 9f1713c916781e9dc6dd4764648e56834b109037. --- docs | 1 - tooling | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) delete mode 160000 docs diff --git a/docs b/docs deleted file mode 160000 index 0bbb0f87..00000000 --- a/docs +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 0bbb0f87b21550a0900264500b0b8a37a419d2a0 diff --git a/tooling b/tooling index fda081e1..c51b4d53 160000 --- a/tooling +++ b/tooling @@ -1 +1 @@ -Subproject commit fda081e11081ec7b0c034cdacbb817d906128b24 +Subproject commit c51b4d53199aba76a5f7caf722797887ee0e75cc From 9c7642ff35eaaa51a404f9bcd04b10c7cf851921 Mon Sep 17 00:00:00 2001 From: Arlo Godfrey Date: Thu, 1 Aug 2024 17:55:03 -0500 Subject: [PATCH 19/19] Update tooling to latest main --- tooling | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tooling b/tooling index c51b4d53..fda081e1 160000 --- a/tooling +++ b/tooling @@ -1 +1 @@ -Subproject commit c51b4d53199aba76a5f7caf722797887ee0e75cc +Subproject commit fda081e11081ec7b0c034cdacbb817d906128b24