feat: enhance GitHub release tracking with pattern support and version extraction
All checks were successful
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:
Ben Vincent 2025-12-30 21:22:48 +11:00
parent 1e7b06aa84
commit 5cdbe3a6b5
41 changed files with 751 additions and 551 deletions

View File

@ -1,18 +1,20 @@
---
arch: amd64
builds:
- image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
release: '1'
repository: [almalinux/el8]
version: 0.6.1
- image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
release: '1'
repository: [almalinux/el9]
version: 0.6.1
description: Boilerplate is a tool for generating files and folders (boilerplate) from a set of templates.
name: boilerplate
github: gruntwork-io/boilerplate
description: Boilerplate is a tool for generating files and folders (boilerplate)
from a set of templates.
arch: amd64
platform: linux
maintainer: Gruntwork
homepage: https://github.com/gruntwork-io/boilerplate
license: MIT
maintainer: Gruntwork
name: boilerplate
platform: linux
builds:
- repository:
- almalinux/el8
image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
release: 1-el8
version: 0.10.1
- repository:
- almalinux/el9
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
release: 1-el9
version: 0.10.1

View File

@ -1,18 +1,20 @@
---
arch: amd64
builds:
- image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
release: '1'
repository: [almalinux/el8]
version: 1.7.1
- image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
release: '1'
repository: [almalinux/el9]
version: 1.7.1
description: Some reference and example networking plugins, maintained by the CNI team.
name: cni-plugins
github: containernetworking/plugins
description: Some reference and example networking plugins, maintained by the CNI
team.
arch: amd64
platform: linux
maintainer: ContainerNetworking
homepage: https://github.com/containernetworking/plugins
license: Apache-2.0
maintainer: ContainerNetworking
name: cni-plugins
platform: linux
builds:
- repository:
- almalinux/el8
image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
release: 1-el8
version: 1.9.0
- repository:
- almalinux/el9
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
release: 1-el9
version: 1.9.0

View File

@ -1,18 +1,20 @@
---
arch: amd64
builds:
- image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
release: '1'
repository: [almalinux/el8]
version: 1.21.1
- image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
release: '1'
repository: [almalinux/el9]
version: 1.21.1
description: Consul is a distributed, highly available, and data center aware solution to connect and configure applications across dynamic, distributed infrastructure.
name: consul
github: hashicorp/consul
description: Consul is a distributed, highly available, and data center aware solution
to connect and configure applications across dynamic, distributed infrastructure.
arch: amd64
platform: linux
maintainer: HashiCorp
homepage: https://github.com/hashicorp/consul
license: BUSL-1.1
maintainer: HashiCorp
name: consul
platform: linux
builds:
- repository:
- almalinux/el8
image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
release: 1-el8
version: 1.22.2
- repository:
- almalinux/el9
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
release: 1-el9
version: 1.22.2

View File

@ -1,18 +1,20 @@
---
arch: amd64
builds:
- image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
release: '2'
repository: [almalinux/el8]
version: 3.5.18
- image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
release: '2'
repository: [almalinux/el9]
version: 3.5.18
description: A distributed, reliable key-value store for the most critical data of a distributed system.
name: etcd
github: etcd-io/etcd
description: A distributed, reliable key-value store for the most critical data of
a distributed system.
arch: amd64
platform: linux
maintainer: https://etcd.io/
homepage: https://etcd.io/
license: Apache-2.0
maintainer: https://etcd.io/
name: etcd
platform: linux
builds:
- repository:
- almalinux/el8
image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
release: 1-el8
version: 3.6.7
- repository:
- almalinux/el9
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
release: 1-el9
version: 3.6.7

View File

@ -1,18 +1,20 @@
---
arch: amd64
builds:
- image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
release: '1'
repository: [almalinux/el8]
version: 2.2.0
- image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
release: '1'
repository: [almalinux/el9]
version: 2.2.0
description: AIO Prometheus Exporter for Sabnzbd, Bazarr, Prowlarr, Lidarr, Readarr, Radarr, and Sonarr
name: exportarr
github: onedr0p/exportarr
description: AIO Prometheus Exporter for Sabnzbd, Bazarr, Prowlarr, Lidarr, Readarr,
Radarr, and Sonarr
arch: amd64
platform: linux
maintainer: onedr0p
homepage: https://github.com/onedr0p/exportarr
license: MIT license
maintainer: onedr0p
name: exportarr
platform: linux
builds:
- repository:
- almalinux/el8
image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
release: 1-el8
version: 2.3.0
- repository:
- almalinux/el9
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
release: 1-el9
version: 2.3.0

View File

