feat: enhance GitHub release tracking with pattern support and version extraction
Build / build-8 (pull_request) Successful in 5m45s
Build / build-9 (pull_request) Successful in 8m54s

- Add github_release_pattern field to support multi-product repositories
- Implement get_github_releases_by_pattern() for filtered release matching
- Add parse_github_version_release() to extract version-release components
- Update openbao plugin packages with release patterns and correct versions
- Configure openbao-plugins meta package for manual versioning
- Fix HashiCorp package GitHub repository references
- Support complex tag formats like "secrets-consul-v0.1.0" and "v7.1.3-1"

This enables automatic updates for packages sharing GitHub repos while
maintaining proper RPM version/release semantics and backward compatibility.
This commit is contained in:
2025-12-30 21:22:48 +11:00
parent 1e7b06aa84
commit 5cdbe3a6b5
41 changed files with 751 additions and 551 deletions
+18 -12
View File
@@ -1,13 +1,19 @@
---
builds:
- image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
release: '3'
repository: [almalinux/el8]
version: 7.1.1
- image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
release: '3'
repository: [almalinux/el9]
version: 7.1.1
description: jellyfin-ffmpeg-bin package
github: unknown/jellyfin-ffmpeg-bin
name: jellyfin-ffmpeg-bin
github: jellyfin/jellyfin-ffmpeg
description: jellyfin-ffmpeg-bin package
arch: amd64
platform: linux
maintainer: ''
homepage: ''
license: ''
builds:
- repository:
- almalinux/el8
image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
release: 1.1
version: 7.1.3
- repository:
- almalinux/el9
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
release: 1.1
version: 7.1.3
+7 -4
View File
@@ -3,12 +3,15 @@
# Setup rpmbuild directory structure
mkdir -p /root/rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS}
# Process the spec file template with environment variables
envsubst < /app/resources/jellyfin-ffmpeg-bin.spec.template > /root/rpmbuild/SPECS/jellyfin-ffmpeg-bin.spec
# Download source files using spectool
spectool -g -R /app/resources/jellyfin-ffmpeg-bin_${PACKAGE_VERSION}.spec
spectool -g -R /root/rpmbuild/SPECS/jellyfin-ffmpeg-bin.spec
# Build the RPM
rpmbuild -ba /app/resources/jellyfin-ffmpeg-bin_${PACKAGE_VERSION}.spec
rpmbuild -ba /root/rpmbuild/SPECS/jellyfin-ffmpeg-bin.spec
# Copy the built RPMs to output directory
cp /root/rpmbuild/RPMS/x86_64/jellyfin-ffmpeg-bin-${PACKAGE_VERSION}-${PACKAGE_RELEASE}.*.rpm /app/dist/
cp /root/rpmbuild/SRPMS/jellyfin-ffmpeg-bin-${PACKAGE_VERSION}-${PACKAGE_RELEASE}.*.rpm /app/dist
cp /root/rpmbuild/RPMS/x86_64/jellyfin-ffmpeg-bin-*.rpm /app/dist/
cp /root/rpmbuild/SRPMS/jellyfin-ffmpeg-bin-*.rpm /app/dist
@@ -1,20 +1,20 @@
%global debug_package %{nil}
%define _missing_build_ids_terminate_build 0
%global jellyfin_release 3
%global jellyfin_release 1
Name: jellyfin-ffmpeg-bin
Version: 7.1.1
Release: %{jellyfin_release}
Name: ${PACKAGE_NAME}
Version: ${PACKAGE_VERSION}
Release: ${PACKAGE_RELEASE}
Summary: FFmpeg for Jellyfin with custom extensions and enhancements
License: GPL-3.0-only
URL: https://github.com/jellyfin/jellyfin-ffmpeg
Source0: https://github.com/jellyfin/jellyfin-ffmpeg/releases/download/v%{version}-%{jellyfin_release}/jellyfin-ffmpeg_%{version}-%{jellyfin_release}_portable_linux64-gpl.tar.xz
Source1: https://github.com/jellyfin/jellyfin-ffmpeg/releases/download/v%{version}-%{jellyfin_release}/jellyfin-ffmpeg_%{version}-%{jellyfin_release}_portable_linuxarm64-gpl.tar.xz
Source2: https://raw.githubusercontent.com/jellyfin/jellyfin-ffmpeg/v%{version}-%{jellyfin_release}/LICENSE.md
Source3: https://raw.githubusercontent.com/jellyfin/jellyfin-ffmpeg/v%{version}-%{jellyfin_release}/README.md
Source0: https://github.com/jellyfin/jellyfin-ffmpeg/releases/download/v${PACKAGE_VERSION}-1/jellyfin-ffmpeg_${PACKAGE_VERSION}-1_portable_linux64-gpl.tar.xz
Source1: https://github.com/jellyfin/jellyfin-ffmpeg/releases/download/v${PACKAGE_VERSION}-1/jellyfin-ffmpeg_${PACKAGE_VERSION}-1_portable_linuxarm64-gpl.tar.xz
Source2: https://raw.githubusercontent.com/jellyfin/jellyfin-ffmpeg/v${PACKAGE_VERSION}-1/LICENSE.md
Source3: https://raw.githubusercontent.com/jellyfin/jellyfin-ffmpeg/v${PACKAGE_VERSION}-1/README.md
ExclusiveArch: x86_64 aarch64