Commit Graph

15 Commits

Author SHA1 Message Date
unkinben 649373ff73 feat: dist_tag boolean for distro-aware release strings
ci/woodpecker/pr/pre-commit Pipeline was successful
ci/woodpecker/pr/build-fedora44 Pipeline was successful
ci/woodpecker/pr/build-fedora42 Pipeline was successful
ci/woodpecker/pr/build-fedora43 Pipeline was successful
ci/woodpecker/pr/build-almalinux8 Pipeline failed
ci/woodpecker/pr/build-almalinux9 Pipeline failed
Adds a per-package dist_tag: true/false metadata flag (default false).
When enabled the build tool appends the RPM dist tag to the release
at build time so each distro produces a unique version in the Gitea
package registry:

  release: 1  +  almalinux/el9  ->  PACKAGE_RELEASE=1.el9
  release: 1  +  fedora/43      ->  PACKAGE_RELEASE=1.fc43

This ensures Gitea package existence checks don't confuse packages built
for one distro with those built for another (the original bug).

Changes:
- Add effective_release() and get_rpm_dist_tag() helpers
- Revert the broken files-endpoint check from the previous commit;
  dist disambiguation is now handled purely via the release string
- discover_packages and build_single both compute the effective release
  before constructing PackageInfo
- check_package_exists simplified back to a single version-level check
- dist_tag added to METADATA_SCHEMA and PackageMetadata dataclass
- All 72 metadata.yaml files updated with dist_tag: true
2026-05-17 11:07:49 +10:00
unkinben 96d0e25e94 feat: update pipelines (#160)
ci/woodpecker/push/deploy-fedora44 Pipeline failed
ci/woodpecker/push/deploy-fedora43 Pipeline was successful
ci/woodpecker/push/deploy-almalinux9 Pipeline was successful
ci/woodpecker/push/deploy-fedora42 Pipeline was successful
ci/woodpecker/push/deploy-almalinux8 Pipeline was successful
- remove buildah (now in image)
- add fedora42/fedora43/fedora44 pipelines

Reviewed-on: #160
2026-05-16 23:36:13 +10:00
unkinben 083abf54b0 feat: update vault to 2.0.0
ci/woodpecker/pr/build-almalinux9 Pipeline failed
ci/woodpecker/pr/pre-commit Pipeline is running
ci/woodpecker/pr/build-almalinux8 Pipeline failed
2026-05-02 01:48:32 +10:00
unkinben 07a75008a1 fix: precommit fix all
Build / build-8 (pull_request) Successful in 12s
Build / build-9 (pull_request) Successful in 13s
- run pre-commit against all files
- preparation for running pre-commit in ci
2026-03-07 12:28:20 +11:00
unkinben 6d379d99b6 chore: update build job, fixed versions
- changed all releases from 1-el8 and 1-el9 to 1
- updated build job to write files to per-repository directories
2026-01-03 23:24:58 +11:00
unkinben 5cdbe3a6b5 feat: enhance GitHub release tracking with pattern support and version extraction
Build / build-8 (pull_request) Successful in 5m45s
Build / build-9 (pull_request) Successful in 8m54s
- Add github_release_pattern field to support multi-product repositories
- Implement get_github_releases_by_pattern() for filtered release matching
- Add parse_github_version_release() to extract version-release components
- Update openbao plugin packages with release patterns and correct versions
- Configure openbao-plugins meta package for manual versioning
- Fix HashiCorp package GitHub repository references
- Support complex tag formats like "secrets-consul-v0.1.0" and "v7.1.3-1"

This enables automatic updates for packages sharing GitHub repos while
maintaining proper RPM version/release semantics and backward compatibility.
2025-12-30 22:38:23 +11:00
unkinben 182641132a refactor: modernise RPM builder with Python tooling v2
Build / build-8 (pull_request) Successful in 8s
Build / build-9 (pull_request) Successful in 9s
- Migrate from legacy shell-based build system to modern Python tooling
- Update all metadata.yaml files to new schema with per-distro builds
- Standardise build scripts with curl -L, envsubst, and error handling
- Convert nfpm.yaml templates to use environment variable substitution
- Update Dockerfile to accept all package metadata as build arguments
- Modernise Makefile to use new Python build tool commands
- Update CI workflow to use tools/build instead of make
2025-11-30 20:27:05 +11:00
unkinben b3ba980f9f refactor: modernise RPM builder with Python tooling
Build / build-8 (pull_request) Failing after 7s
Build / build-9 (pull_request) Failing after 8s
- Replace Makefile version/release file system with metadata.yaml only
- Add Python build automation (./tools/build) with Gitea API integration
- Add GitHub release updater (./tools/update-gh) for version management
- Centralize Dockerfiles into single parameterized Dockerfile
- Remove 54+ individual package Dockerfiles and version directories
- Update Makefile to use new Python tooling
- Add GITEA_API_TOKEN validation to prevent duplicate builds
- Support both explicit version/release args and metadata.yaml reading
2025-11-30 03:39:58 +11:00
unkinben 989c8e9ea8 feat: add metadata.yaml files for all packages
Build / build-9 (pull_request) Successful in 42s
Build / build-8 (pull_request) Successful in 1m43s
Add simplified metadata structure for all 41 packages containing:
- Package name, version, and release number
- GitHub repository for packages with GitHub releases
- Build configuration for el/8 and el/9 distributions

This metadata enables future automation for version checking and package building across different distributions.
2025-09-29 22:11:03 +10:00
unkinben f125d59935 refactor: replace all wget commands with curl
Standardize download commands across all build scripts:
- HashiCorp packages: wget -O → curl -o
- VictoriaMetrics packages: wget -O → curl -o
- Other packages: wget -O → curl -o, wget → curl -O
- Update dependency lists to use curl instead of wget

This change provides consistency across all packages and uses a single download tool.
2025-09-29 21:59:01 +10:00
unkinben 325b830952 refactor: standardize Dockerfile and build script structure
Standardize all RPM packages to use a consistent build pattern:
- Simple Dockerfiles that copy resources/ and call build.sh
- Move all build logic to resources/build.sh scripts
- Consolidate nfpm.yaml and scripts into resources/ directory
- Update base image to almalinux9-rpmbuilder for consistency

Changes:
- Refactored 37 packages total (simple + complex)
- HashiCorp tools: consul, vault, terraform, terragrunt, packer, nomad, nomad-autoscaler
- Development tools: g10k, etcd, nfpm, ruff, uv, unrar, nzbget, boilerplate
- VictoriaMetrics: vlutils, vmutils, victoria-logs
- Network tools: cni-plugins, consul-cni, unkin-ca-certificates
- Jellyfin suite: jellyfin-web, jellyfin-server, jellyfin-ffmpeg-bin
- System packages: puppet-initial, incus

This standardization improves maintainability and consistency across
the entire RPM build system while preserving all existing functionality.
2025-09-28 22:17:46 +10:00
unkinben 91154d46ad feat: update urls
Build / build-8 (pull_request) Successful in 31s
Build / build-9 (pull_request) Successful in 1m59s
- update docker images to use git.unkin.net
- update path to save rpms to git.unkin.net
2025-07-06 17:20:48 +10:00
unkinben d5e8259a87 chore: update packages
Build / build-8 (pull_request) Successful in 3m16s
Build / build-9 (pull_request) Successful in 3m57s
- gruntwork packages
- cni-plugins
- hashicorp packages
2025-06-09 12:33:32 +10:00
unkinben 80d648ee95 feat: update docker containers
- change to rpmbuilder and actionsdind managed by packer
- update makefile to ignore `resources` folder
2025-01-26 14:49:48 +11:00
unkinben 73131f9324 feat: add vault/1.18.2
Build / build (pull_request) Successful in 1m24s
- add vault rpm to be installed
- this is different from the HCP provided rpm which includes a service/config
2024-12-08 23:46:06 +11:00