diff --git a/.github/workflows/auto-pgsql180-tests.yml b/.github/workflows/auto-pgsql180-tests.yml new file mode 100644 index 000000000..e487d6559 --- /dev/null +++ b/.github/workflows/auto-pgsql180-tests.yml @@ -0,0 +1,149 @@ +name: ⚙🐘 Automated PostgreSQL 18.0 tests +run-name: Tests on PostgreSQL 18.0 tests triggered by '${{ github.event_name }}'. Run No ${{ github.run_number }}. + +on: + push: + branches: + - 'master' + - 'master-*' + paths: + # containers + - 'Containers/postgres/do-postgres-18' + - 'Containers/postgres/**.sh' + - 'Containers/postgres/**.sql' + # main project - most common part, that may have changes that affect + - 'Orm/Xtensive.Orm/Orm/Providers/**' + - 'Orm/Xtensive.Orm/Orm/Rse/**' + - 'Orm/Xtensive.Orm/Orm/Upgrade/**' + - 'Orm/Xtensive.Orm/Sql/**' + # provider + - 'Orm/Xtensive.Orm.MySql/**' + - '!Orm/Xtensive.Orm.MySql/**.csproj' + - '!Orm/Xtensive.Orm.MySql/NuGetContent/**' + # main test project - any code change + - 'Orm/Xtensive.Orm.Tests/Issues/**' + - 'Orm/Xtensive.Orm.Tests/Storage/**' + - 'Orm/Xtensive.Orm.Tests/Upgrade/**' + # sql tests - general and provider-specific + - 'Orm/Xtensive.Orm.Tests.Sql/**' + - '!Orm/Xtensive.Orm.Tests.Sql/Firebird/**' + - '!Orm/Xtensive.Orm.Tests.Sql/MySQL/**' + - '!Orm/Xtensive.Orm.Tests.Sql/Oracle/**' + #- '!Orm/Xtensive.Orm.Tests.Sql/PostgreSql/**' + - '!Orm/Xtensive.Orm.Tests.Sql/Sqlite/**' + - '!Orm/Xtensive.Orm.Tests.Sql/SqlServer/**' + - '!Orm/Xtensive.Orm.Tests.Sql/SqlServerCe/**' + - '!Orm/Xtensive.Orm.Tests.Sql/**.csproj' + # ability to trigger on demand + - 'TestFileForBuildServerTests.txt' + + pull_request: + branches: + - 'master' + paths: + # containers + - 'Containers/postgres/do-postgres-18' + - 'Containers/postgres/**.sh' + - 'Containers/postgres/**.sql' + # main project - most common part, that may have changes that affect + - 'Orm/Xtensive.Orm/Orm/Providers/**' + - 'Orm/Xtensive.Orm/Orm/Rse/**' + - 'Orm/Xtensive.Orm/Orm/Upgrade/**' + - 'Orm/Xtensive.Orm/Sql/**' + # provider + - 'Orm/Xtensive.Orm.MySql/**' + - '!Orm/Xtensive.Orm.MySql/**.csproj' + - '!Orm/Xtensive.Orm.MySql/NuGetContent/**' + # main test project - any code change + - 'Orm/Xtensive.Orm.Tests/Issues/**' + - 'Orm/Xtensive.Orm.Tests/Storage/**' + - 'Orm/Xtensive.Orm.Tests/Upgrade/**' + # sql tests - general and provider-specific + - 'Orm/Xtensive.Orm.Tests.Sql/**' + - '!Orm/Xtensive.Orm.Tests.Sql/Firebird/**' + - '!Orm/Xtensive.Orm.Tests.Sql/MySQL/**' + - '!Orm/Xtensive.Orm.Tests.Sql/Oracle/**' + #- '!Orm/Xtensive.Orm.Tests.Sql/PostgreSql/**' + - '!Orm/Xtensive.Orm.Tests.Sql/Sqlite/**' + - '!Orm/Xtensive.Orm.Tests.Sql/SqlServer/**' + - '!Orm/Xtensive.Orm.Tests.Sql/SqlServerCe/**' + - '!Orm/Xtensive.Orm.Tests.Sql/**.csproj' + # ability to trigger on demand + - 'TestFileForBuildServerTests.txt' + + pull_request_review: + branches: + - 'master' + paths: + # containers + - 'Containers/postgres/do-postgres-18' + - 'Containers/postgres/**.sh' + - 'Containers/postgres/**.sql' + # main project - most common part, that may have changes that affect + - 'Orm/Xtensive.Orm/Orm/Providers/**' + - 'Orm/Xtensive.Orm/Orm/Rse/**' + - 'Orm/Xtensive.Orm/Orm/Upgrade/**' + - 'Orm/Xtensive.Orm/Sql/**' + # provider + - 'Orm/Xtensive.Orm.MySql/**' + - '!Orm/Xtensive.Orm.MySql/**.csproj' + - '!Orm/Xtensive.Orm.MySql/NuGetContent/**' + # main test project - any code change + - 'Orm/Xtensive.Orm.Tests/Issues/**' + - 'Orm/Xtensive.Orm.Tests/Storage/**' + - 'Orm/Xtensive.Orm.Tests/Upgrade/**' + # sql tests - general and provider-specific + - 'Orm/Xtensive.Orm.Tests.Sql/**' + - '!Orm/Xtensive.Orm.Tests.Sql/Firebird/**' + - '!Orm/Xtensive.Orm.Tests.Sql/MySQL/**' + - '!Orm/Xtensive.Orm.Tests.Sql/Oracle/**' + #- '!Orm/Xtensive.Orm.Tests.Sql/PostgreSql/**' + - '!Orm/Xtensive.Orm.Tests.Sql/Sqlite/**' + - '!Orm/Xtensive.Orm.Tests.Sql/SqlServer/**' + - '!Orm/Xtensive.Orm.Tests.Sql/SqlServerCe/**' + - '!Orm/Xtensive.Orm.Tests.Sql/**.csproj' + # ability to trigger on demand + - 'TestFileForBuildServerTests.txt' + +# new commits with the same key will cancel previously run workflows +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +permissions: + contents: read + actions: read + checks: write + +jobs: + test_on_pgsql180: + name: Tests on PostgreSQL 18.0 + strategy: + matrix: + net: [ 'net8.0' ] # for cold runs we run for one .net + # For security reasons we allow test runs either for pushes from the team or for pull-requests after their changes were seen and approved by someone + # + # push filter - to cover pushes from the team to main branch of major version + # first 'pull_request_review' filter - to cover external pull-requests, since there are major security concerns about content of pull-request we cannot allow auto-runs of tests + # second 'pull_request_review' - to cover internal pull-requests that were not covered by 'on push' trigger + # + if: | + github.event_name == 'push' + || (github.event_name == 'pull_request_review' + && github.event.pull_request.head.repo.full_name != github.event.pull_request.base.repo.full_name + && startsWith(github.event.pull_request.base.ref, 'master') + && github.event.review.state == 'approved') + || (github.event_name == 'pull_request' + && github.event.pull_request.head.repo.full_name == github.event.pull_request.base.repo.full_name + && !startsWith(github.head_ref, 'master-')) + uses: DataObjects-NET/dataobjects-net/.github/workflows/reusable-storage-dependant-tests.yml@master + with: + storage: pgsql180 + build_config: Release + target_framework: ${{ matrix.net }} + test_output_verbosity: minimal + test_run_timeout: 30 + run_main: true + run_sql: true + run_extensions: true + publish_raw_results: false \ No newline at end of file diff --git a/.github/workflows/dispatched-pgsql10-tests.yml b/.github/workflows/dispatched-pgsql10-tests.yml index c24b97ef2..a579501a5 100644 --- a/.github/workflows/dispatched-pgsql10-tests.yml +++ b/.github/workflows/dispatched-pgsql10-tests.yml @@ -13,21 +13,24 @@ on: type: boolean default: false required: true - pgsql100: - description: 'PostgreSQL 10' - type: boolean - default: false - required: true - pgsql110: - description: 'PostgreSQL 11' - type: boolean - default: false - required: true - pgsql120: - description: 'PostgreSQL 12' - type: boolean - default: false - required: true + # EOL - moved to addtional versions + #pgsql100: + # description: 'PostgreSQL 10' + # type: boolean + # default: false + # required: true + # EOL - moved to addtional versions + #pgsql110: + # description: 'PostgreSQL 11' + # type: boolean + # default: false + # required: true + # EOL - moved to addtional versions + #pgsql120: + # description: 'PostgreSQL 12' + # type: boolean + # default: false + # required: true pgsql130: description: 'PostgreSQL 13' type: boolean @@ -53,6 +56,22 @@ on: type: boolean default: true required: true + pgsql180: + description: 'PostgreSQL 18' + type: boolean + default: false + required: true + #pgsql190: + # description: 'PostgreSQL 19' + # type: boolean + # default: false + # required: true + additional_versions: + description: 'Additional versions (separated by ;)' + required: false + default: 'pgsql100;pgsql110;pgsql120' + type: string + # new commits with the same key will cancel previously run workflows concurrency: @@ -67,7 +86,7 @@ permissions: jobs: test_on_pgsql100: name: Tests on PostgreSQL 10 - if: ${{ inputs.pgsql100 }} + if: ${{ contains(inputs.additional_versions, 'pgsql100') }} strategy: matrix: net: [ 'net6.0', 'net7.0', 'net8.0' ] @@ -87,7 +106,7 @@ jobs: test_on_pgsql110: name: Tests on PostgreSQL 11 - if: ${{ inputs.pgsql110 }} + if: ${{ contains(inputs.additional_versions, 'pgsql110') }} strategy: matrix: net: [ 'net6.0', 'net7.0', 'net8.0' ] @@ -107,7 +126,7 @@ jobs: test_on_pgsql120: name: Tests on PostgreSQL 12 - if: ${{ inputs.pgsql120 }} + if: ${{ contains(inputs.additional_versions, 'pgsql120') }} strategy: matrix: net: [ 'net6.0', 'net7.0', 'net8.0' ] @@ -224,4 +243,44 @@ jobs: run_main: true run_sql: true run_extensions: true - publish_raw_results: true \ No newline at end of file + publish_raw_results: true + + test_on_pgsql180: + name: Tests on PostgreSQL 18 + if: ${{ inputs.pgsql180 }} + strategy: + matrix: + net: [ 'net6.0', 'net7.0', 'net8.0' ] + uses: DataObjects-NET/dataobjects-net/.github/workflows/reusable-storage-dependant-tests.yml@master + with: + storage: pgsql180 + build_config: Release + target_framework: ${{ matrix.net }} + specific_sha: ${{ inputs.specific_sha }} + show_all_fails: ${{ fromJSON(inputs.show_all_fails) }} + test_output_verbosity: minimal + test_run_timeout: 30 + run_main: true + run_sql: true + run_extensions: true + publish_raw_results: true + + #test_on_pgsql190: + # name: Tests on PostgreSQL 19 + # if: ${{ inputs.pgsql190 }} + # strategy: + # matrix: + # net: [ 'net6.0', 'net7.0', 'net8.0' ] + # uses: DataObjects-NET/dataobjects-net/.github/workflows/reusable-storage-dependant-tests.yml@master + # with: + # storage: pgsql190 + # build_config: Release + # target_framework: ${{ matrix.net }} + # specific_sha: ${{ inputs.specific_sha }} + # show_all_fails: ${{ fromJSON(inputs.show_all_fails) }} + # test_output_verbosity: minimal + # test_run_timeout: 30 + # run_main: true + # run_sql: true + # run_extensions: true + # publish_raw_results: true \ No newline at end of file diff --git a/ChangeLog/7.2.0-RC-dev.txt b/ChangeLog/7.2.0-RC.txt similarity index 100% rename from ChangeLog/7.2.0-RC-dev.txt rename to ChangeLog/7.2.0-RC.txt diff --git a/ChangeLog/7.2.0-dev.txt b/ChangeLog/7.2.0-dev.txt new file mode 100644 index 000000000..e69de29bb diff --git a/Containers/postgres/do-postgres-18 b/Containers/postgres/do-postgres-18 new file mode 100644 index 000000000..895b8b059 --- /dev/null +++ b/Containers/postgres/do-postgres-18 @@ -0,0 +1,12 @@ +FROM postgres:18.0 + +RUN export DEBIAN_FRONTEND=noninteractive && \ + apt-get update && \ + #Actualize time zone database + apt-get install -y tzdata && \ + apt-get clean && \ + rm -rf /var/lib/apt/lists + +COPY init-postgres-instance.sh /docker-entrypoint-initdb.d/ + +RUN chmod +x /docker-entrypoint-initdb.d/init-postgres-instance.sh \ No newline at end of file diff --git a/ReadMe.md b/ReadMe.md index 2edf4fa09..90c01798b 100644 --- a/ReadMe.md +++ b/ReadMe.md @@ -17,8 +17,8 @@ Supported databases: - MS SQL Server 2008 R2, 2012, 2014, 2016, 2017, 2019, 2022 - MS Azure SQL Database - Oracle 10g, 11g -- PostgreSQL 8.3, 8.4, 9.0, 9.1, 9.2, 10, 11, 12, 13, 14, 15, 16, 17 -- MySQL 5.6, 5.7, 8.0 +- PostgreSQL 8.3, 8.4, 9.0, 9.1, 9.2, 10, 11, 12, 13, 14, 15, 16, 17, 18 +- MySQL 5.6, 5.7, 8.x, 9.x - Firebird 2.5, 4.0 - Sqlite 3