@ -1,18 +1,19 @@
---
arch: amd64
builds:
- image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
release: '1'
repository: [almalinux/el8]
version: 1.8.0
- image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
release: '1'
repository: [almalinux/el9]
version: 1.8.0
description: Prometheus exporter for Free Range Routing
name: frr_exporter
github: tynany/frr_exporter
description: Prometheus exporter for Free Range Routing
arch: amd64
platform: linux
maintainer: Prometheus
homepage: https://github.com/tynany/frr_exporter
license: MIT
maintainer: Prometheus
name: frr_exporter
platform: linux
builds:
- repository:
- almalinux/el8
image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
release: 1-el8
version: 1.9.0
- repository:
- almalinux/el9
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
release: 1-el9
version: 1.9.0

View File

@ -1,18 +1,21 @@
---
arch: amd64
builds:
- image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
release: '1'
repository: [almalinux/el8]
version: 1.1.7
- image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
release: '1'
repository: [almalinux/el9]
version: 1.1.7
description: A declarative spec for deploying Helm charts. It lets you keep a directory of chart value files and maintain changes in version control; apply CI/CD to configuration changes; and periodically sync to avoid skew in environments.
name: helmfile
github: helmfile/helmfile
description: A declarative spec for deploying Helm charts. It lets you keep a directory
of chart value files and maintain changes in version control; apply CI/CD to configuration
changes; and periodically sync to avoid skew in environments.
arch: amd64
platform: linux
maintainer: Helmfile Contributors
homepage: https://github.com/helmfile/helmfile
license: MIT
maintainer: Helmfile Contributors
name: helmfile
platform: linux
builds:
- repository:
- almalinux/el8
image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
release: 1-el8
version: 1.2.3
- repository:
- almalinux/el9
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
release: 1-el9
version: 1.2.3

View File

@ -1,13 +1,14 @@
---
builds:
- image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
release: '1'
repository: [almalinux/el8]
version: 6.10.1
- image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
release: '1'
repository: [almalinux/el9]
version: 6.10.1
description: incus package
github: lxc/incus
name: incus
github: lxc/incus
description: incus package
arch: amd64
platform: linux
maintainer: ''
homepage: ''
license: ''
builds:
- repository:
- almalinux/el9
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
release: 1-el9
version: 6.20.0

View File

@ -3,7 +3,7 @@
set -e
# Install build dependencies
dnf install -y \
dnf makecache && dnf install -y \
unzip \
libtool \
autoconf \

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

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

View File

@ -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

View File

@ -1,18 +1,20 @@
---
arch: amd64
builds:
- image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
release: '1'
repository: [almalinux/el8]
version: 2.41.1
- image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
release: '1'
repository: [almalinux/el9]
version: 2.41.1
description: A zero dependencies, simple deb, rpm, apk, ipk, and arch linux packager written in Go.
name: nfpm
github: goreleaser/nfpm
description: A zero dependencies, simple deb, rpm, apk, ipk, and arch linux packager
written in Go.
arch: amd64
platform: linux
maintainer: GoReleaser
homepage: https://nfpm.goreleaser.com/
license: MIT
maintainer: GoReleaser
name: nfpm
platform: linux
builds:
- repository:
- almalinux/el8
image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
release: 1-el8
version: 2.44.1
- repository:
- almalinux/el9
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
release: 1-el9
version: 2.44.1

View File

@ -1,6 +1,9 @@
#!/usr/bin/bash
set -e
# Set Go toolchain to support newer nfpm versions
export GOTOOLCHAIN=go1.25.0
# Compile nfpm binary using Go
GOBIN=/app go install github.com/goreleaser/nfpm/v2/cmd/nfpm@v${PACKAGE_VERSION}

View File

@ -1,18 +1,19 @@
---
arch: amd64
builds:
- image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
release: '1'
repository: [almalinux/el8]
version: 1.9.1
- image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
release: '1'
repository: [almalinux/el9]
version: 1.9.1
description: exporter for machine metrics
name: node_exporter
github: prometheus/node_exporter
description: exporter for machine metrics
arch: amd64
platform: linux
maintainer: Prometheus
homepage: https://github.com/prometheus/node_exporter
license: Apache-2.0 license
maintainer: Prometheus
name: node_exporter
platform: linux
builds:
- repository:
- almalinux/el8
image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
release: 1-el8
version: 1.10.2
- repository:
- almalinux/el9
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
release: 1-el9
version: 1.10.2

View File

