Citus PGXN Extension Builds
PGXN Build Infrastructure
In the packaging system, we have scripts and images to build PGXN extensions. In the package build environment, we have Docker images, specifically Dockerfiles, to build pgxn extensions.
The Docker image serves as the base image for all pgxn extensions. It contains all the dependencies required for building pgxn extensions. Within this docker image, there is a script called fetch_and_build_pgxn which is used to build pgxn extensions.
Citus has an automation process to edit the packaging configuration scripts called Update Version on PGXN Config Files workflow.
By executing this workflow on the pgxn-citus branch, a new pull request (PR) will be generated in the packaging repository. To do this, click the “Run Workflow” button, select pgxn-citus as the branch for “Use workflow from,” enter the version number to be released, and fill in any other necessary details.
An example PR can be found here: PR #1128.
Citus PGXN Configuration
For each project package configuration, we maintain a branch named pgxn-citus specifically for building the pgxn extension for Citus. In this branch, we have three configuration files used for building the packages:
pkgvars
postgres-matrix.yml
The usage of pkgvars and postgres-matrix.yml is similar to other project builds.