mirror of
https://github.com/timescale/timescaledb.git
synced 2025-05-17 02:53:51 +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_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]
|
||||
|
43
.github/gh_matrix_builder.py
vendored
43
.github/gh_matrix_builder.py
vendored
@ -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,
|
||||
}
|
||||
)
|
||||
|
24
.github/workflows/code_style.yaml
vendored
24
.github/workflows/code_style.yaml
vendored
@ -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
|
||||
|
||||
|
2
.github/workflows/coverity.yaml
vendored
2
.github/workflows/coverity.yaml
vendored
@ -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
|
||||
|
@ -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: |
|
||||
|
@ -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}" \
|
||||
|
2
.github/workflows/memory-tests.yaml
vendored
2
.github/workflows/memory-tests.yaml
vendored
@ -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:
|
||||
|
@ -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
|
||||
|
2
.github/workflows/sqlsmith.yaml
vendored
2
.github/workflows/sqlsmith.yaml
vendored
@ -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:
|
||||
|
@ -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']}>"
|
||||
)
|
||||
|
Loading…
x
Reference in New Issue
Block a user