@ -1,18 +1,21 @@
---
arch: amd64
builds:
- image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
release: '1'
repository: [almalinux/el8]
version: 0.4.6
- image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
release: '1'
repository: [almalinux/el9]
version: 0.4.6
description: The Nomad Autoscaler is an autoscaling daemon for Nomad, architectured around plug-ins to allow for easy extensibility in terms of supported metrics sources, scaling targets and scaling algorithms.
name: nomad-autoscaler
github: hashicorp/nomad-autoscaler
description: The Nomad Autoscaler is an autoscaling daemon for Nomad, architectured
around plug-ins to allow for easy extensibility in terms of supported metrics sources,
scaling targets and scaling algorithms.
arch: amd64
platform: linux
maintainer: Hashicorp
homepage: https://github.com/hashicorp/nomad-autoscaler
license: Mozilla Public License, version 2.0
maintainer: Hashicorp
name: nomad-autoscaler
platform: linux
builds:
- repository:
- almalinux/el8
image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
release: 1-el8
version: 0.4.8
- repository:
- almalinux/el9
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
release: 1-el9
version: 0.4.8

View File

@ -1,18 +1,20 @@
---
arch: amd64
builds:
- image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
release: '1'
repository: [almalinux/el8]
version: '25.0'
- image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
release: '1'
repository: [almalinux/el9]
version: '25.0'
description: NZBGet is a binary downloader, which downloads files from Usenet based-on information given in nzb files.
name: nzbget
github: nzbgetcom/nzbget
description: NZBGet is a binary downloader, which downloads files from Usenet based-on
information given in nzb files.
arch: amd64
platform: linux
maintainer: nzbgetcom
homepage: https://github.com/nzbgetcom/nzbget
license: GPL-2.0
maintainer: nzbgetcom
name: nzbget
platform: linux
builds:
- repository:
- almalinux/el8
image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
release: 1-el8
version: '25.4'
- repository:
- almalinux/el9
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
release: 1-el9
version: '25.4'

View File

@ -1,18 +1,20 @@
---
arch: amd64
builds:
- image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
release: '1'
repository: [almalinux/el8]
version: 0.1.0
- image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
release: '1'
repository: [almalinux/el9]
version: 0.1.0
description: OpenBao secrets engine plugin for HashiCorp Consul
name: openbao-plugin-secret-consul
github: openbao/openbao-plugins
github_release_pattern: "^secrets-consul-v.*"
description: OpenBao secrets engine plugin for HashiCorp Consul
arch: amd64
platform: linux
maintainer: OpenBao Community
homepage: https://github.com/openbao/openbao-plugins
license: MPL-2.0
maintainer: OpenBao Community
name: openbao-plugin-secret-consul
platform: linux
builds:
- repository:
- almalinux/el8
image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
release: 1-el8
version: 0.1.0
- repository:
- almalinux/el9
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
release: 1-el9
version: 0.1.0

View File

@ -1,18 +1,20 @@
---
arch: amd64
builds:
- image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
release: '1'
repository: [almalinux/el8]
version: 0.1.4
- image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
release: '1'
repository: [almalinux/el9]
version: 0.1.4
description: OpenBao secrets engine plugin for HashiCorp Nomad
name: openbao-plugin-secret-nomad
github: openbao/openbao-plugins
github_release_pattern: "^secrets-nomad-v.*"
description: OpenBao secrets engine plugin for HashiCorp Nomad
arch: amd64
platform: linux
maintainer: OpenBao Community
homepage: https://github.com/openbao/openbao-plugins
license: MPL-2.0
maintainer: OpenBao Community
name: openbao-plugin-secret-nomad
platform: linux
builds:
- repository:
- almalinux/el8
image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
release: 1-el8
version: 0.1.5
- repository:
- almalinux/el9
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
release: 1-el9
version: 0.1.5

View File

@ -1,18 +1,18 @@
---
arch: amd64
builds:
- image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
release: '1'
repository: [almalinux/el8]
version: 1.0.0
- image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
release: '1'
repository: [almalinux/el9]
version: 1.0.0
name: openbao-plugins
description: Meta package that installs all OpenBao plugins
github: openbao/openbao-plugins
arch: amd64
platform: linux
maintainer: OpenBao Community
homepage: https://github.com/openbao/openbao-plugins
license: MPL-2.0
maintainer: OpenBao Community
name: openbao-plugins
platform: linux
builds:
- repository:
- almalinux/el8
image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
release: 1-el8
version: 1.0.0
- repository:
- almalinux/el9
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
release: 1-el9
version: 1.0.0

View File

