Skip to content

Commit 41173a8

Browse files
committed
fix ci
1 parent 96d0651 commit 41173a8

5 files changed

Lines changed: 29 additions & 15 deletions

File tree

‎BervProject.WebApi.Boilerplate.AppHost/BervProject.WebApi.Boilerplate.AppHost.csproj‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<Project Sdk="Microsoft.NET.Sdk">
2-
<Sdk Name="Aspire.AppHost.Sdk" Version="9.1.0" />
2+
<Sdk Name="Aspire.AppHost.Sdk" Version="13.4.6" />
33

44
<PropertyGroup>
55
<OutputType>Exe</OutputType>

‎BervProject.WebApi.Boilerplate.AppHost/Program.cs‎

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
var builder = DistributedApplication.CreateBuilder(args);
22

3-
var cache = builder.AddRedis("cache").WithRedisInsight();
3+
var cache = builder.AddRedis("cache");
44
var postgres = builder.AddPostgres("postgres")
5-
.WithPgAdmin()
65
.WithEnvironment("POSTGRES_DB", "postgresdb");
76
var postgresdb = postgres.AddDatabase("postgresdb");
87
var serviceBus = builder.AddAzureServiceBus("messaging").RunAsEmulator();

‎BervProject.WebApi.Integration.Test/BervProject.WebApi.Integration.Test.csproj‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
<Nullable>enable</Nullable>
77
<IsPublishable>false</IsPublishable>
88
<IsPackable>false</IsPackable>
9+
<IsTestProject>true</IsTestProject>
910
</PropertyGroup>
1011

1112
<ItemGroup>

‎BervProject.WebApi.Integration.Test/Fixtures/WebAppFixture.cs‎

Lines changed: 20 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,39 @@
11
namespace BervProject.WebApi.Integration.Test.Fixtures;
22

3-
using Aspire.Hosting;
4-
using Aspire.Hosting.ApplicationModel;
53
using Aspire.Hosting.Testing;
6-
using Microsoft.Extensions.DependencyInjection;
74
using Projects;
85

96
public class WebAppFixture : IAsyncLifetime
107
{
8+
// CI environments are slower — use a longer timeout when running in CI
9+
private static readonly TimeSpan DefaultTimeout =
10+
Environment.GetEnvironmentVariable("CI") is not null
11+
? TimeSpan.FromMinutes(10)
12+
: TimeSpan.FromMinutes(3);
13+
1114
private DistributedApplication? _app;
1215

1316
public async Task InitializeAsync()
1417
{
1518
var appHost = await DistributedApplicationTestingBuilder
1619
.CreateAsync<BervProject_WebApi_Boilerplate_AppHost>();
1720

18-
_app = await appHost.BuildAsync();
19-
await _app.StartAsync();
21+
_app = await appHost.BuildAsync()
22+
.WaitAsync(DefaultTimeout);
23+
24+
await _app.StartAsync()
25+
.WaitAsync(DefaultTimeout);
2026

21-
var rns = _app.Services.GetRequiredService<ResourceNotificationService>();
22-
var rcs = _app.Services.GetRequiredService<ResourceCommandService>();
27+
using var cts = new CancellationTokenSource(DefaultTimeout);
2328

24-
// migrations uses WithExplicitStart — trigger the "start" command manually
25-
await rcs.ExecuteCommandAsync("migrations", "start");
26-
await rns.WaitForResourceAsync("migrations", KnownResourceStates.Finished);
27-
await rns.WaitForResourceHealthyAsync("apiservice");
29+
// migrations has WithExplicitStart — trigger it via ResourceCommands then wait for
30+
// it to finish. apiservice has .WaitForCompletion(migration), so it won't start until
31+
// migrations is Finished.
32+
await _app.ResourceCommands.ExecuteCommandAsync("migrations", "start", cts.Token);
33+
await _app.ResourceNotifications
34+
.WaitForResourceAsync("migrations", KnownResourceStates.Finished, cts.Token);
35+
await _app.ResourceNotifications
36+
.WaitForResourceHealthyAsync("apiservice", cts.Token);
2837
}
2938

3039
public async Task DisposeAsync()
Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,6 @@
1-
global using Xunit;
1+
global using Xunit;
2+
global using System.Net;
3+
global using Microsoft.Extensions.DependencyInjection;
4+
global using Aspire.Hosting;
5+
global using Aspire.Hosting.ApplicationModel;
6+
global using Aspire.Hosting.Testing;

0 commit comments

Comments
 (0)