This repository now treats GitHub Releases as the primary binary download channel.
The intended public asset set for each version is:
Percona-Server-<version>-PGOed.Linux.x86_64.<distro>.mini.tar.zstSHA256SUMS.txt- a matching benchmark summary such as
pgo-readonly-<version>-<date>.md
- Push the release-preparation commit to GitHub.
- Install GitHub CLI (
gh). - Authenticate:
gh auth loginOfficial references:
- GitHub Releases overview: https://docs.github.com/en/repositories/releasing-projects-on-github/about-releases
gh release create: https://cli.github.com/manual/gh_release_creategh release upload: https://cli.github.com/manual/gh_release_uploadgh release edit: https://cli.github.com/manual/gh_release_edit
The staging script normalizes naming, copies the public-safe result markdown, and generates SHA256SUMS.txt.
For the current three release candidates:
bash tools/prepare_release_assets.sh \
artifacts/Percona-Server-8.4.8-8-rocksdb \
artifacts/Percona-Server-8.0.45-36-rocksdb \
artifacts/centos7-percona57-pgo-5.7.44-54Staged output:
local/release-assets/8.4.8-8/local/release-assets/8.0.45-36/local/release-assets/5.7.44-54/
Each stage directory contains:
upload/release-notes.mdrelease.env
Example uploaded filenames:
Percona-Server-8.4.8-8-PGOed.Linux.x86_64.almalinux9.mini.tar.zstPercona-Server-8.0.45-36-PGOed.Linux.x86_64.almalinux8.mini.tar.zstPercona-Server-5.7.44-54-PGOed.Linux.x86_64.centos7.mini.tar.zst
That last one is produced automatically from the legacy local filename:
mini_percona-server-5.7.44-54-pgoed_centos7.tar.zst
Before creating release tags, push the branch that contains the public release documentation and workflow:
git push origin HEADThe publish script expects a clean, pushed branch when --create-tag is used.
Create draft releases for all staged versions:
bash tools/publish_github_release.sh --all --create-tagOr do them one by one:
bash tools/publish_github_release.sh --create-tag local/release-assets/8.4.8-8
bash tools/publish_github_release.sh --create-tag local/release-assets/8.0.45-36
bash tools/publish_github_release.sh --create-tag local/release-assets/5.7.44-54By default the script creates or updates a draft release.
To publish immediately instead of keeping drafts:
bash tools/publish_github_release.sh --all --create-tag --publishFor each draft release, verify:
- title and tag are correct
- tarball filename follows the public naming convention
SHA256SUMS.txtis present- the benchmark summary markdown matches the tarball version
- release notes look sane
After a new build passes validation, the intended routine becomes:
git push origin HEAD
bash tools/prepare_release_assets.sh artifacts/<version-dir>
bash tools/publish_github_release.sh --create-tag local/release-assets/<version>This is intentionally "semi-automated":
- the script handles naming, checksums, notes, tag creation, and upload
- you still review the draft release before publishing
That matches GitHub CLI's draft-friendly workflow well.