Files
Shuai Tian 56ef6ff121 Add packaging CI workflow into every PR check and fix rpm errors (#336)
* Refactor CI workflows to conditionally set OS and PostgreSQL version for pull requests

Signed-off-by: Shuai Tian <shuaitian@microsoft.com>

* exclude specific internal directories from Debian and RPM packages

Signed-off-by: Shuai Tian <shuaitian@microsoft.com>

* fix

Signed-off-by: Shuai Tian <shuaitian@microsoft.com>

* skip check-extended-rum

Signed-off-by: Shuai Tian <shuaitian@microsoft.com>

* Include check-extended-rum target and tests in building

Signed-off-by: Shuai Tian <shuaitian@microsoft.com>

* fix

Signed-off-by: Shuai Tian <shuaitian@microsoft.com>

* update sql tests

Signed-off-by: Shuai Tian <shuaitian@microsoft.com>

* fix

Signed-off-by: Shuai Tian <shuaitian@microsoft.com>

* use exclude

Signed-off-by: Shuai Tian <shuaitian@microsoft.com>

* more

Signed-off-by: Shuai Tian <shuaitian@microsoft.com>

* use template

Signed-off-by: Shuai Tian <shuaitian@microsoft.com>

* feedback

Signed-off-by: Shuai Tian <shuaitian@microsoft.com>

---------

Signed-off-by: Shuai Tian <shuaitian@microsoft.com>
2025-10-09 10:41:56 -07:00
..

To Build Your Own Packages With Docker

Building Debian/Ubuntu Packages

Run ./packaging/build_packages.sh -h and follow the instructions. E.g. to build for Debian 12 and PostgreSQL 16, run:

./packaging/build_packages.sh --os deb12 --pg 16

Supported DEB/Ubuntu distributions:

  • deb11 — Debian 11 (bullseye)
  • deb12 — Debian 12 (bookworm)
  • deb13 — Debian 13 (trixie)
  • ubuntu22.04 — Ubuntu 22.04 (jammy)
  • ubuntu24.04 — Ubuntu 24.04 (noble)

Supported PG versions: 15, 16, 17

Building RPM Packages

For Red Hat-based distributions, you can build RPM packages:

./packaging/build_packages.sh --os rhel8 --pg 17

Supported RPM distributions:

  • rhel8 (Red Hat Enterprise Linux 8 compatible)
  • rhel9 (Red Hat Enterprise Linux 9 compatible)

Supported PG versions: 15, 16, 17

RPM Build Prerequisites

[Optional] Before building RPM packages, you can validate your environment:

./packaging/validate_rpm_build.sh

This script checks:

  • Docker installation and availability
  • Network connectivity for package repositories
  • Access to required base images

Example RPM Build Commands

# Build for RHEL 9 with PostgreSQL 16
./packaging/build_packages.sh --os rhel9 --pg 16

# Build with testing enabled
./packaging/build_packages.sh --os rhel8 --pg 17 --test-clean-install

Output

Packages can be found at the packages directory by default, but it can be configured with the --output-dir option.

Note: The packages do not include pg_documentdb_distributed in the internal directory.