mirror of
https://github.com/neondatabase/neon.git
synced 2026-10-28 22:46:46 +00:00
Prepare pg 15 support (build system and submodules) (#2337)
* Add submodule postgres-15 * Support pg_15 in pgxn/neon * Renamed zenith -> neon in Makefile * fix name of codestyle check * Refactor build system to prepare for building multiple Postgres versions. Rename "vendor/postgres" to "vendor/postgres-v14" Change Postgres build and install directory paths to be version-specific: - tmp_install/build -> pg_install/build/14 - tmp_install/* -> pg_install/14/* And Makefile targets: - "make postgres" -> "make postgres-v14" - "make postgres-headers" -> "make postgres-v14-headers" - etc. Add Makefile aliases: - "make postgres" to build "postgres-v14" and in future, "postgres-v15" - similarly for "make postgres-headers" Fix POSTGRES_DISTRIB_DIR path in pytest scripts * Make postgres version a variable in codestyle workflow * Support vendor/postgres-v15 in codestyle check workflow * Support postgres-v15 building in Makefile * fix pg version in Dockerfile.compute-node * fix kaniko path * Build neon extensions in version-specific directories * fix obsolete mentions of vendor/postgres * use vendor/postgres-v14 in Dockerfile.compute-node.legacy * Use PG_VERSION_NUM to gate dependencies in inmem_smgr.c * Use versioned ECR repositories and image names for compute-node. The image name format is compute-node-vXX, where XX is postgres major version number. For now only v14 is supported. Old format unversioned name (compute-node) is left, because cloud repo depends on it. * update vendor/postgres submodule url (zenith->neondatabase rename) * Fix postgres path in python tests after rebase * fix path in regress test * Use separate dockerfiles to build compute-node: Dockerfile.compute-node-v15 should be identical to Dockerfile.compute-node-v14 except for the version number. This is a hack, because Kaniko doesn't support build ARGs properly * bump vendor/postgres-v14 and vendor/postgres-v15 * Don't use Kaniko cache for v14 and v15 compute-node images * Build compute-node images for different versions in different jobs Co-authored-by: Heikki Linnakangas <heikki@neon.tech>
This commit is contained in:
co-authored by
Heikki Linnakangas
parent
ee0071e90d
commit
05e263d0d3
@@ -59,7 +59,7 @@ Env = Dict[str, str]
|
||||
Fn = TypeVar("Fn", bound=Callable[..., Any])
|
||||
|
||||
DEFAULT_OUTPUT_DIR = "test_output"
|
||||
DEFAULT_POSTGRES_DIR = "tmp_install"
|
||||
DEFAULT_POSTGRES_DIR = "pg_install/v14"
|
||||
DEFAULT_BRANCH_NAME = "main"
|
||||
|
||||
BASE_PORT = 15000
|
||||
@@ -188,7 +188,7 @@ def can_bind(host: str, port: int) -> bool:
|
||||
Check whether a host:port is available to bind for listening
|
||||
|
||||
Inspired by the can_bind() perl function used in Postgres tests, in
|
||||
vendor/postgres/src/test/perl/PostgresNode.pm
|
||||
vendor/postgres-v14/src/test/perl/PostgresNode.pm
|
||||
"""
|
||||
with closing(socket.socket(socket.AF_INET, socket.SOCK_STREAM)) as sock:
|
||||
# TODO: The pageserver and safekeepers don't use SO_REUSEADDR at the
|
||||
|
||||
@@ -26,8 +26,8 @@ def test_pg_regress(neon_simple_env: NeonEnv, test_output_dir: Path, pg_bin, cap
|
||||
(runpath / "testtablespace").mkdir(parents=True)
|
||||
|
||||
# Compute all the file locations that pg_regress will need.
|
||||
build_path = os.path.join(pg_distrib_dir, "build/src/test/regress")
|
||||
src_path = os.path.join(base_dir, "vendor/postgres/src/test/regress")
|
||||
build_path = os.path.join(pg_distrib_dir, "../build/v14/src/test/regress")
|
||||
src_path = os.path.join(base_dir, "vendor/postgres-v14/src/test/regress")
|
||||
bindir = os.path.join(pg_distrib_dir, "bin")
|
||||
schedule = os.path.join(src_path, "parallel_schedule")
|
||||
pg_regress = os.path.join(build_path, "pg_regress")
|
||||
@@ -80,8 +80,8 @@ def test_isolation(neon_simple_env: NeonEnv, test_output_dir: Path, pg_bin, caps
|
||||
(runpath / "testtablespace").mkdir(parents=True)
|
||||
|
||||
# Compute all the file locations that pg_isolation_regress will need.
|
||||
build_path = os.path.join(pg_distrib_dir, "build/src/test/isolation")
|
||||
src_path = os.path.join(base_dir, "vendor/postgres/src/test/isolation")
|
||||
build_path = os.path.join(pg_distrib_dir, "../build/v14/src/test/isolation")
|
||||
src_path = os.path.join(base_dir, "vendor/postgres-v14/src/test/isolation")
|
||||
bindir = os.path.join(pg_distrib_dir, "bin")
|
||||
schedule = os.path.join(src_path, "isolation_schedule")
|
||||
pg_isolation_regress = os.path.join(build_path, "pg_isolation_regress")
|
||||
@@ -124,7 +124,7 @@ def test_sql_regress(neon_simple_env: NeonEnv, test_output_dir: Path, pg_bin, ca
|
||||
|
||||
# Compute all the file locations that pg_regress will need.
|
||||
# This test runs neon specific tests
|
||||
build_path = os.path.join(pg_distrib_dir, "build/src/test/regress")
|
||||
build_path = os.path.join(pg_distrib_dir, "../build/v14/src/test/regress")
|
||||
src_path = os.path.join(base_dir, "test_runner/sql_regress")
|
||||
bindir = os.path.join(pg_distrib_dir, "bin")
|
||||
schedule = os.path.join(src_path, "parallel_schedule")
|
||||
|
||||
Reference in New Issue
Block a user