Remove PG12 support from github workflows

This commit is contained in:
Lakshmi Narayanan Sreethar 2023-07-06 21:49:23 +05:30 committed by Lakshmi Narayanan Sreethar
parent 906bd38573
commit cdea343cc9
12 changed files with 24 additions and 104 deletions

View File

@ -10,10 +10,6 @@
# LATEST is the maximum postgres version that is supported # LATEST is the maximum postgres version that is supported
# ABI_MIN is the minimum postgres version required when the extension was build against LATEST # ABI_MIN is the minimum postgres version required when the extension was build against LATEST
PG12_EARLIEST = "12.0"
PG12_LATEST = "12.15"
PG12_ABI_MIN = "12.8"
PG13_EARLIEST = "13.2" PG13_EARLIEST = "13.2"
PG13_LATEST = "13.11" PG13_LATEST = "13.11"
PG13_ABI_MIN = "13.5" PG13_ABI_MIN = "13.5"
@ -26,4 +22,4 @@ PG15_EARLIEST = "15.0"
PG15_LATEST = "15.3" PG15_LATEST = "15.3"
PG15_ABI_MIN = "15.0" PG15_ABI_MIN = "15.0"
PG_LATEST = [PG12_LATEST, PG13_LATEST, PG14_LATEST, PG15_LATEST] PG_LATEST = [PG13_LATEST, PG14_LATEST, PG15_LATEST]

View File

