feat: add multi-distro RPM packaging for CentOS 7 and Rocky Linux 8/9/10

- Create RPM maintainer scripts (post, preun, postun)
- Add Docker build stages for each target distribution (el7, el8, el9, el10)
- Update architecture.yml with supported RPM distributions
- Update build.sh to extract distro-specific RPM packages

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
This commit is contained in:
Jacquin Antoine
2026-02-28 17:17:56 +01:00
parent 85f7af357c
commit 7a9d92a469
7 changed files with 491 additions and 32 deletions

View File

@ -23,7 +23,7 @@ runtime:
logcorrelator est livré sous forme de binaire autonome, exécuté comme un
service systemd. L'unité systemd assure le démarrage automatique au boot,
le redémarrage en cas de crash, et une intégration standard dans l'écosystème
Linux (notamment sur Rocky Linux 8+).
Linux (notamment sur CentOS 7 et Rocky Linux 8+).
binary_path: /usr/bin/logcorrelator
config_path: /etc/logcorrelator/logcorrelator.yml
user: logcorrelator
@ -48,8 +48,10 @@ runtime:
WantedBy=multi-user.target
os:
supported:
- centos-7
- rocky-linux-8+
- rocky-linux-9+
- rocky-linux-10+
- autres-linux-recentes
logs:
stdout_stderr: journald
@ -471,7 +473,7 @@ docker:
packaging:
description: >
logcorrelator est distribué sous forme de packages .deb (Debian/Ubuntu) et
.rpm (Rocky Linux/RHEL/CentOS), construits intégralement dans Docker avec fpm.
.rpm (CentOS 7, Rocky Linux/RHEL 8, 9, 10), construits intégralement dans Docker avec fpm.
formats:
- deb
- rpm
@ -480,10 +482,14 @@ packaging:
- debian-12+
- ubuntu-22.04+
rpm:
- centos-7
- rocky-linux-8+
- rocky-linux-9+
- rocky-linux-10+
- rhel-7+
- rhel-8+
- rhel-9+
- rhel-10+
tool: fpm
build_pipeline:
dockerfile: Dockerfile.package
@ -492,13 +498,25 @@ packaging:
description: >
Compilation du binaire Go avec CGO_ENABLED=0 pour un binaire statique.
GOOS=linux GOARCH=amd64.
- name: package_builder
- name: deb_package_builder
description: >
Installation de fpm, rpm, dpkg-dev. Création de l'arborescence
et exécution de fpm pour générer DEB et RPM.
Construction du package DEB pour Debian/Ubuntu avec fpm.
- name: rpm_centos7_builder
description: >
Construction du package RPM pour CentOS 7 (el7) avec fpm.
- name: rpm_rocky8_builder
description: >
Construction du package RPM pour Rocky Linux 8 (el8) avec fpm.
- name: rpm_rocky9_builder
description: >
Construction du package RPM pour Rocky Linux 9 (el9) avec fpm.
- name: rpm_rocky10_builder
description: >
Construction du package RPM pour Rocky Linux 10 (el10) avec fpm.
- name: output
description: >
Image Alpine minimale contenant les packages dans /packages/deb et /packages/rpm.
Image Alpine minimale contenant les packages dans /packages/deb et
/packages/rpm/{centos7,rocky8,rocky9,rocky10}.
files:
binary:
source: dist/logcorrelator
@ -525,9 +543,9 @@ packaging:
prerm: packaging/deb/prerm
postrm: packaging/deb/postrm
rpm:
post: packaging/deb/postinst
preun: packaging/deb/prerm
postun: packaging/deb/postrm
post: packaging/rpm/post
preun: packaging/rpm/preun
postun: packaging/rpm/postun
dependencies:
deb:
- systemd
@ -537,7 +555,14 @@ packaging:
deb:
command: docker run --rm -v $(pwd)/dist/deb:/packages debian:latest sh -c "apt-get update && apt-get install -y /packages/*.deb"
rpm:
command: docker run --rm -v $(pwd)/dist/rpm:/packages rockylinux:8 sh -c "dnf install -y /packages/*.rpm"
centos7:
command: docker run --rm -v $(pwd)/dist/rpm/centos7:/packages centos:7 sh -c "yum install -y /packages/*.rpm"
rocky8:
command: docker run --rm -v $(pwd)/dist/rpm/rocky8:/packages rockylinux:8 sh -c "dnf install -y /packages/*.rpm"
rocky9:
command: docker run --rm -v $(pwd)/dist/rpm/rocky9:/packages rockylinux:9 sh -c "dnf install -y /packages/*.rpm"
rocky10:
command: docker run --rm -v $(pwd)/dist/rpm/rocky10:/packages rockylinux:10 sh -c "dnf install -y /packages/*.rpm"
non_functional:
performance: