Skip to content

Commit 96ab9a9

Browse files
EX-13772: RPM for prometheus2
1 parent 59caff0 commit 96ab9a9

3 files changed

Lines changed: 113 additions & 0 deletions

File tree

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
name: Build Prometheus2 EL10 RPM
2+
3+
on:
4+
push:
5+
branches: [ main, master ]
6+
pull_request:
7+
workflow_dispatch:
8+
inputs:
9+
release_name:
10+
description: 'Release name (e.g. v0.4.10)'
11+
required: true
12+
default: ''
13+
draft:
14+
description: 'Create as draft release'
15+
type: boolean
16+
default: true
17+
18+
jobs:
19+
build-rpm:
20+
name: Build RPM for EL10
21+
runs-on: ubuntu-latest
22+
steps:
23+
- name: Checkout source
24+
uses: actions/checkout@v4
25+
26+
- name: Install Deps
27+
run: |
28+
sudo apt-get update
29+
sudo apt-get install -y make
30+
31+
- name: Build Rocky10 Docker Image
32+
run: make build-rocky10-image
33+
34+
- name: Build Prometheus2 RPM
35+
run: make build10-prometheus2
36+
37+
- name: List built RPMs
38+
run: ls -l _dist10/
39+
40+
- name: Upload RPM
41+
uses: actions/upload-artifact@v4
42+
with:
43+
name: prometheus2-el10-rpm
44+
path: _dist10/*.rpm
45+
if-no-files-found: error
46+
47+
- name: Create GitHub Release
48+
if: github.event_name == 'workflow_dispatch' && inputs.release_name != ''
49+
uses: softprops/action-gh-release@v2
50+
with:
51+
tag_name: ${{ inputs.release_name }}
52+
name: ${{ inputs.release_name }}
53+
draft: ${{ inputs.draft }}
54+
files: _dist10/prometheus2-*.rpm
55+

Dockerfile.rocky10

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
FROM rockylinux/rockylinux:10
2+
3+
RUN dnf update -y \
4+
&& dnf groupinstall -y "Development Tools" \
5+
&& dnf install -y rsync createrepo \
6+
&& dnf install -y 'dnf-command(config-manager)'
7+
8+
RUN dnf config-manager --set-enabled crb -y \
9+
&& dnf install -y \
10+
rpm-build \
11+
rpmdevtools \
12+
systemd-rpm-macros \
13+
&& dnf clean all
14+
15+
# Create build-spec script
16+
RUN cat <<'EOF' > /usr/local/bin/build-spec && chmod +x /usr/local/bin/build-spec \
17+
#!/bin/bash
18+
set -e
19+
20+
SPEC_FILE="$1"
21+
22+
cd /rpmbuild
23+
spectool -g -C /rpmbuild/SOURCES "$SPEC_FILE"
24+
rpmbuild --define "_topdir /rpmbuild" -ba "$SPEC_FILE"
25+
EOF
26+
27+
WORKDIR /rpmbuild
28+
29+
ENV RPM_BUILD_ROOT=/rpmbuild
30+

Makefile

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,10 +72,37 @@ all: auto manual
7272
manual: $(MANUAL)
7373
auto: $(AUTO_GENERATED)
7474

75+
manual10: $(addprefix build10-,$(MANUAL))
7576
manual9: $(addprefix build9-,$(MANUAL))
7677
manual8: $(addprefix build8-,$(MANUAL))
7778
manual7: $(addprefix build7-,$(MANUAL))
7879

80+
# Build the Rocky Linux 10 builder image from Dockerfile
81+
.PHONY: build-rocky10-image
82+
build-rocky10-image:
83+
docker build -f Dockerfile.rocky10 -t rocky10-rpm-builder:latest .
84+
85+
$(addprefix build10-,$(MANUAL)): build-rocky10-image
86+
$(eval PACKAGE=$(subst build10-,,$@))
87+
[ -d ${PWD}/_dist10 ] || mkdir ${PWD}/_dist10
88+
[ -d ${PWD}/_cache_dnf ] || mkdir ${PWD}/_cache_dnf
89+
docker run ${DOCKER_FLAGS} \
90+
-v ${PWD}/${PACKAGE}:/rpmbuild/SOURCES \
91+
-v ${PWD}/_dist10:/rpmbuild/RPMS/x86_64 \
92+
-v ${PWD}/_dist10:/rpmbuild/RPMS/noarch \
93+
-v ${PWD}/_dist10:/rpmbuild/SRPMS/ \
94+
-v ${PWD}/_cache_dnf:/var/cache/dnf \
95+
rocky10-rpm-builder:latest \
96+
build-spec SOURCES/${PACKAGE}.spec
97+
# Test the install
98+
[ -d ${PWD}/_dist10 ] || mkdir ${PWD}/_dist10
99+
[ -d ${PWD}/_cache_dnf ] || mkdir ${PWD}/_cache_dnf
100+
docker run --privileged ${DOCKER_FLAGS} \
101+
-v ${PWD}/_dist10:/var/tmp/ \
102+
-v ${PWD}/_cache_dnf:/var/cache/dnf \
103+
rocky10-rpm-builder:latest \
104+
/bin/bash -c '/usr/bin/dnf install --verbose -y /var/tmp/${PACKAGE}*.rpm'
105+
79106
$(addprefix build9-,$(MANUAL)):
80107
$(eval PACKAGE=$(subst build9-,,$@))
81108
[ -d ${PWD}/_dist9 ] || mkdir ${PWD}/_dist9
@@ -240,6 +267,7 @@ sign7:
240267
$(foreach \
241268
PACKAGE,$(MANUAL),$(eval \
242269
${PACKAGE}: \
270+
$(addprefix build10-,${PACKAGE}) \
243271
$(addprefix build9-,${PACKAGE}) \
244272
$(addprefix build8-,${PACKAGE}) \
245273
$(addprefix build7-,${PACKAGE}) \

0 commit comments

Comments
 (0)