From 9ffb5c4a0a9511f21dc8c8af75f684fcb21b29cf Mon Sep 17 00:00:00 2001 From: Dylan Date: Sat, 13 Dec 2025 07:11:23 +0000 Subject: [PATCH 1/3] Update NoWarn property to suppress additional NuGet warnings --- src/Directory.Build.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Directory.Build.props b/src/Directory.Build.props index 9b1307d9..bd78831a 100644 --- a/src/Directory.Build.props +++ b/src/Directory.Build.props @@ -33,6 +33,6 @@ - $(NoWarn);NU1902 + $(NoWarn);NU1901;NU1902;NU1903;NU1904 \ No newline at end of file From e6cbd472b719c99cc4dbda5e205d2924f70c681d Mon Sep 17 00:00:00 2001 From: Dylan Date: Sat, 13 Dec 2025 07:20:46 +0000 Subject: [PATCH 2/3] Update Bun setup to use specific download URL for Linux --- .github/actions/setup-environment/action.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/actions/setup-environment/action.yml b/.github/actions/setup-environment/action.yml index 855c3a19..5456d89a 100644 --- a/.github/actions/setup-environment/action.yml +++ b/.github/actions/setup-environment/action.yml @@ -22,7 +22,7 @@ runs: if: runner.os == 'Linux' uses: oven-sh/setup-bun@v2 with: - bun-version: latest + bun-download-url: "https://github.com/oven-sh/bun/releases/latest/download/bun-linux-x64.zip" - name: Run Linux setup script if: runner.os == 'Linux' From 70090463d1acdff93780d8ac67de2ef32a0ad0a6 Mon Sep 17 00:00:00 2001 From: Dylan Date: Sat, 13 Dec 2025 07:42:32 +0000 Subject: [PATCH 3/3] Improve browser initialization --- .../BrowserLocalizationTests.cs | 1 + src/AvaloniaXKCD.Tests/BrowserTests.cs | 1 + .../TestBases/BrowserBaseTest.cs | 22 +++++++++++++++++-- 3 files changed, 22 insertions(+), 2 deletions(-) diff --git a/src/AvaloniaXKCD.Tests/BrowserLocalizationTests.cs b/src/AvaloniaXKCD.Tests/BrowserLocalizationTests.cs index c7c26933..bd477018 100644 --- a/src/AvaloniaXKCD.Tests/BrowserLocalizationTests.cs +++ b/src/AvaloniaXKCD.Tests/BrowserLocalizationTests.cs @@ -12,6 +12,7 @@ namespace AvaloniaXKCD.Tests; [Timeout(5 * 60 * 1000)] // 5 minutes [Arguments("chromium", "en-US")] [Arguments("chromium", "es-ES")] +[Retry(2)] public class BrowserLocalizationTests(string browser, string locale) : BrowserBaseTest(browser) { public override BrowserNewContextOptions ContextOptions(TestContext testContext) diff --git a/src/AvaloniaXKCD.Tests/BrowserTests.cs b/src/AvaloniaXKCD.Tests/BrowserTests.cs index b16e8f71..7f4d68e8 100644 --- a/src/AvaloniaXKCD.Tests/BrowserTests.cs +++ b/src/AvaloniaXKCD.Tests/BrowserTests.cs @@ -3,6 +3,7 @@ namespace AvaloniaXKCD.Tests; [Timeout(5 * 60 * 1000)] // 5 minutes [Arguments("chromium")] [Arguments("firefox")] +[Retry(2)] public class BrowserTests(string browser) : BrowserBaseTest(browser) { [Test] diff --git a/src/AvaloniaXKCD.Tests/TestBases/BrowserBaseTest.cs b/src/AvaloniaXKCD.Tests/TestBases/BrowserBaseTest.cs index 7d4b89b2..ea5aa0d5 100644 --- a/src/AvaloniaXKCD.Tests/TestBases/BrowserBaseTest.cs +++ b/src/AvaloniaXKCD.Tests/TestBases/BrowserBaseTest.cs @@ -1,8 +1,26 @@ namespace AvaloniaXKCD.Tests.TestBases; -public abstract class BrowserBaseTest(string browser) : PageTest +public abstract class BrowserBaseTest : PageTest { - public override string BrowserName => browser; + private readonly string _browserName; + + protected BrowserBaseTest(string browser) + : base(new BrowserTypeLaunchOptions + { + Timeout = 90_000, // 90 second timeout for browser launch + Args = + [ + // Flags for limited resource environments like CI + "--disable-dev-shm-usage", + "--no-sandbox", + "--disable-setuid-sandbox" + ] + }) + { + _browserName = browser; + } + + public override string BrowserName => _browserName; [ClassDataSource(Shared = SharedType.PerAssembly)] public required AvaloniaBrowserProject AvaloniaManager { get; init; }