Skip to content

packaging rework + build GithubAction - #173

Open
EvgeniyPatlan wants to merge 1 commit into
Percona-Lab:mainfrom
EvgeniyPatlan:packaging-optimization
Open

packaging rework + build GithubAction#173
EvgeniyPatlan wants to merge 1 commit into
Percona-Lab:mainfrom
EvgeniyPatlan:packaging-optimization

Conversation

@EvgeniyPatlan

Copy link
Copy Markdown

Build both package families offline from prefetched dependency sources: Boost and the AWS SDK are shallow-cloned at the tags named in the RPM spec, pruned of everything the build never compiles and packed alongside the product tarball, then consumed as Source1/Source2 in the spec and as additional orig tarballs in the deb source package.

Build the dependencies once per package instead of twice and link both binlog_server configurations against them, restrict Boost to the modules the sources include, and replace every in-tree sed on CMakePresets.json with command line overrides.

Declare BuildRequires and Build-Depends, add ${shlibs:Depends} so the deb declares the libraries it links against, run the unit tests in %check and dh_auto_test, own /etc/percona-binlog-server, and add debian/copyright.

Restructure the builder script into sections with a main(), split install_deps into per-family functions, deduplicate artifact lookup and publishing, and run it under set -eu.

Add .github/workflows/packages.yml, mirroring the Jenkins pipeline without signing or repository upload, publishing every package as a downloadable artifact.

Fixes: the script was not executable and failed under its own /bin/sh shebang, install_deps picked the wrong compiler on jammy and bullseye, cmake3 does not exist on the EL9 and EL10 targets, --deb_release was ignored for binary packages, build_deb used a default version instead of the one in the .dsc and could build from a stale tree, and the AWS CRT submodule check failed when the build tree sat inside a git repository.

@EvgeniyPatlan
EvgeniyPatlan force-pushed the packaging-optimization branch from d9ad57b to ffd6c2e Compare August 18, 2026 11:36
Build both package families offline from prefetched dependency sources:
Boost and the AWS SDK are shallow-cloned at the tags named in the RPM
spec, pruned of everything the build never compiles and packed alongside
the product tarball, then consumed as Source1/Source2 in the spec and as
additional orig tarballs in the deb source package.

Build the dependencies once per package instead of twice and link both
binlog_server configurations against them, restrict Boost to the modules
the sources include, and replace every in-tree sed on CMakePresets.json
with command line overrides.

Declare BuildRequires and Build-Depends, add ${shlibs:Depends} so the deb
declares the libraries it links against, run the unit tests in %check and
dh_auto_test, own /etc/percona-binlog-server, and add debian/copyright.

Restructure the builder script into sections with a main(), split
install_deps into per-family functions, deduplicate artifact lookup and
publishing, and run it under set -eu.

Add .github/workflows/packages.yml, mirroring the Jenkins pipeline
without signing or repository upload, publishing every package as a
downloadable artifact.

Fixes: the script was not executable and failed under its own /bin/sh
shebang, install_deps picked the wrong compiler on jammy and bullseye,
cmake3 does not exist on the EL9 and EL10 targets, --deb_release was
ignored for binary packages, build_deb used a default version instead of
the one in the .dsc and could build from a stale tree, and the AWS CRT
submodule check failed when the build tree sat inside a git repository.
@EvgeniyPatlan
EvgeniyPatlan force-pushed the packaging-optimization branch from ffd6c2e to 310521d Compare August 18, 2026 11:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant