mirror of
https://github.com/timescale/timescaledb.git
synced 2025-05-17 11:03:36 +08:00
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:
parent
b76b64f575
commit
b6db580bcd
12
.github/ci_settings.py
vendored
12
.github/ci_settings.py
vendored
@ -12,15 +12,19 @@
|
|||||||
#
|
#
|
||||||
|
|
||||||
PG14_EARLIEST = "14.0"
|
PG14_EARLIEST = "14.0"
|
||||||
PG14_LATEST = "14.12"
|
PG14_LATEST = "14.13"
|
||||||
PG14_ABI_MIN = "14.0"
|
PG14_ABI_MIN = "14.0"
|
||||||
|
|
||||||
PG15_EARLIEST = "15.0"
|
PG15_EARLIEST = "15.0"
|
||||||
PG15_LATEST = "15.7"
|
PG15_LATEST = "15.8"
|
||||||
PG15_ABI_MIN = "15.0"
|
PG15_ABI_MIN = "15.0"
|
||||||
|
|
||||||
PG16_EARLIEST = "16.0"
|
PG16_EARLIEST = "16.0"
|
||||||
PG16_LATEST = "16.3"
|
PG16_LATEST = "16.4"
|
||||||
PG16_ABI_MIN = "16.0"
|
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]
|
||||||
|
43
.github/gh_matrix_builder.py
vendored
43
.github/gh_matrix_builder.py
vendored
@ -32,6 +32,7 @@ from ci_settings import (
|
|||||||
PG15_LATEST,
|
PG15_LATEST,
|
||||||
PG16_EARLIEST,
|
PG16_EARLIEST,
|
||||||
PG16_LATEST,
|
PG16_LATEST,
|
||||||
|
PG17_LATEST,
|
||||||
PG_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": PG16_LATEST}))
|
||||||
|
|
||||||
|
m["include"].append(build_debug_config({"pg": PG17_LATEST}))
|
||||||
|
|
||||||
# test timescaledb with release config on latest postgres release in MacOS
|
# 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
|
# Test latest postgres release without telemetry. Also run clang-tidy on it
|
||||||
# because it's the fastest one.
|
# because it's the fastest one.
|
||||||
m["include"].append(
|
m["include"].append(
|
||||||
build_without_telemetry(
|
build_without_telemetry(
|
||||||
{
|
{
|
||||||
"pg": PG16_LATEST,
|
"pg": PG17_LATEST,
|
||||||
"cc": "clang-14",
|
"cc": "clang-14",
|
||||||
"cxx": "clang++-14",
|
"cxx": "clang++-14",
|
||||||
"tsdb_build_args": "-DLINTER=ON -DWARNINGS_AS_ERRORS=ON",
|
"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
|
# 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
|
# to a specific branch like prerelease_test we add additional
|
||||||
# entries to the matrix
|
# entries to the matrix
|
||||||
@ -210,15 +204,21 @@ if not pull_request:
|
|||||||
# add debug test for first supported PG16 version
|
# add debug test for first supported PG16 version
|
||||||
m["include"].append(build_debug_config({"pg": PG16_EARLIEST}))
|
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
|
# 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": PG15_LATEST})))
|
||||||
|
|
||||||
m["include"].append(build_debug_config(macos_config({"pg": PG16_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
|
# add release test for latest pg releases
|
||||||
m["include"].append(build_release_config({"pg": PG14_LATEST}))
|
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": PG15_LATEST}))
|
||||||
m["include"].append(build_release_config({"pg": PG16_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
|
# add apache only test for latest pg versions
|
||||||
for PG_LATEST_VER in PG_LATEST:
|
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:
|
elif len(sys.argv) > 2:
|
||||||
# Check if we need to check for the flaky tests. Determine which test files
|
# 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
|
# 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,
|
"coverage": False,
|
||||||
"installcheck_args": f'TESTS="{" ".join(list(tests) * 20)}"',
|
"installcheck_args": f'TESTS="{" ".join(list(tests) * 20)}"',
|
||||||
"name": "Flaky Check Debug",
|
"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,
|
"pginstallcheck": False,
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
24
.github/workflows/code_style.yaml
vendored
24
.github/workflows/code_style.yaml
vendored
@ -98,30 +98,12 @@ jobs:
|
|||||||
- name: Install prerequisites
|
- name: Install prerequisites
|
||||||
run: |
|
run: |
|
||||||
pip install --upgrade pip
|
pip install --upgrade pip
|
||||||
# Inexplicably, at some point pip started to insist on installing
|
pip install black prospector pylint dodgy \
|
||||||
# prospector==1.7.7, which is incompatible with the new pylint.
|
mccabe pycodestyle pyflakes \
|
||||||
# Also pin the version of the other tools so that they don't fail
|
psutil pygithub pglast testgres
|
||||||
# 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 list
|
pip list
|
||||||
pip list --user
|
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
|
- name: Checkout source
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
2
.github/workflows/coverity.yaml
vendored
2
.github/workflows/coverity.yaml
vendored
@ -15,7 +15,7 @@ jobs:
|
|||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
# run only on the 3 latest PG versions as we have rate limit on coverity
|
# 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]
|
os: [ubuntu-20.04]
|
||||||
steps:
|
steps:
|
||||||
- name: Install Dependencies
|
- name: Install Dependencies
|
||||||
|
@ -39,7 +39,7 @@ jobs:
|
|||||||
pg: ${{ fromJson(needs.config.outputs.pg_latest) }}
|
pg: ${{ fromJson(needs.config.outputs.pg_latest) }}
|
||||||
build_type: [ Debug ]
|
build_type: [ Debug ]
|
||||||
include:
|
include:
|
||||||
- pg: ${{ fromJson(needs.config.outputs.pg16_latest) }}
|
- pg: ${{ fromJson(needs.config.outputs.pg17_latest) }}
|
||||||
build_type: Debug
|
build_type: Debug
|
||||||
steps:
|
steps:
|
||||||
- run: |
|
- run: |
|
||||||
|
@ -25,7 +25,7 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
outputs:
|
outputs:
|
||||||
pg_latest: ${{ steps.setter.outputs.PG_LATEST }}
|
pg_latest: ${{ steps.setter.outputs.PG_LATEST }}
|
||||||
pg16_latest: ${{ steps.setter.outputs.PG16_LATEST }}
|
pg17_latest: ${{ steps.setter.outputs.PG17_LATEST }}
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout source code
|
- name: Checkout source code
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
@ -55,7 +55,7 @@ jobs:
|
|||||||
pg: ${{ fromJson(needs.config.outputs.pg_latest) }}
|
pg: ${{ fromJson(needs.config.outputs.pg_latest) }}
|
||||||
build_type: [ Debug ]
|
build_type: [ Debug ]
|
||||||
include:
|
include:
|
||||||
- pg: ${{ fromJson(needs.config.outputs.pg16_latest) }}
|
- pg: ${{ fromJson(needs.config.outputs.pg17_latest) }}
|
||||||
build_type: Debug
|
build_type: Debug
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
|
|
||||||
@ -153,6 +153,15 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
set -o pipefail
|
set -o pipefail
|
||||||
export LANG=C.UTF-8
|
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.
|
# PostgreSQL cannot be run as root. So, switch to postgres user.
|
||||||
runuser -u postgres -- \
|
runuser -u postgres -- \
|
||||||
make -k -C build installcheck IGNORES="${IGNORES}" \
|
make -k -C build installcheck IGNORES="${IGNORES}" \
|
||||||
|
2
.github/workflows/memory-tests.yaml
vendored
2
.github/workflows/memory-tests.yaml
vendored
@ -12,7 +12,7 @@ jobs:
|
|||||||
runs-on: ubuntu-20.04
|
runs-on: ubuntu-20.04
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
pg: [14, 15, 16]
|
pg: [14, 15, 16, 17]
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
|
@ -55,7 +55,6 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
outputs:
|
outputs:
|
||||||
pg_latest: ${{ steps.setter.outputs.PG_LATEST }}
|
pg_latest: ${{ steps.setter.outputs.PG_LATEST }}
|
||||||
pg16_latest: ${{ steps.setter.outputs.PG16_LATEST }}
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout source code
|
- name: Checkout source code
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
|
2
.github/workflows/sqlsmith.yaml
vendored
2
.github/workflows/sqlsmith.yaml
vendored
@ -20,7 +20,7 @@ jobs:
|
|||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
os: ["ubuntu-22.04"]
|
os: ["ubuntu-22.04"]
|
||||||
pg: [ "15", "16" ]
|
pg: [ "15", "16", "17" ]
|
||||||
build_type: ["Debug"]
|
build_type: ["Debug"]
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
env:
|
env:
|
||||||
|
@ -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
|
# 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
|
# 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.
|
# profile picture next to the commit in the Github interface.
|
||||||
os.environ[
|
os.environ["GIT_COMMITTER_EMAIL"] = (
|
||||||
"GIT_COMMITTER_EMAIL"
|
f"{token_user.id}+{token_user.login}@users.noreply.github.com"
|
||||||
] = f"{token_user.id}+{token_user.login}@users.noreply.github.com"
|
)
|
||||||
print(
|
print(
|
||||||
f"Will commit as {os.environ['GIT_COMMITTER_NAME']} <{os.environ['GIT_COMMITTER_EMAIL']}>"
|
f"Will commit as {os.environ['GIT_COMMITTER_NAME']} <{os.environ['GIT_COMMITTER_EMAIL']}>"
|
||||||
)
|
)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user