PG17: Enable CI

This commit enables PG17 in the following workflows:
* Regression Linux (including 32bit)
* Memory tests
* Sanitizer tests
* Coverity
* SQLSmith

Also bumped to minor versions:
* 16.4
* 15.8
* 14.13

And another minor python packages fixes.
This commit is contained in:
Fabrízio de Royes Mello 2024-09-26 12:17:10 -03:00
parent b76b64f575
commit b6db580bcd
10 changed files with 60 additions and 47 deletions

View File

@ -12,15 +12,19 @@
#
PG14_EARLIEST = "14.0"
PG14_LATEST = "14.12"
PG14_LATEST = "14.13"
PG14_ABI_MIN = "14.0"
PG15_EARLIEST = "15.0"
PG15_LATEST = "15.7"
PG15_LATEST = "15.8"
PG15_ABI_MIN = "15.0"
PG16_EARLIEST = "16.0"
PG16_LATEST = "16.3"
PG16_LATEST = "16.4"
PG16_ABI_MIN = "16.0"
PG_LATEST = [PG14_LATEST, PG15_LATEST, PG16_LATEST]
PG17_EARLIEST = "17.0"
PG17_LATEST = "17.0"
PG17_ABI_MIN = "17.0"
PG_LATEST = [PG14_LATEST, PG15_LATEST, PG16_LATEST, PG17_LATEST]

View File