@ -1,18 +1,19 @@
---
arch: amd64
builds:
- image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
release: '1'
repository: [almalinux/el8]
version: 1.13.1
- image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
release: '1'
repository: [almalinux/el9]
version: 1.13.1
name: packer
github: hashicorp/packer
description: Create identical images for multiple platforms from a single source configuration.
github: unknown/packer
arch: amd64
platform: linux
maintainer: HashiCorp
homepage: https://www.packer.io/
license: BUSL-1.1
maintainer: HashiCorp
name: packer
platform: linux
builds:
- repository:
- almalinux/el8
image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
release: 1-el8
version: 1.14.3
- repository:
- almalinux/el9
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
release: 1-el9
version: 1.14.3

View File

@ -1,18 +1,19 @@
---
arch: amd64
builds:
- image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
release: '1'
repository: [almalinux/el8]
version: 0.17.1
- image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
release: '1'
repository: [almalinux/el9]
version: 0.17.1
description: A PostgreSQL metric exporter for Prometheus
name: postgres_exporter
github: prometheus-community/postgres_exporter
description: A PostgreSQL metric exporter for Prometheus
arch: amd64
platform: linux
maintainer: Prometheus
homepage: https://github.com/prometheus-community/postgres_exporter
license: Apache-2.0 license
maintainer: Prometheus
name: postgres_exporter
platform: linux
builds:
- repository:
- almalinux/el8
image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
release: 1-el8
version: 0.18.1
- repository:
- almalinux/el9
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
release: 1-el9
version: 0.18.1

View File

@ -1,18 +1,19 @@
---
arch: amd64
builds:
- image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
release: '6'
repository: [almalinux/el8]
version: 0.8.1
- image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
release: '6'
repository: [almalinux/el9]
version: 0.8.1
description: An extremely fast Python linter and code formatter, written in Rust.
name: ruff
github: astral-sh/ruff
description: An extremely fast Python linter and code formatter, written in Rust.
arch: amd64
platform: linux
maintainer: Astral.sh
homepage: https://docs.astral.sh/ruff/
license: Apache-2.0
maintainer: Astral.sh
name: ruff
platform: linux
builds:
- repository:
- almalinux/el8
image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
release: 1-el8
version: 0.14.10
- repository:
- almalinux/el9
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
release: 1-el9
version: 0.14.10

View File

@ -1,18 +1,19 @@
---
arch: amd64
builds:
- image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
release: '1'
repository: [almalinux/el8]
version: 0.13.4
- image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
release: '1'
repository: [almalinux/el9]
version: 0.13.4
description: Stalwart CLI - Command line interface for Stalwart Mail Server
name: stalwart-cli
github: stalwartlabs/stalwart
description: Stalwart CLI - Command line interface for Stalwart Mail Server
arch: amd64
platform: linux
maintainer: Stalwart Labs
homepage: https://stalw.art
license: AGPL-3.0
maintainer: Stalwart Labs
name: stalwart-cli
platform: linux
builds:
- repository:
- almalinux/el8
image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
release: 1-el8
version: 0.15.3
- repository:
- almalinux/el9
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
release: 1-el9
version: 0.15.3

View File

@ -1,18 +1,20 @@
---
arch: amd64
builds:
- image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
release: '1'
repository: [almalinux/el8]
version: 0.13.4
- image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
release: '1'
repository: [almalinux/el9]
version: 0.13.4
description: Stalwart Mail Server with FoundationDB support - A modern, secure JMAP, IMAP and SMTP mail server
name: stalwart-foundationdb
github: stalwartlabs/stalwart
description: Stalwart Mail Server with FoundationDB support - A modern, secure JMAP,
IMAP and SMTP mail server
arch: amd64
platform: linux
maintainer: Stalwart Labs
homepage: https://stalw.art
license: AGPL-3.0
maintainer: Stalwart Labs
name: stalwart-foundationdb
platform: linux
builds:
- repository:
- almalinux/el8
image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
release: 1-el8
version: 0.15.3
- repository:
- almalinux/el9
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
release: 1-el9
version: 0.15.3

View File

@ -1,18 +1,19 @@
---
arch: amd64
builds:
- image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
release: '1'
repository: [almalinux/el8]
version: 0.13.4
- image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
release: '1'
repository: [almalinux/el9]
version: 0.13.4
description: Stalwart Mail Server - A modern, secure JMAP, IMAP and SMTP mail server
name: stalwart
github: stalwartlabs/stalwart
description: Stalwart Mail Server - A modern, secure JMAP, IMAP and SMTP mail server
arch: amd64
platform: linux
maintainer: Stalwart Labs
homepage: https://stalw.art
license: AGPL-3.0
maintainer: Stalwart Labs
name: stalwart
platform: linux
builds:
- repository:
- almalinux/el8
image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
release: 1-el8
version: 0.15.3
- repository:
- almalinux/el9
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
release: 1-el9
version: 0.15.3

