feat: Add RPM build workflow and spec file for Gitea integration
Some checks failed
Build and Publish RPM / build-and-publish (push) Failing after 4s

Co-authored-by: aider (ollama_chat/qwen3-coder-30b-c24k) <aider@aider.chat>
This commit is contained in:
Lukas Greve
2025-11-27 19:49:04 +01:00
parent 7e7b88ddff
commit c31fd77db6
2 changed files with 113 additions and 0 deletions

84
build-publish-rpm.yaml Normal file
View File

@@ -0,0 +1,84 @@
name: Build and Publish RPM
on:
push:
branches:
- main
tags:
- 'v*'
jobs:
build-and-publish:
runs-on: fedora
defaults:
run:
shell: bash
container:
image: git.phyllo.me/devops/fedora-runner-image:latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup RPM build environment
run: |
mkdir -p ~/rpmbuild/{SOURCES,SPECS,BUILD,RPMS,SRPMS}
echo "%_topdir %(echo $HOME)/rpmbuild" > ~/.rpmmacros
- name: Create source archive
run: |
tar -czf hello-0.0.1.tar.gz hello.sh
- name: Copy spec file and source
run: |
cp hello.spec ~/rpmbuild/SPECS/
cp hello-0.0.1.tar.gz ~/rpmbuild/SOURCES/
- name: Build RPM
run: |
cd ~/rpmbuild
rpmbuild -ba SPECS/hello.spec
- name: Publish RPM to Gitea
if: github.ref_type == 'tag'
run: |
# Extract version from spec file
VERSION=$(grep -E "^Version:" hello.spec | cut -d: -f2 | xargs)
echo "Version: $VERSION"
# Find built RPM
RPM_FILE=$(find ~/rpmbuild -name "*.rpm" -type f | head -1)
echo "RPM file: $RPM_FILE"
# Publish to Gitea
if [ -n "$GITEA_TOKEN" ] && [ -n "$GITEA_OWNER" ]; then
curl -u "$GITEA_OWNER:$GITEA_TOKEN" \
--upload-file "$RPM_FILE" \
"https://gitea.example.com/api/packages/$GITEA_OWNER/rpm/upload"
else
echo "Missing GITEA_TOKEN or GITEA_OWNER environment variables"
exit 1
fi
- name: Publish RPM with group
if: github.ref_type == 'tag'
run: |
# Extract version from spec file
VERSION=$(grep -E "^Version:" hello.spec | cut -d: -f2 | xargs)
echo "Version: $VERSION"
# Find built RPM
RPM_FILE=$(find ~/rpmbuild -name "*.rpm" -type f | head -1)
echo "RPM file: $RPM_FILE"
# Publish to Gitea with group (using tag name as group)
TAG_NAME=${GITHUB_REF#refs/tags/}
echo "Publishing to group: $TAG_NAME"
if [ -n "$GITEA_TOKEN" ] && [ -n "$GITEA_OWNER" ]; then
curl -u "$GITEA_OWNER:$GITEA_TOKEN" \
--upload-file "$RPM_FILE" \
"https://gitea.example.com/api/packages/$GITEA_OWNER/rpm/$TAG_NAME/upload"
else
echo "Missing GITEA_TOKEN or GITEA_OWNER environment variables"
exit 1
fi