@ -32,6 +32,7 @@ from ci_settings import (
PG15_LATEST,
PG16_EARLIEST,
PG16_LATEST,
PG17_LATEST,
PG_LATEST,
)
@ -165,15 +166,17 @@ m["include"].append(build_debug_config({"pg": PG15_LATEST}))
m["include"].append(build_debug_config({"pg": PG16_LATEST}))
m["include"].append(build_debug_config({"pg": PG17_LATEST}))
# test timescaledb with release config on latest postgres release in MacOS
m["include"].append(build_release_config(macos_config({"pg": PG16_LATEST})))
m["include"].append(build_release_config(macos_config({"pg": PG17_LATEST})))
# Test latest postgres release without telemetry. Also run clang-tidy on it
# because it's the fastest one.
m["include"].append(
build_without_telemetry(
{
"pg": PG16_LATEST,
"pg": PG17_LATEST,
"cc": "clang-14",
"cxx": "clang++-14",
"tsdb_build_args": "-DLINTER=ON -DWARNINGS_AS_ERRORS=ON",
@ -181,15 +184,6 @@ m["include"].append(
)
)
m["include"].append(
build_debug_config(
{
"pg": "17",
"snapshot": "snapshot",
}
)
)
# if this is not a pull request e.g. a scheduled run or a push
# to a specific branch like prerelease_test we add additional
# entries to the matrix
@ -210,15 +204,21 @@ if not pull_request:
# add debug test for first supported PG16 version
m["include"].append(build_debug_config({"pg": PG16_EARLIEST}))
# add debug test for first supported PG16 version
m["include"].append(build_debug_config({"pg": PG17_EARLIEST}))
# add debug tests for timescaledb on latest postgres release in MacOS
m["include"].append(build_debug_config(macos_config({"pg": PG15_LATEST})))
m["include"].append(build_debug_config(macos_config({"pg": PG16_LATEST})))
m["include"].append(build_debug_config(macos_config({"pg": PG17_LATEST})))
# add release test for latest pg releases
m["include"].append(build_release_config({"pg": PG14_LATEST}))
m["include"].append(build_release_config({"pg": PG15_LATEST}))
m["include"].append(build_release_config({"pg": PG16_LATEST}))
m["include"].append(build_release_config({"pg": PG17_LATEST}))
# add apache only test for latest pg versions
for PG_LATEST_VER in PG_LATEST:
@ -250,6 +250,14 @@ if not pull_request:
}
)
)
m["include"].append(
build_debug_config(
{
"pg": 17,
"snapshot": "snapshot",
}
)
)
elif len(sys.argv) > 2:
# Check if we need to check for the flaky tests. Determine which test files
# have been changed in the PR. The sql files might include other files that
@ -305,7 +313,18 @@ elif len(sys.argv) > 2:
"coverage": False,
"installcheck_args": f'TESTS="{" ".join(list(tests) * 20)}"',
"name": "Flaky Check Debug",
"pg": PG14_LATEST,
"pg": PG16_LATEST,
"pginstallcheck": False,
}
)
)
m["include"].append(
build_debug_config(
{
"coverage": False,
"installcheck_args": f'TESTS="{" ".join(list(tests) * 20)}"',
"name": "Flaky Check Debug",
"pg": PG17_LATEST,
"pginstallcheck": False,
}
)

View File

@ -98,30 +98,12 @@ jobs:
- name: Install prerequisites
run: |
pip install --upgrade pip
# Inexplicably, at some point pip started to insist on installing
# prospector==1.7.7, which is incompatible with the new pylint.
# Also pin the version of the other tools so that they don't fail
# sporadically when a new version becomes available.
pip install black prospector==1.8.4 pylint==2.16.0 dodgy==0.2.1 \
mccabe==0.7.0 pycodestyle==2.9.1 pyflakes==2.5.0 \
psutil pygithub pglast
pip install black prospector pylint dodgy \
mccabe pycodestyle pyflakes \
psutil pygithub pglast testgres
pip list
pip list --user
# Using e375302a until 1.10.1 get released including the following PR
# https://github.com/postgrespro/testgres/pull/125
- name: Checkout testgres
uses: actions/checkout@v4
with:
repository: 'postgrespro/testgres'
path: 'testgres'
ref: e375302a114cd4df3ceed54d6526f250c44c08e7
- name: Build and install testgres
run: |
cd testgres
python setup.py install --user
- name: Checkout source
uses: actions/checkout@v4

View File

@ -15,7 +15,7 @@ jobs:
fail-fast: false
matrix:
# run only on the 3 latest PG versions as we have rate limit on coverity
pg: [14, 15, 16]
pg: [15, 16, 17]
os: [ubuntu-20.04]
steps:
- name: Install Dependencies

View File

@ -39,7 +39,7 @@ jobs:
pg: ${{ fromJson(needs.config.outputs.pg_latest) }}
build_type: [ Debug ]
include:
- pg: ${{ fromJson(needs.config.outputs.pg16_latest) }}
- pg: ${{ fromJson(needs.config.outputs.pg17_latest) }}
build_type: Debug
steps:
- run: |

View File

@ -25,7 +25,7 @@ jobs:
runs-on: ubuntu-latest
outputs:
pg_latest: ${{ steps.setter.outputs.PG_LATEST }}
pg16_latest: ${{ steps.setter.outputs.PG16_LATEST }}
pg17_latest: ${{ steps.setter.outputs.PG17_LATEST }}
steps:
- name: Checkout source code
uses: actions/checkout@v4
@ -55,7 +55,7 @@ jobs:
pg: ${{ fromJson(needs.config.outputs.pg_latest) }}
build_type: [ Debug ]
include:
- pg: ${{ fromJson(needs.config.outputs.pg16_latest) }}
- pg: ${{ fromJson(needs.config.outputs.pg17_latest) }}
build_type: Debug
fail-fast: false
@ -153,6 +153,15 @@ jobs:
run: |
set -o pipefail
export LANG=C.UTF-8
#
# Even disabling parallel plans the Sort Method on 32bits
# is always 'still in progress' for PG17. So for now added
# those tests to SKIPS.
#
PG_MAJOR=$(echo "${{ matrix.pg }}" | sed -e 's![.].*!!')
if [ ${PG_MAJOR} -eq 17 ]; then
SKIPS="${SKIPS} constraint_exclusion_prepared ordered_append*"
fi
# PostgreSQL cannot be run as root. So, switch to postgres user.
runuser -u postgres -- \
make -k -C build installcheck IGNORES="${IGNORES}" \

View File

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

View File

@ -55,7 +55,6 @@ jobs:
runs-on: ubuntu-latest
outputs:
pg_latest: ${{ steps.setter.outputs.PG_LATEST }}
pg16_latest: ${{ steps.setter.outputs.PG16_LATEST }}
steps:
- name: Checkout source code
uses: actions/checkout@v4

View File

@ -20,7 +20,7 @@ jobs:
strategy:
matrix:
os: ["ubuntu-22.04"]
pg: [ "15", "16" ]
pg: [ "15", "16", "17" ]
build_type: ["Debug"]
fail-fast: false
env:

View File

@ -172,9 +172,9 @@ os.environ["GIT_COMMITTER_NAME"] = token_user.name
# address. It is required so that the commits are recognized by Github as made
# by the user. That is, if you use a wrong e-mail, there won't be a clickable
# profile picture next to the commit in the Github interface.
os.environ[
"GIT_COMMITTER_EMAIL"
] = f"{token_user.id}+{token_user.login}@users.noreply.github.com"
os.environ["GIT_COMMITTER_EMAIL"] = (
f"{token_user.id}+{token_user.login}@users.noreply.github.com"
)
print(
f"Will commit as {os.environ['GIT_COMMITTER_NAME']} <{os.environ['GIT_COMMITTER_EMAIL']}>"
)