View File

@ -1,18 +1,22 @@
---
name: terraform
github: hashicorp/terraform
description: Terraform enables you to safely and predictably create, change, and improve
infrastructure. It is a tool that codifies APIs into declarative configuration files
that can be shared amongst team members, treated as code, edited, reviewed, and
versioned.
arch: amd64
builds:
- image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
release: '1'
repository: [almalinux/el8]
version: 1.5.0
- image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
release: '1'
repository: [almalinux/el9]
version: 1.5.0
description: Terraform enables you to safely and predictably create, change, and improve infrastructure. It is a tool that codifies APIs into declarative configuration files that can be shared amongst team members, treated as code, edited, reviewed, and versioned.
github: unknown/terraform
platform: linux
maintainer: HashiCorp
homepage: https://terraform.io/
license: BUSL-1.1
maintainer: HashiCorp
name: terraform
platform: linux
builds:
- repository:
- almalinux/el8
image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
release: 1-el8
version: 1.14.3
- repository:
- almalinux/el9
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
release: 1-el9
version: 1.14.3

View File

@ -1,18 +1,20 @@
---
arch: amd64
builds:
- image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
release: '1'
repository: [almalinux/el8]
version: 0.90.0
- image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
release: '1'
repository: [almalinux/el9]
version: 0.90.0
description: Terragrunt is a flexible orchestration tool that allows Infrastructure as Code written in OpenTofu/Terraform to scale.
name: terragrunt
github: gruntwork-io/terragrunt
description: Terragrunt is a flexible orchestration tool that allows Infrastructure
as Code written in OpenTofu/Terraform to scale.
arch: amd64
platform: linux
maintainer: Gruntwork
homepage: https://github.com/gruntwork-io/terragrunt
license: MIT
maintainer: Gruntwork
name: terragrunt
platform: linux
builds:
- repository:
- almalinux/el8
image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
release: 1-el8
version: 0.96.1
- repository:
- almalinux/el9
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
release: 1-el9
version: 0.96.1

View File

@ -1,18 +1,20 @@
---
arch: amd64
builds:
- image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
release: '1'
repository: [almalinux/el8]
version: 0.59.1
- image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
release: '1'
repository: [almalinux/el9]
version: 0.59.1
description: A Pluggable Terraform Linter that finds potential errors in Terraform configurations and enforces best practices.
name: tflint
github: terraform-linters/tflint
description: A Pluggable Terraform Linter that finds potential errors in Terraform
configurations and enforces best practices.
arch: amd64
platform: linux
maintainer: Terraform Linters
homepage: https://github.com/terraform-linters/tflint
license: MPL-2.0
maintainer: Terraform Linters
name: tflint
platform: linux
builds:
- repository:
- almalinux/el8
image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
release: 1-el8
version: 0.60.0
- repository:
- almalinux/el9
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
release: 1-el9
version: 0.60.0

View File

@ -1,18 +1,19 @@
---
arch: amd64
builds:
- image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
release: '1'
repository: [almalinux/el8]
version: 0.6.5
- image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
release: '1'
repository: [almalinux/el9]
version: 0.6.5
description: An extremely fast Python package and project manager, written in Rust.
name: uv
github: astral-sh/uv
description: An extremely fast Python package and project manager, written in Rust.
arch: amd64
platform: linux
maintainer: Astral.sh
homepage: https://docs.astral.sh/uv/
license: Apache-2.0
maintainer: Astral.sh
name: uv
platform: linux
builds:
- repository:
- almalinux/el8
image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
release: 1-el8
version: 0.9.20
- repository:
- almalinux/el9
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
release: 1-el9
version: 0.9.20

View File

@ -1,18 +1,20 @@
---
arch: amd64
builds:
- image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
release: '1'
repository: [almalinux/el8]
version: 0.42.2
- image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
release: '1'
repository: [almalinux/el9]
version: 0.42.2
description: vals is a Helm-like configuration 'Values' loader with support for various sources and merge strategies
name: vals
github: helmfile/vals
description: vals is a Helm-like configuration 'Values' loader with support for various
sources and merge strategies
arch: amd64
platform: linux
maintainer: Helmfile Contributors
homepage: https://github.com/helmfile/vals
license: Apache-2.0
maintainer: Helmfile Contributors
name: vals
platform: linux
builds:
- repository:
- almalinux/el8
image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
release: 1-el8
version: 0.43.0
- repository:
- almalinux/el9
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
release: 1-el9
version: 0.43.0

View File

