From 7ec30a1d0d8b39b43c1ea1552579ec018a53b35f Mon Sep 17 00:00:00 2001 From: Jonathan Peppers Date: Mon, 30 Jun 2025 13:29:39 -0500 Subject: [PATCH 01/10] [copilot] allow `copilot-setup-steps.yml` to fail We found Copilot can go off track if: * Copilot commits a build error (of any kind). * You comment suggesting how to fix the build error. * Copilot setup steps will now fail, and Copilot can't fix it! So, once you are in this state, you can't really get Copilot back on track unless you manually fix it. Going forward, we should: * Allow the "build" step to fail * Upload the logs as an artifact Copilot should be able to do its work with a failing build. Also, update to .NET 9. --- .github/workflows/copilot-setup-steps.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/copilot-setup-steps.yml b/.github/workflows/copilot-setup-steps.yml index 0aa8746ce..c4e7c0b29 100644 --- a/.github/workflows/copilot-setup-steps.yml +++ b/.github/workflows/copilot-setup-steps.yml @@ -13,7 +13,7 @@ jobs: - name: Setup .NET uses: actions/setup-dotnet@v4 with: - dotnet-version: '8.x' + dotnet-version: '9.x' - name: Install Cake .NET Tool run: dotnet tool install -g cake.tool @@ -29,6 +29,7 @@ jobs: - name: Run dotnet cake run: dotnet cake + continue-on-error: true - name: Display environment info run: | From dff49e83ac6bb7330924e237633322e4565d50c7 Mon Sep 17 00:00:00 2001 From: Jonathan Peppers Date: Mon, 30 Jun 2025 13:33:04 -0500 Subject: [PATCH 02/10] Update copilot-setup-steps.yml --- .github/workflows/copilot-setup-steps.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/copilot-setup-steps.yml b/.github/workflows/copilot-setup-steps.yml index c4e7c0b29..814cedb57 100644 --- a/.github/workflows/copilot-setup-steps.yml +++ b/.github/workflows/copilot-setup-steps.yml @@ -15,9 +15,6 @@ jobs: with: dotnet-version: '9.x' - - name: Install Cake .NET Tool - run: dotnet tool install -g cake.tool - - name: Install Android workload run: dotnet workload install android @@ -27,6 +24,9 @@ jobs: distribution: 'microsoft' java-version: '11' + - name: Restore dotnet tools + run: dotnet tool restore + - name: Run dotnet cake run: dotnet cake continue-on-error: true From c64245780783f8a58a8b8b863d98a5657ccd4cae Mon Sep 17 00:00:00 2001 From: Jonathan Peppers Date: Mon, 30 Jun 2025 13:54:14 -0500 Subject: [PATCH 03/10] .NET 10 I meant! --- .github/workflows/copilot-setup-steps.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/copilot-setup-steps.yml b/.github/workflows/copilot-setup-steps.yml index 814cedb57..ffb25888c 100644 --- a/.github/workflows/copilot-setup-steps.yml +++ b/.github/workflows/copilot-setup-steps.yml @@ -13,7 +13,8 @@ jobs: - name: Setup .NET uses: actions/setup-dotnet@v4 with: - dotnet-version: '9.x' + dotnet-version: '10.x' + dotnet-quality: 'preview' - name: Install Android workload run: dotnet workload install android From e4ee36d21358b546359afce7222b4b7e7892d2c5 Mon Sep 17 00:00:00 2001 From: Jonathan Peppers Date: Mon, 30 Jun 2025 13:56:33 -0500 Subject: [PATCH 04/10] .NET 9 & 10 --- .github/workflows/copilot-setup-steps.yml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/.github/workflows/copilot-setup-steps.yml b/.github/workflows/copilot-setup-steps.yml index ffb25888c..e807e928f 100644 --- a/.github/workflows/copilot-setup-steps.yml +++ b/.github/workflows/copilot-setup-steps.yml @@ -10,7 +10,12 @@ jobs: - name: Checkout repository uses: actions/checkout@v4 - - name: Setup .NET + - name: Setup .NET 9 + uses: actions/setup-dotnet@v4 + with: + dotnet-version: '9.x' + + - name: Setup .NET 10 Preview uses: actions/setup-dotnet@v4 with: dotnet-version: '10.x' From 1a4715bbf4fd94dc5827425522f0d29ac023883c Mon Sep 17 00:00:00 2001 From: Jonathan Peppers Date: Mon, 30 Jun 2025 18:40:18 -0500 Subject: [PATCH 05/10] System.IO.IOException: No space left on device --- .github/workflows/copilot-setup-steps.yml | 5 ----- global.json | 5 ----- 2 files changed, 10 deletions(-) diff --git a/.github/workflows/copilot-setup-steps.yml b/.github/workflows/copilot-setup-steps.yml index e807e928f..a5e65bc1b 100644 --- a/.github/workflows/copilot-setup-steps.yml +++ b/.github/workflows/copilot-setup-steps.yml @@ -10,11 +10,6 @@ jobs: - name: Checkout repository uses: actions/checkout@v4 - - name: Setup .NET 9 - uses: actions/setup-dotnet@v4 - with: - dotnet-version: '9.x' - - name: Setup .NET 10 Preview uses: actions/setup-dotnet@v4 with: diff --git a/global.json b/global.json index 682ebb0ce..b198c7cee 100644 --- a/global.json +++ b/global.json @@ -1,9 +1,4 @@ { - "sdk": { - "version": "9.0.301", - "rollForward": "latestMajor", - "allowPrerelease": true - }, "msbuild-sdks": { "Microsoft.Build.Traversal": "4.1.0", "Microsoft.Build.NoTargets": "3.7.56" From e4fcaf56ce5c02b604364c9176f229f285dd93bf Mon Sep 17 00:00:00 2001 From: Jonathan Peppers Date: Mon, 30 Jun 2025 18:57:34 -0500 Subject: [PATCH 06/10] Update global.json --- global.json | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/global.json b/global.json index b198c7cee..682ebb0ce 100644 --- a/global.json +++ b/global.json @@ -1,4 +1,9 @@ { + "sdk": { + "version": "9.0.301", + "rollForward": "latestMajor", + "allowPrerelease": true + }, "msbuild-sdks": { "Microsoft.Build.Traversal": "4.1.0", "Microsoft.Build.NoTargets": "3.7.56" From f472fdf53379ca6ae1e81ef91e4bee4897d78b27 Mon Sep 17 00:00:00 2001 From: Jonathan Peppers Date: Mon, 30 Jun 2025 18:57:43 -0500 Subject: [PATCH 07/10] Remove Cake.FileHelpers --- build.cake | 1 - build/cake/setup-environment.cake | 12 +++++++++--- utilities.cake | 1 - 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/build.cake b/build.cake index c390805ec..3a9866df1 100755 --- a/build.cake +++ b/build.cake @@ -2,7 +2,6 @@ #tool nuget:?package=Microsoft.Android.Sdk.Windows&version=35.0.61 // Cake Addins -#addin nuget:?package=Cake.FileHelpers&version=7.0.0 #addin nuget:?package=Newtonsoft.Json&version=13.0.3 #addin nuget:?package=SharpZipLib&version=1.4.2 diff --git a/build/cake/setup-environment.cake b/build/cake/setup-environment.cake index da2816e88..e2999ccd4 100644 --- a/build/cake/setup-environment.cake +++ b/build/cake/setup-environment.cake @@ -7,7 +7,13 @@ Task ("inject-variables") { var glob = "./source/AssemblyInfo.cs"; - ReplaceTextInFiles (glob, "{BUILD_COMMIT}", BUILD_COMMIT); - ReplaceTextInFiles (glob, "{BUILD_NUMBER}", BUILD_NUMBER); - ReplaceTextInFiles (glob, "{BUILD_TIMESTAMP}", BUILD_TIMESTAMP); + ReplaceTextInFile (glob, "{BUILD_COMMIT}", BUILD_COMMIT); + ReplaceTextInFile (glob, "{BUILD_NUMBER}", BUILD_NUMBER); + ReplaceTextInFile (glob, "{BUILD_TIMESTAMP}", BUILD_TIMESTAMP); }); + +void ReplaceTextInFile (string filePath, string oldValue, string newValue) +{ + var text = System.IO.File.ReadAllText (filePath); + System.IO.File.WriteAllText (filePath, text.Replace (oldValue, newValue)); +} diff --git a/utilities.cake b/utilities.cake index b9f791b0b..957074af8 100644 --- a/utilities.cake +++ b/utilities.cake @@ -8,7 +8,6 @@ debugging prerequisity */ #addin nuget:?package=WeCantSpell.Hunspell&version=6.0.0 #addin nuget:?package=Newtonsoft.Json&version=13.0.3 -#addin nuget:?package=Cake.FileHelpers&version=7.0.0 #addin nuget:?package=Mono.Cecil&version=0.11.6 #addin nuget:?package=HolisticWare.Xamarin.Tools.ComponentGovernance&version=0.0.1.4 From 1a9de528624409c075e787f2832a5ce843ac95e4 Mon Sep 17 00:00:00 2001 From: Jonathan Peppers Date: Tue, 1 Jul 2025 08:11:07 -0500 Subject: [PATCH 08/10] Disk space --- .github/workflows/copilot-setup-steps.yml | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/.github/workflows/copilot-setup-steps.yml b/.github/workflows/copilot-setup-steps.yml index a5e65bc1b..3464a8812 100644 --- a/.github/workflows/copilot-setup-steps.yml +++ b/.github/workflows/copilot-setup-steps.yml @@ -10,6 +10,12 @@ jobs: - name: Checkout repository uses: actions/checkout@v4 + - run: df -h + name: Display disk space + + - run: du -h /usr/local/share/ + name: Display size of /usr/local/share/ + - name: Setup .NET 10 Preview uses: actions/setup-dotnet@v4 with: @@ -25,6 +31,12 @@ jobs: distribution: 'microsoft' java-version: '11' + - run: df -h + name: Display disk space + + - run: du -h /usr/local/share/ + name: Display size of /usr/local/share/ + - name: Restore dotnet tools run: dotnet tool restore From 8b7f46cbf3cad88d89ae95920e6033f6aadb592a Mon Sep 17 00:00:00 2001 From: Jonathan Peppers Date: Tue, 1 Jul 2025 08:55:48 -0500 Subject: [PATCH 09/10] Copilot only builds .NET 9 --- .github/workflows/copilot-setup-steps.yml | 17 ++--------------- Directory.Build.props | 3 ++- 2 files changed, 4 insertions(+), 16 deletions(-) diff --git a/.github/workflows/copilot-setup-steps.yml b/.github/workflows/copilot-setup-steps.yml index 3464a8812..814cedb57 100644 --- a/.github/workflows/copilot-setup-steps.yml +++ b/.github/workflows/copilot-setup-steps.yml @@ -10,17 +10,10 @@ jobs: - name: Checkout repository uses: actions/checkout@v4 - - run: df -h - name: Display disk space - - - run: du -h /usr/local/share/ - name: Display size of /usr/local/share/ - - - name: Setup .NET 10 Preview + - name: Setup .NET uses: actions/setup-dotnet@v4 with: - dotnet-version: '10.x' - dotnet-quality: 'preview' + dotnet-version: '9.x' - name: Install Android workload run: dotnet workload install android @@ -31,12 +24,6 @@ jobs: distribution: 'microsoft' java-version: '11' - - run: df -h - name: Display disk space - - - run: du -h /usr/local/share/ - name: Display size of /usr/local/share/ - - name: Restore dotnet tools run: dotnet tool restore diff --git a/Directory.Build.props b/Directory.Build.props index 69cd15992..7a9434bdf 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -16,7 +16,8 @@ <_DefaultTargetFrameworkVersionNext>10.0 <_DefaultTargetFrameworkNext>net$(_DefaultTargetFrameworkVersionNext)-android$(_DefaultPlatformVersionNext).0 - <_DefaultTargetFrameworks>$(_DefaultTargetFrameworkBase);$(_DefaultTargetFrameworkNext) + <_DefaultTargetFrameworks Condition=" '$(GITHUB_ACTIONS)' != 'true' ">$(_DefaultTargetFrameworkBase);$(_DefaultTargetFrameworkNext) + <_DefaultTargetFrameworks Condition=" '$(GITHUB_ACTIONS)' == 'true' ">$(_DefaultTargetFrameworkBase) false From 8b518c84e6984b4656e7a3463016f1574ba875ab Mon Sep 17 00:00:00 2001 From: Jonathan Peppers Date: Tue, 1 Jul 2025 09:43:46 -0500 Subject: [PATCH 10/10] Revert "Remove Cake.FileHelpers" This reverts commit f472fdf53379ca6ae1e81ef91e4bee4897d78b27. --- build.cake | 1 + build/cake/setup-environment.cake | 12 +++--------- utilities.cake | 1 + 3 files changed, 5 insertions(+), 9 deletions(-) diff --git a/build.cake b/build.cake index 3a9866df1..c390805ec 100755 --- a/build.cake +++ b/build.cake @@ -2,6 +2,7 @@ #tool nuget:?package=Microsoft.Android.Sdk.Windows&version=35.0.61 // Cake Addins +#addin nuget:?package=Cake.FileHelpers&version=7.0.0 #addin nuget:?package=Newtonsoft.Json&version=13.0.3 #addin nuget:?package=SharpZipLib&version=1.4.2 diff --git a/build/cake/setup-environment.cake b/build/cake/setup-environment.cake index e2999ccd4..da2816e88 100644 --- a/build/cake/setup-environment.cake +++ b/build/cake/setup-environment.cake @@ -7,13 +7,7 @@ Task ("inject-variables") { var glob = "./source/AssemblyInfo.cs"; - ReplaceTextInFile (glob, "{BUILD_COMMIT}", BUILD_COMMIT); - ReplaceTextInFile (glob, "{BUILD_NUMBER}", BUILD_NUMBER); - ReplaceTextInFile (glob, "{BUILD_TIMESTAMP}", BUILD_TIMESTAMP); + ReplaceTextInFiles (glob, "{BUILD_COMMIT}", BUILD_COMMIT); + ReplaceTextInFiles (glob, "{BUILD_NUMBER}", BUILD_NUMBER); + ReplaceTextInFiles (glob, "{BUILD_TIMESTAMP}", BUILD_TIMESTAMP); }); - -void ReplaceTextInFile (string filePath, string oldValue, string newValue) -{ - var text = System.IO.File.ReadAllText (filePath); - System.IO.File.WriteAllText (filePath, text.Replace (oldValue, newValue)); -} diff --git a/utilities.cake b/utilities.cake index 957074af8..b9f791b0b 100644 --- a/utilities.cake +++ b/utilities.cake @@ -8,6 +8,7 @@ debugging prerequisity */ #addin nuget:?package=WeCantSpell.Hunspell&version=6.0.0 #addin nuget:?package=Newtonsoft.Json&version=13.0.3 +#addin nuget:?package=Cake.FileHelpers&version=7.0.0 #addin nuget:?package=Mono.Cecil&version=0.11.6 #addin nuget:?package=HolisticWare.Xamarin.Tools.ComponentGovernance&version=0.0.1.4