test(db): run the startup migration chain against PostgreSQL in CI #7

Merged
benvin merged 4 commits from benvin/ci-postgres-migration-chain into main 2026-09-12 22:22:13 +10:00
2 changed files with 8 additions and 1 deletions
Showing only changes of commit bc42ff4b28 - Show all commits
+2 -1
View File
@@ -46,7 +46,8 @@ steps:
# the ReadWriteOnce workspace volume into service pods and schedules them on another node.
# Its data directory lives on the step's ephemeral storage, not on the workspace volume.
# Scoped to Jellyfin.Server.Tests: the three classes in Jellyfin.Database.Tests.PostgreSQL still
# start their own container, and two of their tests fail on main for unrelated reasons.
# start their own container, and PostgreSqlProviderTests already fails on main - on an EF 10
# scalar query and on its own data - which a third test in the class then inherits.
- name: postgres-migration-chain
image: mcr.microsoft.com/dotnet/sdk:10.0
depends_on:
@@ -65,6 +65,12 @@ public sealed class PostgreSqlTestServer : IAsyncDisposable
public async Task<string> CreateDatabaseAsync(string name, CancellationToken cancellationToken)
{
await using var adminDataSource = new NpgsqlDataSourceBuilder(ConnectionString).Build();
// A server handed in through the environment outlives the run, so a second run finds the
// databases the first one left behind.
await using var drop = adminDataSource.CreateCommand($"DROP DATABASE IF EXISTS {name}");
await drop.ExecuteNonQueryAsync(cancellationToken).ConfigureAwait(false);
await using var command = adminDataSource.CreateCommand($"CREATE DATABASE {name}");
await command.ExecuteNonQueryAsync(cancellationToken).ConfigureAwait(false);