@ -1,18 +1,22 @@
---
arch: amd64
builds:
- image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
release: '1'
repository: [almalinux/el8]
version: 1.19.5
- image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
release: '1'
repository: [almalinux/el9]
version: 1.19.5
description: Vault is a tool for securely accessing secrets. A secret is anything that you want to tightly control access to, such as API keys, passwords, certificates, and more. Vault provides a unified interface to any secret, while providing tight access control and recording a detailed audit log.
name: vault
github: hashicorp/vault
description: Vault is a tool for securely accessing secrets. A secret is anything
that you want to tightly control access to, such as API keys, passwords, certificates,
and more. Vault provides a unified interface to any secret, while providing tight
access control and recording a detailed audit log.
arch: amd64
platform: linux
maintainer: HashiCorp
homepage: https://github.com/hashicorp/vault
license: BUSL-1.1
maintainer: HashiCorp
name: vault
platform: linux
builds:
- repository:
- almalinux/el8
image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
release: 1-el8
version: 1.21.1
- repository:
- almalinux/el9
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
release: 1-el9
version: 1.21.1

View File

@ -1,18 +1,20 @@
---
arch: amd64
builds:
- image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
release: '1'
repository: [almalinux/el8]
version: 1.26.0
- image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
release: '1'
repository: [almalinux/el9]
version: 1.26.0
description: 'VictoriaLogs: Fast and easy to use database for logs, which can efficiently handle terabytes of logs'
name: victoria-logs
github: VictoriaMetrics/VictoriaLogs
description: 'VictoriaLogs: Fast and easy to use database for logs, which can efficiently
handle terabytes of logs'
arch: amd64
platform: linux
maintainer: VictoriaMetrics
homepage: https://github.com/VictoriaMetrics/VictoriaLogs
license: Apache-2.0 license
maintainer: VictoriaMetrics
name: victoria-logs
platform: linux
builds:
- repository:
- almalinux/el8
image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
release: 1-el8
version: 1.43.1
- repository:
- almalinux/el9
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
release: 1-el9
version: 1.43.1

View File

@ -1,18 +1,20 @@
---
arch: amd64
builds:
- image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
release: '1'
repository: [almalinux/el8]
version: 1.26.0
- image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
release: '1'
repository: [almalinux/el9]
version: 1.26.0
description: 'VictoriaLogs utilities: Fast and easy to use database for logs, which can efficiently handle terabytes of logs'
name: vlutils
github: VictoriaMetrics/VictoriaLogs
description: 'VictoriaLogs utilities: Fast and easy to use database for logs, which
can efficiently handle terabytes of logs'
arch: amd64
platform: linux
maintainer: VictoriaMetrics
homepage: https://github.com/VictoriaMetrics/VictoriaLogs
license: Apache-2.0 license
maintainer: VictoriaMetrics
name: vlutils
platform: linux
builds:
- repository:
- almalinux/el8
image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
release: 1-el8
version: 1.43.1
- repository:
- almalinux/el9
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
release: 1-el9
version: 1.43.1

View File

@ -1,18 +1,20 @@
---
arch: amd64
builds:
- image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
release: '1'
repository: [almalinux/el8]
version: 1.119.0
- image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
release: '1'
repository: [almalinux/el9]
version: 1.119.0
description: vmagent collects metrics data via popular data ingestion protocols and routes it to VictoriaMetrics.
name: vmagent
github: VictoriaMetrics/VictoriaMetrics
description: vmagent collects metrics data via popular data ingestion protocols and
routes it to VictoriaMetrics.
arch: amd64
platform: linux
maintainer: VictoriaMetrics
homepage: https://github.com/VictoriaMetrics/VictoriaMetrics
license: Apache-2.0 license
maintainer: VictoriaMetrics
name: vmagent
platform: linux
builds:
- repository:
- almalinux/el8
image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
release: 1-el8
version: 1.132.0
- repository:
- almalinux/el9
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
release: 1-el9
version: 1.132.0

View File

@ -1,18 +1,19 @@
---
arch: amd64
builds:
- image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
release: '1'
repository: [almalinux/el8]
version: 1.119.0
- image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
release: '1'
repository: [almalinux/el9]
version: 1.119.0
description: vmalert processes alerts and recording rules from VictoriaMetrics.
name: vmalert
github: VictoriaMetrics/VictoriaMetrics
description: vmalert processes alerts and recording rules from VictoriaMetrics.
arch: amd64
platform: linux
maintainer: VictoriaMetrics
homepage: https://github.com/VictoriaMetrics/VictoriaMetrics
license: Apache-2.0 license
maintainer: VictoriaMetrics
name: vmalert
platform: linux
builds:
- repository:
- almalinux/el8
image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
release: 1-el8
version: 1.132.0
- repository:
- almalinux/el9
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
release: 1-el9
version: 1.132.0

