diff --git a/.github/workflows/integration-tests.yml b/.github/workflows/integration-tests.yml index e0c43db..c0cc282 100644 --- a/.github/workflows/integration-tests.yml +++ b/.github/workflows/integration-tests.yml @@ -8,7 +8,7 @@ on: jobs: microsoft_sql: if: github.event.pull_request.draft == false - runs-on: ubuntu-20.04 + runs-on: ubuntu-latest env: RunDockerTests: true steps: @@ -31,12 +31,14 @@ jobs: docker pull mcr.microsoft.com/mssql/server:2017-latest docker pull mcr.microsoft.com/mssql/server:2019-latest docker pull mcr.microsoft.com/mssql/server:2022-latest + docker pull mcr.microsoft.com/mssql/server:2025-latest - name: docker start containers shell: bash run: | docker run --rm --name mssql-linux-2017 -p 28001:1433 -e ACCEPT_EULA=Y -e SA_PASSWORD=Test1234! -d mcr.microsoft.com/mssql/server:2017-latest docker run --rm --name mssql-linux-2019 -p 28002:1433 -e ACCEPT_EULA=Y -e SA_PASSWORD=Test1234! -d mcr.microsoft.com/mssql/server:2019-latest docker run --rm --name mssql-linux-2022 -p 28003:1433 -e ACCEPT_EULA=Y -e SA_PASSWORD=Test1234! -d mcr.microsoft.com/mssql/server:2022-latest + docker run --rm --name mssql-linux-2025 -p 28004:1433 -e ACCEPT_EULA=Y -e SA_PASSWORD=Test1234! -d mcr.microsoft.com/mssql/server:2025-latest sleep 60s - name: Test run: dotnet test SQLSchemaCompare.Test --no-build --configuration Release --logger trx --filter "Category=IntegrationTest&Category=MicrosoftSQL" @@ -70,16 +72,14 @@ jobs: shell: bash run: | docker pull mysql:8.0 - docker pull mysql:8.2 - docker pull mysql:8.3 docker pull mysql:8.4 + docker pull mysql:9.4 - name: docker start containers shell: bash run: | docker run --rm --name mysql-8.0 -p 27004:3306 -e MYSQL_USER=admin -e MYSQL_PASSWORD=test1234 -e MYSQL_ROOT_PASSWORD=test1234 -d mysql:8.0 - docker run --rm --name mysql-8.2 -p 27006:3306 -e MYSQL_USER=admin -e MYSQL_PASSWORD=test1234 -e MYSQL_ROOT_PASSWORD=test1234 -d mysql:8.2 - docker run --rm --name mysql-8.3 -p 27007:3306 -e MYSQL_USER=admin -e MYSQL_PASSWORD=test1234 -e MYSQL_ROOT_PASSWORD=test1234 -d mysql:8.3 docker run --rm --name mysql-8.4 -p 27008:3306 -e MYSQL_USER=admin -e MYSQL_PASSWORD=test1234 -e MYSQL_ROOT_PASSWORD=test1234 -d mysql:8.4 + docker run --rm --name mysql-9.4 -p 27013:3306 -e MYSQL_USER=admin -e MYSQL_PASSWORD=test1234 -e MYSQL_ROOT_PASSWORD=test1234 -d mysql:9.4 sleep 60s - name: Test run: dotnet test SQLSchemaCompare.Test --no-build --configuration Release --logger trx --filter "Category=IntegrationTest&Category=MySQL" @@ -112,19 +112,19 @@ jobs: - name: docker pull images shell: bash run: | - docker pull postgres:12-alpine docker pull postgres:13-alpine docker pull postgres:14-alpine docker pull postgres:15-alpine docker pull postgres:16-alpine + docker pull postgres:17-alpine - name: docker start containers shell: bash run: | - docker run --rm --name postgres-12 -p 26007:5432 -e POSTGRES_PASSWORD=test1234 -d postgres:12-alpine docker run --rm --name postgres-13 -p 26008:5432 -e POSTGRES_PASSWORD=test1234 -d postgres:13-alpine docker run --rm --name postgres-14 -p 26009:5432 -e POSTGRES_PASSWORD=test1234 -d postgres:14-alpine docker run --rm --name postgres-15 -p 26010:5432 -e POSTGRES_PASSWORD=test1234 -d postgres:15-alpine docker run --rm --name postgres-16 -p 26011:5432 -e POSTGRES_PASSWORD=test1234 -d postgres:16-alpine + docker run --rm --name postgres-17 -p 26012:5432 -e POSTGRES_PASSWORD=test1234 -d postgres:17-alpine sleep 60s - name: Test run: dotnet test SQLSchemaCompare.Test --no-build --configuration Release --logger trx --filter "Category=IntegrationTest&Category=PostgreSQL" @@ -157,27 +157,17 @@ jobs: - name: docker pull images shell: bash run: | - docker pull mariadb:10.4 - docker pull mariadb:10.5 docker pull mariadb:10.6 docker pull mariadb:10.11 - docker pull mariadb:11.0 - docker pull mariadb:11.1 - docker pull mariadb:11.2 - docker pull mariadb:11.3 docker pull mariadb:11.4 + docker pull mariadb:11.8 - name: docker start containers shell: bash run: | - docker run --rm --name mariadb-10.4 -p 29006:3306 -e MYSQL_USER=admin -e MYSQL_PASSWORD=test1234 -e MYSQL_ROOT_PASSWORD=test1234 -d mariadb:10.4 - docker run --rm --name mariadb-10.5 -p 29007:3306 -e MYSQL_USER=admin -e MYSQL_PASSWORD=test1234 -e MYSQL_ROOT_PASSWORD=test1234 -d mariadb:10.5 docker run --rm --name mariadb-10.6 -p 29008:3306 -e MYSQL_USER=admin -e MYSQL_PASSWORD=test1234 -e MYSQL_ROOT_PASSWORD=test1234 -d mariadb:10.6 docker run --rm --name mariadb-10.11 -p 29013:3306 -e MYSQL_USER=admin -e MYSQL_PASSWORD=test1234 -e MYSQL_ROOT_PASSWORD=test1234 -d mariadb:10.11 - docker run --rm --name mariadb-11.0 -p 29014:3306 -e MYSQL_USER=admin -e MYSQL_PASSWORD=test1234 -e MYSQL_ROOT_PASSWORD=test1234 -d mariadb:11.0 - docker run --rm --name mariadb-11.1 -p 29015:3306 -e MYSQL_USER=admin -e MYSQL_PASSWORD=test1234 -e MYSQL_ROOT_PASSWORD=test1234 -d mariadb:11.1 - docker run --rm --name mariadb-11.2 -p 29016:3306 -e MYSQL_USER=admin -e MYSQL_PASSWORD=test1234 -e MYSQL_ROOT_PASSWORD=test1234 -d mariadb:11.2 - docker run --rm --name mariadb-11.3 -p 29017:3306 -e MYSQL_USER=admin -e MYSQL_PASSWORD=test1234 -e MYSQL_ROOT_PASSWORD=test1234 -d mariadb:11.3 docker run --rm --name mariadb-11.4 -p 29018:3306 -e MYSQL_USER=admin -e MYSQL_PASSWORD=test1234 -e MYSQL_ROOT_PASSWORD=test1234 -d mariadb:11.4 + docker run --rm --name mariadb-11.8 -p 29022:3306 -e MYSQL_USER=admin -e MYSQL_PASSWORD=test1234 -e MYSQL_ROOT_PASSWORD=test1234 -d mariadb:11.8 sleep 60s - name: Test run: dotnet test SQLSchemaCompare.Test --no-build --configuration Release --logger trx --filter "Category=IntegrationTest&Category=MariaDB" diff --git a/SQLSchemaCompare.Test/DatabaseFixtureMariaDb.cs b/SQLSchemaCompare.Test/DatabaseFixtureMariaDb.cs index 92bc31c..739f4ae 100644 --- a/SQLSchemaCompare.Test/DatabaseFixtureMariaDb.cs +++ b/SQLSchemaCompare.Test/DatabaseFixtureMariaDb.cs @@ -22,19 +22,23 @@ public static IEnumerable ServerPorts /*serverPorts.Add(new object[] { (ushort)29003 });*/ // Version 10.1 (EOL October 2020) /*serverPorts.Add(new object[] { (ushort)29004 });*/ // Version 10.2 (EOL May 2022) /*serverPorts.Add(new object[] { (ushort)29005 });*/ // Version 10.3 (EOL May 2023) - serverPorts.Add(new object[] { (ushort)29006 }); // Version 10.4 (EOL June 2024) - serverPorts.Add(new object[] { (ushort)29007 }); // Version 10.5 (EOL June 2025) + /*serverPorts.Add(new object[] { (ushort)29006 }); // Version 10.4 (EOL June 2024)*/ + /*serverPorts.Add(new object[] { (ushort)29007 }); // Version 10.5 (EOL June 2025)*/ serverPorts.Add(new object[] { (ushort)29008 }); // Version 10.6 (EOL July 2026) /*serverPorts.Add(new object[] { (ushort)29009 });*/ // Version 10.7 (EOL February 2023) /*serverPorts.Add(new object[] { (ushort)29010 });*/ // Version 10.8 (EOL May 2023) /*serverPorts.Add(new object[] { (ushort)29011 });*/ // Version 10.9 (EOL August 2023) /*serverPorts.Add(new object[] { (ushort)29012 });*/ // Version 10.10 (EOL November 2023) serverPorts.Add(new object[] { (ushort)29013 }); // Version 10.11 (EOL February 2028) - serverPorts.Add(new object[] { (ushort)29014 }); // Version 11.0 (EOL June 2024) - serverPorts.Add(new object[] { (ushort)29015 }); // Version 11.1 (EOL August 2024) - serverPorts.Add(new object[] { (ushort)29016 }); // Version 11.2 (EOL November 2024) - serverPorts.Add(new object[] { (ushort)29017 }); // Version 11.3 + /*serverPorts.Add(new object[] { (ushort)29014 }); // Version 11.0 (EOL June 2024)*/ + /*serverPorts.Add(new object[] { (ushort)29015 }); // Version 11.1 (EOL August 2024)*/ + /*serverPorts.Add(new object[] { (ushort)29016 }); // Version 11.2 (EOL November 2024)*/ + /*serverPorts.Add(new object[] { (ushort)29017 }); // Version 11.3 (EOL May 2024)*/ serverPorts.Add(new object[] { (ushort)29018 }); // Version 11.4 (EOL May 2029) + /*serverPorts.Add(new object[] { (ushort)29019 }); // Version 11.5 (EOL November 2024)*/ + /*serverPorts.Add(new object[] { (ushort)29020 }); // Version 11.6 (EOL February 2025)*/ + /*serverPorts.Add(new object[] { (ushort)29021 }); // Version 11.7 (EOL May 2025)*/ + serverPorts.Add(new object[] { (ushort)29022 }); // Version 11.8 (EOL October 2033) } else { diff --git a/SQLSchemaCompare.Test/DatabaseFixtureMicrosoftSql.cs b/SQLSchemaCompare.Test/DatabaseFixtureMicrosoftSql.cs index eaab3de..04719aa 100644 --- a/SQLSchemaCompare.Test/DatabaseFixtureMicrosoftSql.cs +++ b/SQLSchemaCompare.Test/DatabaseFixtureMicrosoftSql.cs @@ -16,9 +16,10 @@ public static IEnumerable ServerPorts if (Environment.GetEnvironmentVariable("RunDockerTests")?.ToUpperInvariant() == "TRUE" || DatabaseFixture.ForceDockerTests) { - serverPorts.Add(new object[] { (ushort)28001 }); // Version 2017 Linux - serverPorts.Add(new object[] { (ushort)28002 }); // Version 2019 Linux - serverPorts.Add(new object[] { (ushort)28003 }); // Version 2022 Linux + serverPorts.Add(new object[] { (ushort)28001 }); // Version 2017 Linux (EOL October 2027) + serverPorts.Add(new object[] { (ushort)28002 }); // Version 2019 Linux (EOL January 2030) + serverPorts.Add(new object[] { (ushort)28003 }); // Version 2022 Linux (EOL January 2033) + serverPorts.Add(new object[] { (ushort)28004 }); // Version 2025 Linux } else { diff --git a/SQLSchemaCompare.Test/DatabaseFixtureMySql.cs b/SQLSchemaCompare.Test/DatabaseFixtureMySql.cs index 5b1abdc..17dbea0 100644 --- a/SQLSchemaCompare.Test/DatabaseFixtureMySql.cs +++ b/SQLSchemaCompare.Test/DatabaseFixtureMySql.cs @@ -22,9 +22,14 @@ public static IEnumerable ServerPorts /*serverPorts.Add(new object[] { (ushort)27003 });*/ // Version 5.7 (EOL October 2023) serverPorts.Add(new object[] { (ushort)27004 }); // Version 8.0 (EOL April 2026) /*serverPorts.Add(new object[] { (ushort)27005 });*/ // Version 8.1 (EOL October 2023) - serverPorts.Add(new object[] { (ushort)27006 }); // Version 8.2 - serverPorts.Add(new object[] { (ushort)27007 }); // Version 8.3 + /*serverPorts.Add(new object[] { (ushort)27006 }); // Version 8.2 (EOL December 2023)*/ + /*serverPorts.Add(new object[] { (ushort)27007 }); // Version 8.3 (EOL April 2024)*/ serverPorts.Add(new object[] { (ushort)27008 }); // Version 8.4 (EOL April 2032) + /*serverPorts.Add(new object[] { (ushort)27009 }); // Version 9.0 (EOL October 2024)*/ + /*serverPorts.Add(new object[] { (ushort)27010 }); // Version 9.1 (EOL January 2025)*/ + /*serverPorts.Add(new object[] { (ushort)27011 }); // Version 9.2 (EOL April 2025)*/ + /*serverPorts.Add(new object[] { (ushort)27012 }); // Version 9.3 (EOL July 2025)*/ + serverPorts.Add(new object[] { (ushort)27013 }); // Version 9.4 } else { diff --git a/SQLSchemaCompare.Test/DatabaseFixturePostgreSql.cs b/SQLSchemaCompare.Test/DatabaseFixturePostgreSql.cs index 845ebce..dc946e9 100644 --- a/SQLSchemaCompare.Test/DatabaseFixturePostgreSql.cs +++ b/SQLSchemaCompare.Test/DatabaseFixturePostgreSql.cs @@ -23,11 +23,12 @@ public static IEnumerable ServerPorts /*serverPorts.Add(new object[] { (ushort)26004 });*/ // Version 9.6 (EOL November 2021) /*serverPorts.Add(new object[] { (ushort)26005 });*/ // Version 10 (EOL November 2022) /*serverPorts.Add(new object[] { (ushort)26006 });*/ // Version 11 (EOL November 2023) - serverPorts.Add(new object[] { (ushort)26007 }); // Version 12 (EOL November 2024) + /*serverPorts.Add(new object[] { (ushort)26007 }); // Version 12 (EOL November 2024)*/ serverPorts.Add(new object[] { (ushort)26008 }); // Version 13 (EOL November 2025) serverPorts.Add(new object[] { (ushort)26009 }); // Version 14 (EOL November 2026) serverPorts.Add(new object[] { (ushort)26010 }); // Version 15 (EOL November 2027) serverPorts.Add(new object[] { (ushort)26011 }); // Version 16 (EOL November 2028) + serverPorts.Add(new object[] { (ushort)26012 }); // Version 17 (EOL November 2029) } else { diff --git a/SQLSchemaCompare.Test/Integration/MicrosoftSqlTests.cs b/SQLSchemaCompare.Test/Integration/MicrosoftSqlTests.cs index 9dee379..2276d75 100644 --- a/SQLSchemaCompare.Test/Integration/MicrosoftSqlTests.cs +++ b/SQLSchemaCompare.Test/Integration/MicrosoftSqlTests.cs @@ -136,7 +136,7 @@ public void GetMicrosoftSqlSakilaDatabase(ushort port) db.StoredProcedures.Count.Should().Be(2); db.DataTypes.Should().NotBeNullOrEmpty(); - db.DataTypes.Count.Should().Be(37); + db.DataTypes.Count(x => x.IsUserDefined).Should().Be(3); if (db.ServerVersion.Major < 11) {