@ -26,8 +26,6 @@ import json
import os import os
import subprocess import subprocess
from ci_settings import ( from ci_settings import (
PG12_EARLIEST,
PG12_LATEST,
PG13_EARLIEST, PG13_EARLIEST,
PG13_LATEST, PG13_LATEST,
PG14_EARLIEST, PG14_EARLIEST,
@ -144,7 +142,6 @@ def macos_config(overrides):
"compressed_collation", "compressed_collation",
}, },
"os": "macos-11", "os": "macos-11",
"pg": PG12_LATEST,
"pg_extra_args": "--with-libraries=/usr/local/opt/openssl/lib --with-includes=/usr/local/opt/openssl/include", "pg_extra_args": "--with-libraries=/usr/local/opt/openssl/lib --with-includes=/usr/local/opt/openssl/include",
"pginstallcheck": True, "pginstallcheck": True,
"tsdb_build_args": "-DASSERTIONS=ON -DREQUIRE_ALL_TESTS=ON -DOPENSSL_ROOT_DIR=/usr/local/opt/openssl", "tsdb_build_args": "-DASSERTIONS=ON -DREQUIRE_ALL_TESTS=ON -DOPENSSL_ROOT_DIR=/usr/local/opt/openssl",
@ -172,10 +169,6 @@ if event_type == "pull_request":
} }
# always test debug build on latest of all supported pg versions # always test debug build on latest of all supported pg versions
m["include"].append(
build_debug_config({"pg": PG12_LATEST, "ignored_tests": ignored_tests})
)
m["include"].append( m["include"].append(
build_debug_config( build_debug_config(
{ {
@ -195,7 +188,7 @@ m["include"].append(
build_debug_config({"pg": PG15_LATEST, "ignored_tests": ignored_tests}) build_debug_config({"pg": PG15_LATEST, "ignored_tests": ignored_tests})
) )
# test latest postgres release in MacOS # test timescaledb with release config on latest postgres release in MacOS
m["include"].append( m["include"].append(
build_release_config( build_release_config(
macos_config({"pg": PG15_LATEST, "ignored_tests": ignored_tests}) macos_config({"pg": PG15_LATEST, "ignored_tests": ignored_tests})
@ -210,24 +203,6 @@ m["include"].append(
# to a specific branch like prerelease_test we add additional # to a specific branch like prerelease_test we add additional
# entries to the matrix # entries to the matrix
if event_type != "pull_request": if event_type != "pull_request":
# add debug test for first supported PG12 version
# most of the IGNORES are the isolation tests because the output format has changed between versions
# chunk_utils, telemetry and tablespace are skipped because of use after free bugs in postgres 12.0 which those tests hit
pg12_debug_earliest = {
"pg": PG12_EARLIEST,
# The early releases don't build with llvm 14.
"pg_extra_args": "--enable-debug --enable-cassert --without-llvm",
"skipped_tests": {"chunk_utils", "tablespace", "telemetry"},
"ignored_tests": {
"cluster-12",
"cagg_policy",
"debug_notice",
"dist_gapfill_pushdown-12",
},
"tsdb_build_args": "-DWARNINGS_AS_ERRORS=ON -DASSERTIONS=ON -DPG_ISOLATION_REGRESS=OFF",
}
m["include"].append(build_debug_config(pg12_debug_earliest))
# add debug test for first supported PG13 version # add debug test for first supported PG13 version
pg13_debug_earliest = { pg13_debug_earliest = {
"pg": PG13_EARLIEST, "pg": PG13_EARLIEST,
@ -259,26 +234,26 @@ if event_type != "pull_request":
build_debug_config({"pg": PG15_EARLIEST, "ignored_tests": ignored_tests}) build_debug_config({"pg": PG15_EARLIEST, "ignored_tests": ignored_tests})
) )
# add debug test for MacOS # add debug tests for timescaledb on latest postgres release in MacOS
m["include"].append(build_debug_config(macos_config({}))) m["include"].append(
build_debug_config(
macos_config({"pg": PG15_LATEST, "ignored_tests": ignored_tests})
)
)
# add release test for latest pg releases # add release test for latest pg releases
m["include"].append(build_release_config({"pg": PG12_LATEST}))
m["include"].append(build_release_config({"pg": PG13_LATEST})) m["include"].append(build_release_config({"pg": PG13_LATEST}))
m["include"].append(build_release_config({"pg": PG14_LATEST})) m["include"].append(build_release_config({"pg": PG14_LATEST}))
m["include"].append( m["include"].append(
build_release_config({"pg": PG15_LATEST, "ignored_tests": ignored_tests}) build_release_config({"pg": PG15_LATEST, "ignored_tests": ignored_tests})
) )
# add apache only test for latest pg # add apache only test for latest pg versions
m["include"].append(build_apache_config({"pg": PG12_LATEST})) for PG_LATEST_VER in PG_LATEST:
m["include"].append(build_apache_config({"pg": PG13_LATEST})) m["include"].append(build_apache_config({"pg": PG_LATEST_VER}))
m["include"].append(build_apache_config({"pg": PG14_LATEST}))
m["include"].append(build_apache_config({"pg": PG15_LATEST}))
# to discover issues with upcoming releases we run CI against # to discover issues with upcoming releases we run CI against
# the stable branches of supported PG releases # the stable branches of supported PG releases
m["include"].append(build_debug_config({"pg": 12, "snapshot": "snapshot"}))
m["include"].append(build_debug_config({"pg": 13, "snapshot": "snapshot"})) m["include"].append(build_debug_config({"pg": 13, "snapshot": "snapshot"}))
m["include"].append( m["include"].append(
build_debug_config( build_debug_config(

View File

@ -18,11 +18,9 @@ jobs:
config: config:
runs-on: ubuntu-latest runs-on: ubuntu-latest
outputs: outputs:
pg12_abi_min: ${{ steps.config.outputs.pg12_abi_min }}
pg13_abi_min: ${{ steps.config.outputs.pg13_abi_min }} pg13_abi_min: ${{ steps.config.outputs.pg13_abi_min }}
pg14_abi_min: ${{ steps.config.outputs.pg14_abi_min }} pg14_abi_min: ${{ steps.config.outputs.pg14_abi_min }}
pg15_abi_min: ${{ steps.config.outputs.pg15_abi_min }} pg15_abi_min: ${{ steps.config.outputs.pg15_abi_min }}
pg12_latest: ${{ steps.config.outputs.pg12_latest }}
pg13_latest: ${{ steps.config.outputs.pg13_latest }} pg13_latest: ${{ steps.config.outputs.pg13_latest }}
pg14_latest: ${{ steps.config.outputs.pg14_latest }} pg14_latest: ${{ steps.config.outputs.pg14_latest }}
pg15_latest: ${{ steps.config.outputs.pg15_latest }} pg15_latest: ${{ steps.config.outputs.pg15_latest }}
@ -41,18 +39,10 @@ jobs:
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix:
test: [ "12backward", "12forward", "13backward", "13forward", test: [ "13backward", "13forward", "14backward", "14forward",
"14backward", "14forward", "15backward", "15forward" ] "15backward", "15forward" ]
os: [ windows-2019 ] os: [ windows-2019 ]
include: include:
- test: 12backward
pg: 12
builder: ${{ fromJson(needs.config.outputs.pg12_latest) }}
tester: ${{ fromJson(needs.config.outputs.pg12_abi_min ) }}
- test: 12forward
pg: 12
builder: ${{ fromJson(needs.config.outputs.pg12_abi_min ) }}
tester: ${{ fromJson(needs.config.outputs.pg12_latest) }}
- test: 13backward - test: 13backward
pg: 13 pg: 13
builder: ${{ fromJson(needs.config.outputs.pg13_latest) }} builder: ${{ fromJson(needs.config.outputs.pg13_latest) }}

View File

@ -19,7 +19,7 @@ jobs:
# Debian images: 10 (buster), 11 (bullseye) # Debian images: 10 (buster), 11 (bullseye)
# Ubuntu images: 20.04 LTS (focal), 22.04 (jammy) # Ubuntu images: 20.04 LTS (focal), 22.04 (jammy)
image: [ "debian:10-slim","debian:11-slim","ubuntu:focal", "ubuntu:jammy"] image: [ "debian:10-slim","debian:11-slim","ubuntu:focal", "ubuntu:jammy"]
pg: [ 12, 13, 14, 15 ] pg: [ 13, 14, 15 ]
steps: steps:
- name: Setup emulation - name: Setup emulation

View File

@ -23,7 +23,7 @@ jobs:
# Debian images: 10 (buster), 11 (bullseye) # Debian images: 10 (buster), 11 (bullseye)
# Ubuntu images: 18.04 LTS (bionic), 20.04 LTS (focal), 21.10 (impish), 22.04 (jammy), 22.10 (kinetic) # Ubuntu images: 18.04 LTS (bionic), 20.04 LTS (focal), 21.10 (impish), 22.04 (jammy), 22.10 (kinetic)
image: [ "debian:10-slim", "debian:11-slim", "ubuntu:focal", "ubuntu:jammy", "ubuntu:kinetic"] image: [ "debian:10-slim", "debian:11-slim", "ubuntu:focal", "ubuntu:jammy", "ubuntu:kinetic"]
pg: [ 12, 13, 14, 15 ] pg: [ 13, 14, 15 ]
license: [ "TSL", "Apache"] license: [ "TSL", "Apache"]
include: include:
- license: Apache - license: Apache

View File

@ -36,7 +36,7 @@ jobs:
env: env:
DEBIAN_FRONTEND: noninteractive DEBIAN_FRONTEND: noninteractive
IGNORES: "append-* debug_notice transparent_decompression-* IGNORES: "append-* debug_notice transparent_decompression-*
transparent_decompress_chunk-* plan_skip_scan-12 pg_dump transparent_decompress_chunk-* pg_dump
dist_move_chunk dist_param dist_insert remote_txn telemetry" dist_move_chunk dist_param dist_insert remote_txn telemetry"
SKIPS: chunk_adaptive histogram_test SKIPS: chunk_adaptive histogram_test
strategy: strategy:

View File

@ -11,7 +11,7 @@ jobs:
runs-on: ubuntu-20.04 runs-on: ubuntu-20.04
strategy: strategy:
matrix: matrix:
pg: [12, 13, 14, 15] pg: [13, 14, 15]
fail-fast: false fail-fast: false
steps: steps:

View File

@ -20,7 +20,7 @@ jobs:
fail-fast: false fail-fast: false
matrix: matrix:
image: [ "centos:centos7", "rockylinux:8", "rockylinux:9" ] image: [ "centos:centos7", "rockylinux:8", "rockylinux:9" ]
pg: [ 12, 13, 14, 15 ] pg: [ 13, 14, 15 ]
license: [ "TSL", "Apache"] license: [ "TSL", "Apache"]
include: include:
- license: Apache - license: Apache

View File

@ -43,7 +43,7 @@ jobs:
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix:
pg: [ 12, 13, 14, 15 ] pg: [ 13, 14, 15 ]
os: [ windows-2022 ] os: [ windows-2022 ]
build_type: ${{ fromJson(needs.config.outputs.build_type) }} build_type: ${{ fromJson(needs.config.outputs.build_type) }}
steps: steps:

View File

@ -21,7 +21,6 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
outputs: outputs:
build_type: ${{ steps.build_type.outputs.build_type }} build_type: ${{ steps.build_type.outputs.build_type }}
pg12_latest: ${{ steps.config.outputs.pg12_latest }}
pg13_latest: ${{ steps.config.outputs.pg13_latest }} pg13_latest: ${{ steps.config.outputs.pg13_latest }}
pg14_latest: ${{ steps.config.outputs.pg14_latest }} pg14_latest: ${{ steps.config.outputs.pg14_latest }}
pg15_latest: ${{ steps.config.outputs.pg15_latest }} pg15_latest: ${{ steps.config.outputs.pg15_latest }}
@ -49,7 +48,7 @@ jobs:
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix:
pg: [ 12, 13, 14, 15 ] pg: [ 13, 14, 15 ]
os: [ windows-2022 ] os: [ windows-2022 ]
build_type: ${{ fromJson(needs.config.outputs.build_type) }} build_type: ${{ fromJson(needs.config.outputs.build_type) }}
ignores: ["chunk_adaptive metadata telemetry"] ignores: ["chunk_adaptive metadata telemetry"]
@ -58,9 +57,6 @@ jobs:
data_fetcher dist_compression dist_remote_error remote_txn"] data_fetcher dist_compression dist_remote_error remote_txn"]
pg_config: ["-cfsync=off -cstatement_timeout=60s"] pg_config: ["-cfsync=off -cstatement_timeout=60s"]
include: include:
- pg: 12
pkg_version: ${{ fromJson(needs.config.outputs.pg12_latest) }}
tsl_skips_version: dist_partial_agg-12
- pg: 13 - pg: 13
pkg_version: ${{ fromJson(needs.config.outputs.pg13_latest) }} pkg_version: ${{ fromJson(needs.config.outputs.pg13_latest) }}
tsl_skips_version: dist_grant-13 dist_partial_agg-13 tsl_skips_version: dist_grant-13 dist_partial_agg-13
@ -148,7 +144,6 @@ jobs:
run: cmake --install build_win --config ${{ matrix.build_type }} run: cmake --install build_win --config ${{ matrix.build_type }}
- name: Setup postgres cluster - name: Setup postgres cluster
if: matrix.pg != '12'
run: | run: |
~/PostgreSQL/${{ matrix.pg }}/bin/initdb -U postgres -A trust --locale=us --encoding=UTF8 ~/PostgreSQL/${{ matrix.pg }}/bin/initdb -U postgres -A trust --locale=us --encoding=UTF8
mkdir -p ${{ env.TABLESPACE1 }}\_default mkdir -p ${{ env.TABLESPACE1 }}\_default
@ -172,14 +167,12 @@ jobs:
~/PostgreSQL/${{ matrix.pg }}/bin/psql -U postgres -d postgres -c 'SHOW data_directory;' ~/PostgreSQL/${{ matrix.pg }}/bin/psql -U postgres -d postgres -c 'SHOW data_directory;'
- name: Install postgres for test runner - name: Install postgres for test runner
if: matrix.pg != '12'
shell: wsl-bash {0} shell: wsl-bash {0}
run: | run: |
yes | /usr/share/postgresql-common/pgdg/apt.postgresql.org.sh || true yes | /usr/share/postgresql-common/pgdg/apt.postgresql.org.sh || true
apt-get install -y --force-yes postgresql-server-dev-${{ matrix.pg }} apt-get install -y --force-yes postgresql-server-dev-${{ matrix.pg }}
- name: Run tests - name: Run tests
if: matrix.pg != '12'
shell: wsl-bash {0} shell: wsl-bash {0}
run: | run: |
export TEST_TABLESPACE1_PREFIX='${{ env.TABLESPACE1 }}' export TEST_TABLESPACE1_PREFIX='${{ env.TABLESPACE1 }}'
@ -195,7 +188,6 @@ jobs:
make -C build_wsl regresschecklocal IGNORES="${{ matrix.ignores }}" | tee -a installcheck.log make -C build_wsl regresschecklocal IGNORES="${{ matrix.ignores }}" | tee -a installcheck.log
- name: Setup postgres cluster for TSL tests - name: Setup postgres cluster for TSL tests
if: matrix.pg != '12'
run: | run: |
~/PostgreSQL/${{ matrix.pg }}/bin/pg_ctl stop ~/PostgreSQL/${{ matrix.pg }}/bin/pg_ctl stop
timeout 10 timeout 10
@ -208,7 +200,6 @@ jobs:
~/PostgreSQL/${{ matrix.pg }}/bin/psql -U postgres -d postgres -c 'CREATE USER root SUPERUSER LOGIN;' ~/PostgreSQL/${{ matrix.pg }}/bin/psql -U postgres -d postgres -c 'CREATE USER root SUPERUSER LOGIN;'
- name: Run TSL tests - name: Run TSL tests
if: matrix.pg != '12'
shell: wsl-bash {0} shell: wsl-bash {0}
run: | run: |
export TEST_TABLESPACE1_PREFIX='${{ env.TABLESPACE1 }}' export TEST_TABLESPACE1_PREFIX='${{ env.TABLESPACE1 }}'
@ -226,7 +217,7 @@ jobs:
- name: Show regression diffs - name: Show regression diffs
id: collectlogs id: collectlogs
if: always() && matrix.pg != '12' if: always()
env: env:
WSLENV: GITHUB_OUTPUT/p WSLENV: GITHUB_OUTPUT/p
shell: wsl-bash {0} shell: wsl-bash {0}
@ -237,7 +228,7 @@ jobs:
cat regression.log cat regression.log
- name: Save regression diffs - name: Save regression diffs
if: always() && matrix.pg != '12' && steps.collectlogs.outputs.regression_diff == 'true' if: always() && steps.collectlogs.outputs.regression_diff == 'true'
uses: actions/upload-artifact@v3 uses: actions/upload-artifact@v3
with: with:
name: Regression diff ${{ matrix.os }} ${{ matrix.name }} ${{ matrix.pg }} name: Regression diff ${{ matrix.os }} ${{ matrix.name }} ${{ matrix.pg }}
@ -253,7 +244,7 @@ jobs:
path: postgres.log path: postgres.log
- name: Upload test results to the database - name: Upload test results to the database
if: always() && matrix.pg != '12' if: always()
shell: wsl-bash {0} shell: wsl-bash {0}
env: env:
# Update when adding new variables. # Update when adding new variables.

View File

@ -14,11 +14,9 @@ jobs:
config: config:
runs-on: ubuntu-latest runs-on: ubuntu-latest
outputs: outputs:
pg12_earliest: ${{ steps.config.outputs.pg12_abi_min }}
pg13_earliest: ${{ steps.config.outputs.pg13_abi_min }} pg13_earliest: ${{ steps.config.outputs.pg13_abi_min }}
pg14_earliest: ${{ steps.config.outputs.pg14_abi_min }} pg14_earliest: ${{ steps.config.outputs.pg14_abi_min }}
pg15_earliest: ${{ steps.config.outputs.pg15_abi_min }} pg15_earliest: ${{ steps.config.outputs.pg15_abi_min }}
pg12_latest: ${{ steps.config.outputs.pg12_latest }}
pg13_latest: ${{ steps.config.outputs.pg13_latest }} pg13_latest: ${{ steps.config.outputs.pg13_latest }}
pg14_latest: ${{ steps.config.outputs.pg14_latest }} pg14_latest: ${{ steps.config.outputs.pg14_latest }}
pg15_latest: ${{ steps.config.outputs.pg15_latest }} pg15_latest: ${{ steps.config.outputs.pg15_latest }}
@ -38,14 +36,8 @@ jobs:
fail-fast: false fail-fast: false
matrix: matrix:
os: [ windows-2019 ] os: [ windows-2019 ]
test: [ "12min", "12max", "13min", "13max", "14min", "14max", "15min", "15max" ] test: [ "13min", "13max", "14min", "14max", "15min", "15max" ]
include: include:
- test: 12min
pg: 12
pkg_version: ${{ fromJson(needs.config.outputs.pg12_earliest) }}.1
- test: 12max
pg: 12
pkg_version: ${{ fromJson(needs.config.outputs.pg12_latest) }}
- test: 13min - test: 13min
pg: 13 pg: 13
pkg_version: ${{ fromJson(needs.config.outputs.pg13_earliest) }}.1 pkg_version: ${{ fromJson(needs.config.outputs.pg13_earliest) }}.1

View File

@ -1,24 +0,0 @@
// Since PG 12.3 the ereport syntax changed. This coccinelle patch checks that the used
// ereport calls work with PG < 12.3.
//
// See postgres/postgres@a86715451653c730d637847b403b0420923956f7
//
@rule_1@
constant K1;
expression E1, E2;
@@
// We pass two or more expressions to ereport
+ /*
+ * Please enclose the auxiliary ereport arguments into parentheses for
+ * compatibility with PG 12. Example:
+ *
+ * ereport(ERROR, ( errmsg(...), errdetail(...) ) );
+ * ^-----------add these---------^
+ *
+ * See https://github.com/postgres/postgres/commit/a86715451653c730d637847b403b0420923956f7
+ */
ereport(K1, E1, E2, ...);