View File

@ -1,18 +1,20 @@
---
arch: amd64
builds:
- image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
release: '1'
repository: [almalinux/el8]
version: 1.119.0
- image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
release: '1'
repository: [almalinux/el9]
version: 1.119.0
description: vminsert accepts data via popular data ingestion protocols and routes it to vmstorage nodes
name: vminsert
github: VictoriaMetrics/VictoriaMetrics
description: vminsert accepts data via popular data ingestion protocols and routes
it to vmstorage nodes
arch: amd64
platform: linux
maintainer: VictoriaMetrics
homepage: https://github.com/VictoriaMetrics/VictoriaMetrics
license: Apache-2.0 license
maintainer: VictoriaMetrics
name: vminsert
platform: linux
builds:
- repository:
- almalinux/el8
image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
release: 1-el8
version: 1.132.0
- repository:
- almalinux/el9
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
release: 1-el9
version: 1.132.0

View File

@ -1,18 +1,20 @@
---
arch: amd64
builds:
- image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
release: '1'
repository: [almalinux/el8]
version: 1.119.0
- image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
release: '1'
repository: [almalinux/el9]
version: 1.119.0
description: vmselect processes incoming queries by fetching the requested data from vmstorage nodes
name: vmselect
github: VictoriaMetrics/VictoriaMetrics
description: vmselect processes incoming queries by fetching the requested data from
vmstorage nodes
arch: amd64
platform: linux
maintainer: VictoriaMetrics
homepage: https://github.com/VictoriaMetrics/VictoriaMetrics
license: Apache-2.0 license
maintainer: VictoriaMetrics
name: vmselect
platform: linux
builds:
- repository:
- almalinux/el8
image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
release: 1-el8
version: 1.132.0
- repository:
- almalinux/el9
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
release: 1-el9
version: 1.132.0

View File

@ -1,18 +1,20 @@
---
arch: amd64
builds:
- image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
release: '1'
repository: [almalinux/el8]
version: 1.119.0
- image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
release: '1'
repository: [almalinux/el9]
version: 1.119.0
description: vmstorage stores time series data obtained from vminsert and returns the requested data to vmselect
name: vmstorage
github: VictoriaMetrics/VictoriaMetrics
description: vmstorage stores time series data obtained from vminsert and returns
the requested data to vmselect
arch: amd64
platform: linux
maintainer: VictoriaMetrics
homepage: https://github.com/VictoriaMetrics/VictoriaMetrics
license: Apache-2.0 license
maintainer: VictoriaMetrics
name: vmstorage
platform: linux
builds:
- repository:
- almalinux/el8
image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
release: 1-el8
version: 1.132.0
- repository:
- almalinux/el9
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
release: 1-el9
version: 1.132.0

View File

@ -1,18 +1,20 @@
---
arch: amd64
builds:
- image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
release: '1'
repository: [almalinux/el8]
version: 1.119.0
- image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
release: '1'
repository: [almalinux/el9]
version: 1.119.0
description: 'VictoriaMetrics utilities: fast, cost-effective monitoring solution and time series database.'
name: vmutils
github: VictoriaMetrics/VictoriaMetrics
description: 'VictoriaMetrics utilities: fast, cost-effective monitoring solution
and time series database.'
arch: amd64
platform: linux
maintainer: VictoriaMetrics
homepage: https://github.com/VictoriaMetrics/VictoriaMetrics
license: Apache-2.0 license
maintainer: VictoriaMetrics
name: vmutils
platform: linux
builds:
- repository:
- almalinux/el8
image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
release: 1-el8
version: 1.132.0
- repository:
- almalinux/el9
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
release: 1-el9
version: 1.132.0

View File

