From 5cdbe3a6b51caa6319638143d3f3e9986b8e61e7 Mon Sep 17 00:00:00 2001 From: Ben Vincent Date: Tue, 30 Dec 2025 21:22:48 +1100 Subject: [PATCH] feat: enhance GitHub release tracking with pattern support and version extraction - 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. --- rpms/boilerplate/metadata.yaml | 32 +++-- rpms/cni-plugins/metadata.yaml | 32 +++-- rpms/consul/metadata.yaml | 32 +++-- rpms/etcd/metadata.yaml | 32 +++-- rpms/exportarr/metadata.yaml | 32 +++-- rpms/frr_exporter/metadata.yaml | 31 ++-- rpms/helmfile/metadata.yaml | 33 +++-- rpms/incus/metadata.yaml | 25 ++-- rpms/incus/resources/build.sh | 2 +- rpms/jellyfin-ffmpeg-bin/metadata.yaml | 30 ++-- rpms/jellyfin-ffmpeg-bin/resources/build.sh | 11 +- ...spec => jellyfin-ffmpeg-bin.spec.template} | 16 +-- rpms/nfpm/metadata.yaml | 32 +++-- rpms/nfpm/resources/build.sh | 3 + rpms/node_exporter/metadata.yaml | 31 ++-- rpms/nomad-autoscaler/metadata.yaml | 33 +++-- rpms/nzbget/metadata.yaml | 32 +++-- .../metadata.yaml | 32 +++-- .../openbao-plugin-secret-nomad/metadata.yaml | 32 +++-- rpms/openbao-plugins/metadata.yaml | 30 ++-- rpms/packer/metadata.yaml | 31 ++-- rpms/postgres_exporter/metadata.yaml | 31 ++-- rpms/ruff/metadata.yaml | 31 ++-- rpms/stalwart-cli/metadata.yaml | 31 ++-- rpms/stalwart-foundationdb/metadata.yaml | 32 +++-- rpms/stalwart/metadata.yaml | 31 ++-- rpms/terraform/metadata.yaml | 34 +++-- rpms/terragrunt/metadata.yaml | 32 +++-- rpms/tflint/metadata.yaml | 32 +++-- rpms/uv/metadata.yaml | 31 ++-- rpms/vals/metadata.yaml | 32 +++-- rpms/vault/metadata.yaml | 34 +++-- rpms/victoria-logs/metadata.yaml | 32 +++-- rpms/vlutils/metadata.yaml | 32 +++-- rpms/vmagent/metadata.yaml | 32 +++-- rpms/vmalert/metadata.yaml | 31 ++-- rpms/vminsert/metadata.yaml | 32 +++-- rpms/vmselect/metadata.yaml | 32 +++-- rpms/vmstorage/metadata.yaml | 32 +++-- rpms/vmutils/metadata.yaml | 32 +++-- tools/build | 132 +++++++++++++++++- 41 files changed, 751 insertions(+), 551 deletions(-) rename rpms/jellyfin-ffmpeg-bin/resources/{jellyfin-ffmpeg-bin_7.1.1.spec => jellyfin-ffmpeg-bin.spec.template} (75%) diff --git a/rpms/boilerplate/metadata.yaml b/rpms/boilerplate/metadata.yaml index 439cbd6..0f9ffa0 100644 --- a/rpms/boilerplate/metadata.yaml +++ b/rpms/boilerplate/metadata.yaml @@ -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 diff --git a/rpms/cni-plugins/metadata.yaml b/rpms/cni-plugins/metadata.yaml index 6117c0e..db151df 100644 --- a/rpms/cni-plugins/metadata.yaml +++ b/rpms/cni-plugins/metadata.yaml @@ -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 diff --git a/rpms/consul/metadata.yaml b/rpms/consul/metadata.yaml index 2f4e73d..2349853 100644 --- a/rpms/consul/metadata.yaml +++ b/rpms/consul/metadata.yaml @@ -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 diff --git a/rpms/etcd/metadata.yaml b/rpms/etcd/metadata.yaml index 35aa5e6..b53526a 100644 --- a/rpms/etcd/metadata.yaml +++ b/rpms/etcd/metadata.yaml @@ -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 diff --git a/rpms/exportarr/metadata.yaml b/rpms/exportarr/metadata.yaml index 84f90f6..4a61cda 100644 --- a/rpms/exportarr/metadata.yaml +++ b/rpms/exportarr/metadata.yaml @@ -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 diff --git a/rpms/frr_exporter/metadata.yaml b/rpms/frr_exporter/metadata.yaml index 068947e..868d312 100644 --- a/rpms/frr_exporter/metadata.yaml +++ b/rpms/frr_exporter/metadata.yaml @@ -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 diff --git a/rpms/helmfile/metadata.yaml b/rpms/helmfile/metadata.yaml index 6a7c591..600a590 100644 --- a/rpms/helmfile/metadata.yaml +++ b/rpms/helmfile/metadata.yaml @@ -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 diff --git a/rpms/incus/metadata.yaml b/rpms/incus/metadata.yaml index 9be6d3d..e8ae0de 100644 --- a/rpms/incus/metadata.yaml +++ b/rpms/incus/metadata.yaml @@ -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 diff --git a/rpms/incus/resources/build.sh b/rpms/incus/resources/build.sh index 0bde14a..38ad84f 100755 --- a/rpms/incus/resources/build.sh +++ b/rpms/incus/resources/build.sh @@ -3,7 +3,7 @@ set -e # Install build dependencies -dnf install -y \ +dnf makecache && dnf install -y \ unzip \ libtool \ autoconf \ diff --git a/rpms/jellyfin-ffmpeg-bin/metadata.yaml b/rpms/jellyfin-ffmpeg-bin/metadata.yaml index 243d457..a4df5b2 100644 --- a/rpms/jellyfin-ffmpeg-bin/metadata.yaml +++ b/rpms/jellyfin-ffmpeg-bin/metadata.yaml @@ -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 diff --git a/rpms/jellyfin-ffmpeg-bin/resources/build.sh b/rpms/jellyfin-ffmpeg-bin/resources/build.sh index 77687d3..603869d 100755 --- a/rpms/jellyfin-ffmpeg-bin/resources/build.sh +++ b/rpms/jellyfin-ffmpeg-bin/resources/build.sh @@ -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 \ No newline at end of file +cp /root/rpmbuild/RPMS/x86_64/jellyfin-ffmpeg-bin-*.rpm /app/dist/ +cp /root/rpmbuild/SRPMS/jellyfin-ffmpeg-bin-*.rpm /app/dist \ No newline at end of file diff --git a/rpms/jellyfin-ffmpeg-bin/resources/jellyfin-ffmpeg-bin_7.1.1.spec b/rpms/jellyfin-ffmpeg-bin/resources/jellyfin-ffmpeg-bin.spec.template similarity index 75% rename from rpms/jellyfin-ffmpeg-bin/resources/jellyfin-ffmpeg-bin_7.1.1.spec rename to rpms/jellyfin-ffmpeg-bin/resources/jellyfin-ffmpeg-bin.spec.template index 4419a40..cbdae14 100644 --- a/rpms/jellyfin-ffmpeg-bin/resources/jellyfin-ffmpeg-bin_7.1.1.spec +++ b/rpms/jellyfin-ffmpeg-bin/resources/jellyfin-ffmpeg-bin.spec.template @@ -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 diff --git a/rpms/nfpm/metadata.yaml b/rpms/nfpm/metadata.yaml index f6c8e2d..c23ed85 100644 --- a/rpms/nfpm/metadata.yaml +++ b/rpms/nfpm/metadata.yaml @@ -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 diff --git a/rpms/nfpm/resources/build.sh b/rpms/nfpm/resources/build.sh index 6542214..245cee9 100755 --- a/rpms/nfpm/resources/build.sh +++ b/rpms/nfpm/resources/build.sh @@ -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} diff --git a/rpms/node_exporter/metadata.yaml b/rpms/node_exporter/metadata.yaml index 497c9e3..f8a5d8c 100644 --- a/rpms/node_exporter/metadata.yaml +++ b/rpms/node_exporter/metadata.yaml @@ -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 diff --git a/rpms/nomad-autoscaler/metadata.yaml b/rpms/nomad-autoscaler/metadata.yaml index 34b6a90..6962ac8 100644 --- a/rpms/nomad-autoscaler/metadata.yaml +++ b/rpms/nomad-autoscaler/metadata.yaml @@ -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 diff --git a/rpms/nzbget/metadata.yaml b/rpms/nzbget/metadata.yaml index 18b4037..9c50dc4 100644 --- a/rpms/nzbget/metadata.yaml +++ b/rpms/nzbget/metadata.yaml @@ -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' diff --git a/rpms/openbao-plugin-secret-consul/metadata.yaml b/rpms/openbao-plugin-secret-consul/metadata.yaml index dac48b4..4c1845e 100644 --- a/rpms/openbao-plugin-secret-consul/metadata.yaml +++ b/rpms/openbao-plugin-secret-consul/metadata.yaml @@ -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 diff --git a/rpms/openbao-plugin-secret-nomad/metadata.yaml b/rpms/openbao-plugin-secret-nomad/metadata.yaml index 835db83..92aed3d 100644 --- a/rpms/openbao-plugin-secret-nomad/metadata.yaml +++ b/rpms/openbao-plugin-secret-nomad/metadata.yaml @@ -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 diff --git a/rpms/openbao-plugins/metadata.yaml b/rpms/openbao-plugins/metadata.yaml index 75365f4..d128055 100644 --- a/rpms/openbao-plugins/metadata.yaml +++ b/rpms/openbao-plugins/metadata.yaml @@ -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 diff --git a/rpms/packer/metadata.yaml b/rpms/packer/metadata.yaml index 8f5df42..6106a0b 100644 --- a/rpms/packer/metadata.yaml +++ b/rpms/packer/metadata.yaml @@ -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 diff --git a/rpms/postgres_exporter/metadata.yaml b/rpms/postgres_exporter/metadata.yaml index 1e417e8..e78d049 100644 --- a/rpms/postgres_exporter/metadata.yaml +++ b/rpms/postgres_exporter/metadata.yaml @@ -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 diff --git a/rpms/ruff/metadata.yaml b/rpms/ruff/metadata.yaml index c0653c1..2b74741 100644 --- a/rpms/ruff/metadata.yaml +++ b/rpms/ruff/metadata.yaml @@ -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 diff --git a/rpms/stalwart-cli/metadata.yaml b/rpms/stalwart-cli/metadata.yaml index 83d9cd6..0941074 100644 --- a/rpms/stalwart-cli/metadata.yaml +++ b/rpms/stalwart-cli/metadata.yaml @@ -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 diff --git a/rpms/stalwart-foundationdb/metadata.yaml b/rpms/stalwart-foundationdb/metadata.yaml index 20d0164..1358daf 100644 --- a/rpms/stalwart-foundationdb/metadata.yaml +++ b/rpms/stalwart-foundationdb/metadata.yaml @@ -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 diff --git a/rpms/stalwart/metadata.yaml b/rpms/stalwart/metadata.yaml index 645783c..932e96c 100644 --- a/rpms/stalwart/metadata.yaml +++ b/rpms/stalwart/metadata.yaml @@ -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 diff --git a/rpms/terraform/metadata.yaml b/rpms/terraform/metadata.yaml index 64f72a3..e169d60 100644 --- a/rpms/terraform/metadata.yaml +++ b/rpms/terraform/metadata.yaml @@ -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 diff --git a/rpms/terragrunt/metadata.yaml b/rpms/terragrunt/metadata.yaml index 4695def..eb849c5 100644 --- a/rpms/terragrunt/metadata.yaml +++ b/rpms/terragrunt/metadata.yaml @@ -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 diff --git a/rpms/tflint/metadata.yaml b/rpms/tflint/metadata.yaml index 48c6107..8d681c4 100644 --- a/rpms/tflint/metadata.yaml +++ b/rpms/tflint/metadata.yaml @@ -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 diff --git a/rpms/uv/metadata.yaml b/rpms/uv/metadata.yaml index a5b49f6..63874ec 100644 --- a/rpms/uv/metadata.yaml +++ b/rpms/uv/metadata.yaml @@ -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 diff --git a/rpms/vals/metadata.yaml b/rpms/vals/metadata.yaml index 87c4cc9..8d77049 100644 --- a/rpms/vals/metadata.yaml +++ b/rpms/vals/metadata.yaml @@ -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 diff --git a/rpms/vault/metadata.yaml b/rpms/vault/metadata.yaml index 75a6014..37ce882 100644 --- a/rpms/vault/metadata.yaml +++ b/rpms/vault/metadata.yaml @@ -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 diff --git a/rpms/victoria-logs/metadata.yaml b/rpms/victoria-logs/metadata.yaml index 1145257..707576c 100644 --- a/rpms/victoria-logs/metadata.yaml +++ b/rpms/victoria-logs/metadata.yaml @@ -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 diff --git a/rpms/vlutils/metadata.yaml b/rpms/vlutils/metadata.yaml index e094227..59a9e6e 100644 --- a/rpms/vlutils/metadata.yaml +++ b/rpms/vlutils/metadata.yaml @@ -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 diff --git a/rpms/vmagent/metadata.yaml b/rpms/vmagent/metadata.yaml index 15ca088..c66ad96 100644 --- a/rpms/vmagent/metadata.yaml +++ b/rpms/vmagent/metadata.yaml @@ -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 diff --git a/rpms/vmalert/metadata.yaml b/rpms/vmalert/metadata.yaml index 4ee39e0..dbec09e 100644 --- a/rpms/vmalert/metadata.yaml +++ b/rpms/vmalert/metadata.yaml @@ -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 diff --git a/rpms/vminsert/metadata.yaml b/rpms/vminsert/metadata.yaml index 998b032..cdefa93 100644 --- a/rpms/vminsert/metadata.yaml +++ b/rpms/vminsert/metadata.yaml @@ -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 diff --git a/rpms/vmselect/metadata.yaml b/rpms/vmselect/metadata.yaml index ed315cb..6bfb8fd 100644 --- a/rpms/vmselect/metadata.yaml +++ b/rpms/vmselect/metadata.yaml @@ -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 diff --git a/rpms/vmstorage/metadata.yaml b/rpms/vmstorage/metadata.yaml index a09c416..5b65d67 100644 --- a/rpms/vmstorage/metadata.yaml +++ b/rpms/vmstorage/metadata.yaml @@ -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 diff --git a/rpms/vmutils/metadata.yaml b/rpms/vmutils/metadata.yaml index ff80163..1a17515 100644 --- a/rpms/vmutils/metadata.yaml +++ b/rpms/vmutils/metadata.yaml @@ -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 diff --git a/tools/build b/tools/build index f663f97..f0df967 100755 --- a/tools/build +++ b/tools/build @@ -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 - + 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)