Add deployment
CI / frontend (push) Failing after 57s
CI / backend (push) Failing after 6m27s

This commit is contained in:
voltsrage
2026-08-05 00:26:20 +08:00
parent 9e88ff6113
commit 2a3ef62a7d
86 changed files with 2320 additions and 174 deletions
@@ -8,8 +8,15 @@ using StackExchange.Redis;
public class GatewayApiFixture : WebApplicationFactory<Program>, IAsyncLifetime
{
public const string TestConnectionString =
"Host=localhost;Port=5437;Database=vigilcare_ward_test;Username=postgres;Password=password";
// Prefer CI/env overrides; fall back to ward-gateway compose profile ports.
public static string TestConnectionString { get; } =
Environment.GetEnvironmentVariable("ConnectionStrings__GatewayDb")
?? "Host=localhost;Port=5437;Database=vigilcare_ward_test;Username=postgres;Password=password";
public static string RedisConnection { get; } =
Environment.GetEnvironmentVariable("Gateway__Redis__ConnectionString")
?? Environment.GetEnvironmentVariable("Redis__ConnectionString")
?? "localhost:6383,defaultDatabase=2,allowAdmin=true";
protected override void ConfigureWebHost(IWebHostBuilder builder)
{
@@ -19,11 +26,15 @@ public class GatewayApiFixture : WebApplicationFactory<Program>, IAsyncLifetime
config.AddInMemoryCollection(new Dictionary<string, string?>
{
["ConnectionStrings:GatewayDb"] = TestConnectionString,
["Redis:ConnectionString"] = "localhost:6383,allowAdmin=true",
["RabbitMq:Host"] = "localhost",
["RabbitMq:Port"] = "5675",
["RabbitMq:Username"] = "guest",
["RabbitMq:Password"] = "guest",
["Redis:ConnectionString"] = RedisConnection,
["RabbitMq:Host"] = Environment.GetEnvironmentVariable("Gateway__RabbitMq__Host")
?? Environment.GetEnvironmentVariable("RabbitMq__Host")
?? "localhost",
["RabbitMq:Port"] = Environment.GetEnvironmentVariable("Gateway__RabbitMq__Port")
?? Environment.GetEnvironmentVariable("RabbitMq__Port")
?? "5675",
["RabbitMq:Username"] = Environment.GetEnvironmentVariable("RabbitMq__Username") ?? "guest",
["RabbitMq:Password"] = Environment.GetEnvironmentVariable("RabbitMq__Password") ?? "guest",
["RabbitMq:PagingAckTimeoutMs"] = "5000",
["CentralApi:BaseUrl"] = "http://127.0.0.1:1",
["Gateway:GatewayId"] = "22222222-2222-2222-2222-222222222222",
@@ -33,6 +44,7 @@ public class GatewayApiFixture : WebApplicationFactory<Program>, IAsyncLifetime
["Gateway:CentralReachabilityIntervalSeconds"] = "1",
["Gateway:HeartbeatIntervalSeconds"] = "1",
["Gateway:SyncBatchSize"] = "500",
["Gateway:AutoMigrate"] = "false",
["ApiKey:Gateway"] = "dev-gateway-key-change-in-production",
["Jwt:SigningKey"] = "dev-signing-key-minimum-32-bytes-long!!",
["Jwt:Issuer"] = "vigilcare-gateway",
@@ -66,7 +78,12 @@ public class GatewayApiFixture : WebApplicationFactory<Program>, IAsyncLifetime
using var scope = Services.CreateScope();
var redis = scope.ServiceProvider.GetRequiredService<IConnectionMultiplexer>();
var server = redis.GetServer(redis.GetEndPoints().First());
await server.FlushAllDatabasesAsync();
// Flush only the gateway test DB index — do not FlushAll (would wipe API test DB 1).
var dbIndex = 2;
var cfg = RedisConnection.Split(',').FirstOrDefault(p => p.StartsWith("defaultDatabase=", StringComparison.OrdinalIgnoreCase));
if (cfg is not null && int.TryParse(cfg.Split('=')[1], out var parsed))
dbIndex = parsed;
await server.FlushDatabaseAsync(dbIndex);
}
protected override void ConfigureClient(HttpClient client)