@ -285,6 +285,32 @@ def normalize_github_version(version: str) -> str:
return version
def parse_github_version_release(version: str) -> tuple[str, str]:
"""
Parse GitHub version string and extract version and release components.
Args:
version: Version string (e.g., "v7.1.3-1" or "v1.2.3")
Returns:
Tuple of (version, release_suffix) where release_suffix is empty if no trailing number
"""
import re
# Remove 'v' prefix if present
if version.startswith('v'):
version = version[1:]
# Check if version ends with -<number>
match = re.match(r'^(.+)-(\d+)$', version)
if match:
version_part = match.group(1)
release_suffix = match.group(2)
return version_part, release_suffix
else:
return version, ""
def compare_versions(current: str, latest: str) -> bool:
"""
Compare version strings to determine if latest is newer.
@ -311,6 +337,69 @@ def compare_versions(current: str, latest: str) -> bool:
return latest != current
def get_github_releases_by_pattern(repo: str, pattern: str) -> Optional[dict]:
"""
Get the latest release from GitHub API that matches a specific pattern.
Args:
repo: GitHub repository in format "owner/repo"
pattern: Regex pattern to match release tag names
Returns:
Latest matching release info or None if not found
"""
import re
logger = logging.getLogger(__name__)
try:
github_token = get_github_token()
url = f"https://api.github.com/repos/{repo}/releases"
headers = {
'Authorization': f'token {github_token}',
'Accept': 'application/vnd.github.v3+json'
}
logger.debug(f"Checking GitHub releases with pattern '{pattern}': {url}")
response = requests.get(url, headers=headers, timeout=30)
if response.status_code == 200:
releases = response.json()
# Filter releases by pattern and find the latest
matching_releases = []
for release in releases:
tag_name = release.get('tag_name', '')
if re.match(pattern, tag_name):
matching_releases.append(release)
if matching_releases:
# Return the first (most recent) matching release
latest_release = matching_releases[0]
logger.debug(f"Latest matching release for {repo} with pattern '{pattern}': {latest_release.get('tag_name', 'unknown')}")
return latest_release
else:
logger.warning(f"No releases matching pattern '{pattern}' found for {repo}")
return None
elif response.status_code == 404:
logger.warning(f"No releases found for {repo}")
return None
elif response.status_code == 401:
logger.error("GitHub authentication failed. Check GitHub token.")
return None
else:
logger.warning(
f"Unexpected response from GitHub API for {repo}: "
f"{response.status_code} - {response.text}"
)
return None
except requests.RequestException as e:
logger.error(f"Failed to check GitHub releases for {repo}: {e}")
return None
def get_github_token() -> str:
"""
Retrieve GitHub API token from Vault.
@ -1048,6 +1137,7 @@ class Builder:
license=metadata_data.get('license', ''),
builds=builds
)
github_release_pattern = metadata_data.get('github_release_pattern', '')
if not package_metadata.github:
self.logger.debug(f"Package {package_name} has no GitHub repo configured")
@ -1055,12 +1145,35 @@ class Builder:
self.logger.info(f"Checking {package_name} from {package_metadata.github}")
# Get latest release from GitHub
latest_release = get_github_latest_release(package_metadata.github)
# Get latest release from GitHub, with pattern filtering if specified
if github_release_pattern:
self.logger.debug(f"Using release pattern: {github_release_pattern}")
latest_release = get_github_releases_by_pattern(package_metadata.github, github_release_pattern)
else:
latest_release = get_github_latest_release(package_metadata.github)
if not latest_release:
return False
latest_version = normalize_github_version(latest_release.get('tag_name', ''))
# Parse version and release from GitHub tag
latest_tag = latest_release.get('tag_name', '')
# For pattern-matched releases, we need to extract the version part
# Example: "secrets-consul-v0.1.0" should become "0.1.0"
if github_release_pattern and latest_tag:
# Try to extract version from pattern like "secrets-consul-v0.1.0"
import re
# Look for version pattern after the prefix (v followed by semantic version)
version_match = re.search(r'v(\d+\.\d+\.\d+(?:-\d+)?)', latest_tag)
if version_match:
extracted_version = version_match.group(1)
latest_version, release_suffix = parse_github_version_release(extracted_version)
else:
# Fallback to full tag processing
latest_version, release_suffix = parse_github_version_release(latest_tag)
else:
latest_version, release_suffix = parse_github_version_release(latest_tag)
if not latest_version:
self.logger.warning(f"Could not determine latest version for {package_name}")
return False
@ -1071,7 +1184,14 @@ class Builder:
if compare_versions(build.version, latest_version):
# Determine distro suffix based on repository configuration
distro_suffix = self._get_distro_suffix(build.repository)
new_release = f"1-{distro_suffix}" if distro_suffix else "1"
# Build the new release number
if release_suffix:
# Use extracted release suffix (e.g., "1" from "7.1.3-1")
new_release = f"{release_suffix}-{distro_suffix}" if distro_suffix else release_suffix
else:
# Default release numbering
new_release = f"1-{distro_suffix}" if distro_suffix else "1"
self.logger.info(f"New version available for {package_name}: {build.version} -> {latest_version}")
if not dry_run:
@ -1104,6 +1224,10 @@ class Builder:
]
}
# Add github_release_pattern if it exists
if github_release_pattern:
updated_data['github_release_pattern'] = github_release_pattern
with open(metadata_file, 'w') as f:
yaml.dump(updated_data, f, default_flow_style=False, sort_keys=False)