Compare commits
8 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| c683858261 | |||
| fbb3471a42 | |||
| 451254447f | |||
| be23a37c2e | |||
| 96d0e25e94 | |||
| a61bcb9d60 | |||
| 17ce4eb2cf | |||
| 24bba58dfd |
@@ -31,6 +31,23 @@ repos:
|
|||||||
"-s",
|
"-s",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
- repo: local
|
||||||
|
hooks:
|
||||||
|
- id: pytest
|
||||||
|
name: Run unit tests
|
||||||
|
entry: make test
|
||||||
|
language: system
|
||||||
|
types: [python]
|
||||||
|
pass_filenames: false
|
||||||
|
|
||||||
|
- repo: https://github.com/python-jsonschema/check-jsonschema
|
||||||
|
rev: 0.37.2
|
||||||
|
hooks:
|
||||||
|
- id: check-jsonschema
|
||||||
|
name: Validate RPM package metadata
|
||||||
|
files: ^rpms/[^/]+/metadata\.yaml$
|
||||||
|
args: [--schemafile, schema/metadata.json]
|
||||||
|
|
||||||
- repo: https://github.com/astral-sh/ruff-pre-commit
|
- repo: https://github.com/astral-sh/ruff-pre-commit
|
||||||
rev: v0.14.7
|
rev: v0.14.7
|
||||||
hooks:
|
hooks:
|
||||||
|
|||||||
@@ -7,12 +7,18 @@ steps:
|
|||||||
commands:
|
commands:
|
||||||
- mkdir -p /woodpecker/rpms
|
- mkdir -p /woodpecker/rpms
|
||||||
- ln -s /woodpecker/rpms /workspace
|
- ln -s /woodpecker/rpms /workspace
|
||||||
- dnf install buildah -y
|
|
||||||
- ./tools/build build-all --distro almalinux/el8 --buildah
|
- ./tools/build build-all --distro almalinux/el8 --buildah
|
||||||
privileged: true
|
privileged: true
|
||||||
backend_options:
|
backend_options:
|
||||||
kubernetes:
|
kubernetes:
|
||||||
serviceAccountName: default
|
serviceAccountName: default
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
memory: 512Mi
|
||||||
|
cpu: 1
|
||||||
|
limits:
|
||||||
|
memory: 2Gi
|
||||||
|
cpu: 2
|
||||||
|
|
||||||
- name: show rpms
|
- name: show rpms
|
||||||
image: git.unkin.net/unkin/almalinux8-base:latest
|
image: git.unkin.net/unkin/almalinux8-base:latest
|
||||||
|
|||||||
@@ -7,12 +7,18 @@ steps:
|
|||||||
commands:
|
commands:
|
||||||
- mkdir -p /woodpecker/rpms
|
- mkdir -p /woodpecker/rpms
|
||||||
- ln -s /woodpecker/rpms /workspace
|
- ln -s /woodpecker/rpms /workspace
|
||||||
- dnf install buildah -y
|
|
||||||
- ./tools/build build-all --distro almalinux/el9 --buildah
|
- ./tools/build build-all --distro almalinux/el9 --buildah
|
||||||
privileged: true
|
privileged: true
|
||||||
backend_options:
|
backend_options:
|
||||||
kubernetes:
|
kubernetes:
|
||||||
serviceAccountName: default
|
serviceAccountName: default
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
memory: 512Mi
|
||||||
|
cpu: 1
|
||||||
|
limits:
|
||||||
|
memory: 2Gi
|
||||||
|
cpu: 2
|
||||||
|
|
||||||
- name: show rpms
|
- name: show rpms
|
||||||
image: git.unkin.net/unkin/almalinux9-base:latest
|
image: git.unkin.net/unkin/almalinux9-base:latest
|
||||||
|
|||||||
@@ -0,0 +1,26 @@
|
|||||||
|
when:
|
||||||
|
- event: pull_request
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: build rpms
|
||||||
|
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
|
||||||
|
commands:
|
||||||
|
- mkdir -p /woodpecker/rpms
|
||||||
|
- ln -s /woodpecker/rpms /workspace
|
||||||
|
- ./tools/build build-all --distro fedora/42 --buildah
|
||||||
|
privileged: true
|
||||||
|
backend_options:
|
||||||
|
kubernetes:
|
||||||
|
serviceAccountName: default
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
memory: 512Mi
|
||||||
|
cpu: 1
|
||||||
|
limits:
|
||||||
|
memory: 2Gi
|
||||||
|
cpu: 2
|
||||||
|
|
||||||
|
- name: show rpms
|
||||||
|
image: git.unkin.net/unkin/fedora42-base:latest
|
||||||
|
commands:
|
||||||
|
- find /woodpecker/src/git.unkin.net/unkin/rpmbuilder/ -type f -name "*.rpm"
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
when:
|
||||||
|
- event: pull_request
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: build rpms
|
||||||
|
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
|
||||||
|
commands:
|
||||||
|
- mkdir -p /woodpecker/rpms
|
||||||
|
- ln -s /woodpecker/rpms /workspace
|
||||||
|
- ./tools/build build-all --distro fedora/43 --buildah
|
||||||
|
privileged: true
|
||||||
|
backend_options:
|
||||||
|
kubernetes:
|
||||||
|
serviceAccountName: default
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
memory: 512Mi
|
||||||
|
cpu: 1
|
||||||
|
limits:
|
||||||
|
memory: 2Gi
|
||||||
|
cpu: 2
|
||||||
|
|
||||||
|
- name: show rpms
|
||||||
|
image: git.unkin.net/unkin/fedora43-base:latest
|
||||||
|
commands:
|
||||||
|
- find /woodpecker/src/git.unkin.net/unkin/rpmbuilder/ -type f -name "*.rpm"
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
when:
|
||||||
|
- event: pull_request
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: build rpms
|
||||||
|
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
|
||||||
|
commands:
|
||||||
|
- mkdir -p /woodpecker/rpms
|
||||||
|
- ln -s /woodpecker/rpms /workspace
|
||||||
|
- ./tools/build build-all --distro fedora/44 --buildah
|
||||||
|
privileged: true
|
||||||
|
backend_options:
|
||||||
|
kubernetes:
|
||||||
|
serviceAccountName: default
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
memory: 512Mi
|
||||||
|
cpu: 1
|
||||||
|
limits:
|
||||||
|
memory: 2Gi
|
||||||
|
cpu: 2
|
||||||
|
|
||||||
|
- name: show rpms
|
||||||
|
image: git.unkin.net/unkin/fedora44-base:latest
|
||||||
|
commands:
|
||||||
|
- find /woodpecker/src/git.unkin.net/unkin/rpmbuilder/ -type f -name "*.rpm"
|
||||||
@@ -8,12 +8,18 @@ steps:
|
|||||||
commands:
|
commands:
|
||||||
- mkdir -p /woodpecker/rpms
|
- mkdir -p /woodpecker/rpms
|
||||||
- ln -s /woodpecker/rpms /workspace
|
- ln -s /woodpecker/rpms /workspace
|
||||||
- dnf install buildah -y
|
|
||||||
- ./tools/build build-all --distro almalinux/el8 --buildah
|
- ./tools/build build-all --distro almalinux/el8 --buildah
|
||||||
privileged: true
|
privileged: true
|
||||||
backend_options:
|
backend_options:
|
||||||
kubernetes:
|
kubernetes:
|
||||||
serviceAccountName: default
|
serviceAccountName: default
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
memory: 512Mi
|
||||||
|
cpu: 1
|
||||||
|
limits:
|
||||||
|
memory: 2Gi
|
||||||
|
cpu: 2
|
||||||
|
|
||||||
- name: show-rpms
|
- name: show-rpms
|
||||||
image: git.unkin.net/unkin/almalinux9-base:latest
|
image: git.unkin.net/unkin/almalinux9-base:latest
|
||||||
@@ -34,4 +40,11 @@ steps:
|
|||||||
backend_options:
|
backend_options:
|
||||||
kubernetes:
|
kubernetes:
|
||||||
serviceAccountName: default
|
serviceAccountName: default
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
memory: 128Mi
|
||||||
|
cpu: 100m
|
||||||
|
limits:
|
||||||
|
memory: 512Mi
|
||||||
|
cpu: 500m
|
||||||
depends_on: [build-rpms, show-rpms]
|
depends_on: [build-rpms, show-rpms]
|
||||||
|
|||||||
@@ -8,12 +8,18 @@ steps:
|
|||||||
commands:
|
commands:
|
||||||
- mkdir -p /woodpecker/rpms
|
- mkdir -p /woodpecker/rpms
|
||||||
- ln -s /woodpecker/rpms /workspace
|
- ln -s /woodpecker/rpms /workspace
|
||||||
- dnf install buildah -y
|
|
||||||
- ./tools/build build-all --distro almalinux/el9 --buildah
|
- ./tools/build build-all --distro almalinux/el9 --buildah
|
||||||
privileged: true
|
privileged: true
|
||||||
backend_options:
|
backend_options:
|
||||||
kubernetes:
|
kubernetes:
|
||||||
serviceAccountName: default
|
serviceAccountName: default
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
memory: 512Mi
|
||||||
|
cpu: 1
|
||||||
|
limits:
|
||||||
|
memory: 2Gi
|
||||||
|
cpu: 2
|
||||||
|
|
||||||
- name: show-rpms
|
- name: show-rpms
|
||||||
image: git.unkin.net/unkin/almalinux9-base:latest
|
image: git.unkin.net/unkin/almalinux9-base:latest
|
||||||
@@ -34,4 +40,11 @@ steps:
|
|||||||
backend_options:
|
backend_options:
|
||||||
kubernetes:
|
kubernetes:
|
||||||
serviceAccountName: default
|
serviceAccountName: default
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
memory: 128Mi
|
||||||
|
cpu: 100m
|
||||||
|
limits:
|
||||||
|
memory: 512Mi
|
||||||
|
cpu: 500m
|
||||||
depends_on: [build-rpms, show-rpms]
|
depends_on: [build-rpms, show-rpms]
|
||||||
|
|||||||
@@ -0,0 +1,50 @@
|
|||||||
|
when:
|
||||||
|
- event: push
|
||||||
|
branch: master
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: build-rpms
|
||||||
|
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
|
||||||
|
commands:
|
||||||
|
- mkdir -p /woodpecker/rpms
|
||||||
|
- ln -s /woodpecker/rpms /workspace
|
||||||
|
- ./tools/build build-all --distro fedora/42 --buildah
|
||||||
|
privileged: true
|
||||||
|
backend_options:
|
||||||
|
kubernetes:
|
||||||
|
serviceAccountName: default
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
memory: 512Mi
|
||||||
|
cpu: 1
|
||||||
|
limits:
|
||||||
|
memory: 2Gi
|
||||||
|
cpu: 2
|
||||||
|
|
||||||
|
- name: show-rpms
|
||||||
|
image: git.unkin.net/unkin/fedora42-rpmbuilder:latest
|
||||||
|
commands:
|
||||||
|
- find /woodpecker/src/git.unkin.net/unkin/rpmbuilder/ -type f -name "*.rpm"
|
||||||
|
depends_on: [build-rpms]
|
||||||
|
|
||||||
|
- name: deploy-rpms
|
||||||
|
image: git.unkin.net/unkin/fedora42-rpmbuilder:latest
|
||||||
|
commands:
|
||||||
|
- |
|
||||||
|
for rpm in $(find /woodpecker/src/git.unkin.net/unkin/rpmbuilder/ -type f -name "*.rpm"); do
|
||||||
|
curl --user droneci:$${DRONECI_PASSWORD} --upload-file $rpm https://git.unkin.net/api/packages/unkin/rpm/fedora/42/upload
|
||||||
|
done
|
||||||
|
environment:
|
||||||
|
DRONECI_PASSWORD:
|
||||||
|
from_secret: DRONECI_PASSWORD
|
||||||
|
backend_options:
|
||||||
|
kubernetes:
|
||||||
|
serviceAccountName: default
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
memory: 128Mi
|
||||||
|
cpu: 100m
|
||||||
|
limits:
|
||||||
|
memory: 512Mi
|
||||||
|
cpu: 500m
|
||||||
|
depends_on: [build-rpms, show-rpms]
|
||||||
@@ -0,0 +1,50 @@
|
|||||||
|
when:
|
||||||
|
- event: push
|
||||||
|
branch: master
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: build-rpms
|
||||||
|
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
|
||||||
|
commands:
|
||||||
|
- mkdir -p /woodpecker/rpms
|
||||||
|
- ln -s /woodpecker/rpms /workspace
|
||||||
|
- ./tools/build build-all --distro fedora/43 --buildah
|
||||||
|
privileged: true
|
||||||
|
backend_options:
|
||||||
|
kubernetes:
|
||||||
|
serviceAccountName: default
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
memory: 512Mi
|
||||||
|
cpu: 1
|
||||||
|
limits:
|
||||||
|
memory: 2Gi
|
||||||
|
cpu: 2
|
||||||
|
|
||||||
|
- name: show-rpms
|
||||||
|
image: git.unkin.net/unkin/fedora43-rpmbuilder:latest
|
||||||
|
commands:
|
||||||
|
- find /woodpecker/src/git.unkin.net/unkin/rpmbuilder/ -type f -name "*.rpm"
|
||||||
|
depends_on: [build-rpms]
|
||||||
|
|
||||||
|
- name: deploy-rpms
|
||||||
|
image: git.unkin.net/unkin/fedora43-rpmbuilder:latest
|
||||||
|
commands:
|
||||||
|
- |
|
||||||
|
for rpm in $(find /woodpecker/src/git.unkin.net/unkin/rpmbuilder/ -type f -name "*.rpm"); do
|
||||||
|
curl --user droneci:$${DRONECI_PASSWORD} --upload-file $rpm https://git.unkin.net/api/packages/unkin/rpm/fedora/43/upload
|
||||||
|
done
|
||||||
|
environment:
|
||||||
|
DRONECI_PASSWORD:
|
||||||
|
from_secret: DRONECI_PASSWORD
|
||||||
|
backend_options:
|
||||||
|
kubernetes:
|
||||||
|
serviceAccountName: default
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
memory: 128Mi
|
||||||
|
cpu: 100m
|
||||||
|
limits:
|
||||||
|
memory: 512Mi
|
||||||
|
cpu: 500m
|
||||||
|
depends_on: [build-rpms, show-rpms]
|
||||||
@@ -0,0 +1,50 @@
|
|||||||
|
when:
|
||||||
|
- event: push
|
||||||
|
branch: master
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: build-rpms
|
||||||
|
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
|
||||||
|
commands:
|
||||||
|
- mkdir -p /woodpecker/rpms
|
||||||
|
- ln -s /woodpecker/rpms /workspace
|
||||||
|
- ./tools/build build-all --distro fedora/44 --buildah
|
||||||
|
privileged: true
|
||||||
|
backend_options:
|
||||||
|
kubernetes:
|
||||||
|
serviceAccountName: default
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
memory: 512Mi
|
||||||
|
cpu: 1
|
||||||
|
limits:
|
||||||
|
memory: 2Gi
|
||||||
|
cpu: 2
|
||||||
|
|
||||||
|
- name: show-rpms
|
||||||
|
image: git.unkin.net/unkin/fedora44-rpmbuilder:latest
|
||||||
|
commands:
|
||||||
|
- find /woodpecker/src/git.unkin.net/unkin/rpmbuilder/ -type f -name "*.rpm"
|
||||||
|
depends_on: [build-rpms]
|
||||||
|
|
||||||
|
- name: deploy-rpms
|
||||||
|
image: git.unkin.net/unkin/fedora44-rpmbuilder:latest
|
||||||
|
commands:
|
||||||
|
- |
|
||||||
|
for rpm in $(find /woodpecker/src/git.unkin.net/unkin/rpmbuilder/ -type f -name "*.rpm"); do
|
||||||
|
curl --user droneci:$${DRONECI_PASSWORD} --upload-file $rpm https://git.unkin.net/api/packages/unkin/rpm/fedora/44/upload
|
||||||
|
done
|
||||||
|
environment:
|
||||||
|
DRONECI_PASSWORD:
|
||||||
|
from_secret: DRONECI_PASSWORD
|
||||||
|
backend_options:
|
||||||
|
kubernetes:
|
||||||
|
serviceAccountName: default
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
memory: 128Mi
|
||||||
|
cpu: 100m
|
||||||
|
limits:
|
||||||
|
memory: 512Mi
|
||||||
|
cpu: 500m
|
||||||
|
depends_on: [build-rpms, show-rpms]
|
||||||
@@ -11,7 +11,7 @@ DISTRO ?= almalinux/el9
|
|||||||
PACKAGES := $(shell find $(ROOT_DIR)/rpms -mindepth 1 -maxdepth 1 -type d -exec test -f {}/metadata.yaml \; -print | xargs -n1 basename | sort)
|
PACKAGES := $(shell find $(ROOT_DIR)/rpms -mindepth 1 -maxdepth 1 -type d -exec test -f {}/metadata.yaml \; -print | xargs -n1 basename | sort)
|
||||||
|
|
||||||
# Default target to build all packages
|
# Default target to build all packages
|
||||||
.PHONY: all list build clean
|
.PHONY: all list build clean test
|
||||||
all: build-all
|
all: build-all
|
||||||
|
|
||||||
# List all available packages
|
# List all available packages
|
||||||
@@ -47,6 +47,10 @@ dry-run:
|
|||||||
@echo "Dry run - showing what would be built for distro $(DISTRO):"
|
@echo "Dry run - showing what would be built for distro $(DISTRO):"
|
||||||
$(BUILD_TOOL) build-all --distro $(DISTRO) --dry-run
|
$(BUILD_TOOL) build-all --distro $(DISTRO) --dry-run
|
||||||
|
|
||||||
|
# Run unit tests
|
||||||
|
test:
|
||||||
|
@uv run --group dev pytest tests/ -q; rc=$$?; [ $$rc -eq 5 ] && exit 0 || exit $$rc
|
||||||
|
|
||||||
# Clean target
|
# Clean target
|
||||||
clean:
|
clean:
|
||||||
@echo "Cleaning build artifacts..."
|
@echo "Cleaning build artifacts..."
|
||||||
|
|||||||
@@ -0,0 +1,11 @@
|
|||||||
|
[project]
|
||||||
|
name = "rpmbuilder"
|
||||||
|
version = "0.1.0"
|
||||||
|
requires-python = ">=3.11"
|
||||||
|
|
||||||
|
[dependency-groups]
|
||||||
|
dev = [
|
||||||
|
"pytest>=8",
|
||||||
|
"jsonschema>=4",
|
||||||
|
"pyyaml>=6",
|
||||||
|
]
|
||||||
@@ -1,19 +1,18 @@
|
|||||||
arch: amd64
|
name: claude-code
|
||||||
builds:
|
|
||||||
- image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
|
|
||||||
release: 1
|
|
||||||
repository:
|
|
||||||
- almalinux/el8
|
|
||||||
version: 2.1.126
|
|
||||||
- image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
|
|
||||||
release: 1
|
|
||||||
repository:
|
|
||||||
- almalinux/el9
|
|
||||||
version: 2.1.126
|
|
||||||
claude_ai: true
|
|
||||||
description: Claude Code - Anthropic's agentic AI coding tool
|
description: Claude Code - Anthropic's agentic AI coding tool
|
||||||
|
arch: amd64
|
||||||
|
platform: linux
|
||||||
|
maintainer: Anthropic
|
||||||
homepage: https://claude.ai/code
|
homepage: https://claude.ai/code
|
||||||
license: Proprietary
|
license: Proprietary
|
||||||
maintainer: Anthropic
|
builds:
|
||||||
name: claude-code
|
- repository:
|
||||||
platform: linux
|
- almalinux/el8
|
||||||
|
image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
|
||||||
|
release: 1
|
||||||
|
version: 2.1.126
|
||||||
|
- repository:
|
||||||
|
- almalinux/el9
|
||||||
|
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
|
||||||
|
release: 1
|
||||||
|
version: 2.1.126
|
||||||
|
|||||||
@@ -18,3 +18,10 @@ builds:
|
|||||||
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
|
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
|
||||||
release: 1
|
release: 1
|
||||||
version: 1.22.7
|
version: 1.22.7
|
||||||
|
- repository:
|
||||||
|
- fedora/42
|
||||||
|
- fedora/43
|
||||||
|
- fedora/44
|
||||||
|
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
|
||||||
|
release: 1
|
||||||
|
version: 1.22.7
|
||||||
|
|||||||
@@ -11,4 +11,4 @@ builds:
|
|||||||
- almalinux/el9
|
- almalinux/el9
|
||||||
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
|
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
|
||||||
release: 1
|
release: 1
|
||||||
version: 6.20.0
|
version: 6.23.0
|
||||||
|
|||||||
@@ -0,0 +1,20 @@
|
|||||||
|
---
|
||||||
|
name: kubecolor
|
||||||
|
github: kubecolor/kubecolor
|
||||||
|
description: Colorize your kubectl output
|
||||||
|
arch: amd64
|
||||||
|
platform: linux
|
||||||
|
maintainer: kubecolor
|
||||||
|
homepage: https://github.com/kubecolor/kubecolor
|
||||||
|
license: Apache-2.0
|
||||||
|
builds:
|
||||||
|
- repository:
|
||||||
|
- almalinux/el8
|
||||||
|
image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
|
||||||
|
release: 1
|
||||||
|
version: 0.6.0
|
||||||
|
- repository:
|
||||||
|
- almalinux/el9
|
||||||
|
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
|
||||||
|
release: 1
|
||||||
|
version: 0.6.0
|
||||||
Executable
+10
@@ -0,0 +1,10 @@
|
|||||||
|
#!/usr/bin/bash
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
wget -O /app/kubecolor_${PACKAGE_VERSION}_linux_amd64.tar.gz https://artifactapi.k8s.syd1.au.unkin.net/api/v1/remote/github/kubecolor/kubecolor/releases/download/v${PACKAGE_VERSION}/kubecolor_${PACKAGE_VERSION}_linux_amd64.tar.gz
|
||||||
|
tar xf /app/kubecolor_${PACKAGE_VERSION}_linux_amd64.tar.gz -C /app/ kubecolor
|
||||||
|
|
||||||
|
envsubst < /app/resources/nfpm.yaml > /app/nfpm.yaml
|
||||||
|
|
||||||
|
nfpm pkg --config /app/nfpm.yaml --target /app/dist --packager rpm
|
||||||
@@ -0,0 +1,30 @@
|
|||||||
|
# nfpm.yaml
|
||||||
|
|
||||||
|
name: ${PACKAGE_NAME}
|
||||||
|
version: ${PACKAGE_VERSION}
|
||||||
|
release: ${PACKAGE_RELEASE}
|
||||||
|
arch: ${PACKAGE_ARCH}
|
||||||
|
platform: ${PACKAGE_PLATFORM}
|
||||||
|
section: default
|
||||||
|
priority: extra
|
||||||
|
description: "${PACKAGE_DESCRIPTION}"
|
||||||
|
|
||||||
|
maintainer: ${PACKAGE_MAINTAINER}
|
||||||
|
homepage: ${PACKAGE_HOMEPAGE}
|
||||||
|
license: ${PACKAGE_LICENSE}
|
||||||
|
|
||||||
|
disable_globbing: false
|
||||||
|
|
||||||
|
replaces:
|
||||||
|
- kubecolor
|
||||||
|
|
||||||
|
provides:
|
||||||
|
- kubecolor
|
||||||
|
|
||||||
|
contents:
|
||||||
|
- src: /app/kubecolor
|
||||||
|
dst: /usr/bin/kubecolor
|
||||||
|
file_info:
|
||||||
|
mode: 0755
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
@@ -18,3 +18,10 @@ builds:
|
|||||||
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
|
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
|
||||||
release: 1
|
release: 1
|
||||||
version: 2.46.3
|
version: 2.46.3
|
||||||
|
- repository:
|
||||||
|
- fedora/42
|
||||||
|
- fedora/43
|
||||||
|
- fedora/44
|
||||||
|
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
|
||||||
|
release: 1
|
||||||
|
version: 2.46.3
|
||||||
|
|||||||
@@ -18,3 +18,10 @@ builds:
|
|||||||
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
|
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
|
||||||
release: 1
|
release: 1
|
||||||
version: 0.14.0
|
version: 0.14.0
|
||||||
|
- repository:
|
||||||
|
- fedora/42
|
||||||
|
- fedora/43
|
||||||
|
- fedora/44
|
||||||
|
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
|
||||||
|
release: 1
|
||||||
|
version: 0.14.0
|
||||||
|
|||||||
@@ -3,11 +3,20 @@ arch: amd64
|
|||||||
builds:
|
builds:
|
||||||
- image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
|
- image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
|
||||||
release: '1'
|
release: '1'
|
||||||
repository: [almalinux/el8]
|
repository:
|
||||||
|
- almalinux/el8
|
||||||
version: 2025.07.13
|
version: 2025.07.13
|
||||||
- image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
|
- image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
|
||||||
release: '1'
|
release: '1'
|
||||||
repository: [almalinux/el9]
|
repository:
|
||||||
|
- almalinux/el9
|
||||||
|
version: 2025.07.13
|
||||||
|
- image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
|
||||||
|
release: '1'
|
||||||
|
repository:
|
||||||
|
- fedora/42
|
||||||
|
- fedora/43
|
||||||
|
- fedora/44
|
||||||
version: 2025.07.13
|
version: 2025.07.13
|
||||||
description: ca-certificates for the unkin site
|
description: ca-certificates for the unkin site
|
||||||
github: unknown/unkin-ca-certificates
|
github: unknown/unkin-ca-certificates
|
||||||
|
|||||||
@@ -11,9 +11,16 @@ builds:
|
|||||||
- almalinux/el8
|
- almalinux/el8
|
||||||
image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
|
image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
|
||||||
release: 1
|
release: 1
|
||||||
version: 0.11.8
|
version: 0.11.14
|
||||||
- repository:
|
- repository:
|
||||||
- almalinux/el9
|
- almalinux/el9
|
||||||
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
|
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
|
||||||
release: 1
|
release: 1
|
||||||
version: 0.11.8
|
version: 0.11.14
|
||||||
|
- repository:
|
||||||
|
- fedora/42
|
||||||
|
- fedora/43
|
||||||
|
- fedora/44
|
||||||
|
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
|
||||||
|
release: 1
|
||||||
|
version: 0.11.14
|
||||||
|
|||||||
@@ -20,3 +20,10 @@ builds:
|
|||||||
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
|
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
|
||||||
release: 1
|
release: 1
|
||||||
version: 2.0.0
|
version: 2.0.0
|
||||||
|
- repository:
|
||||||
|
- fedora/42
|
||||||
|
- fedora/43
|
||||||
|
- fedora/44
|
||||||
|
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
|
||||||
|
release: 1
|
||||||
|
version: 2.0.0
|
||||||
|
|||||||
+11
-2
@@ -3,11 +3,20 @@ arch: amd64
|
|||||||
builds:
|
builds:
|
||||||
- image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
|
- image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
|
||||||
release: '1'
|
release: '1'
|
||||||
repository: [almalinux/el8]
|
repository:
|
||||||
|
- almalinux/el8
|
||||||
version: 0.25.3
|
version: 0.25.3
|
||||||
- image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
|
- image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
|
||||||
release: '1'
|
release: '1'
|
||||||
repository: [almalinux/el9]
|
repository:
|
||||||
|
- almalinux/el9
|
||||||
|
version: 0.25.3
|
||||||
|
- repository:
|
||||||
|
- fedora/42
|
||||||
|
- fedora/43
|
||||||
|
- fedora/44
|
||||||
|
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
|
||||||
|
release: 1
|
||||||
version: 0.25.3
|
version: 0.25.3
|
||||||
description: A friendly and fast tool for sending HTTP requests (HTTPie reimplementation in Rust)
|
description: A friendly and fast tool for sending HTTP requests (HTTPie reimplementation in Rust)
|
||||||
github: ducaale/xh
|
github: ducaale/xh
|
||||||
|
|||||||
@@ -18,3 +18,10 @@ builds:
|
|||||||
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
|
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
|
||||||
release: 1
|
release: 1
|
||||||
version: 4.53.2
|
version: 4.53.2
|
||||||
|
- repository:
|
||||||
|
- fedora/42
|
||||||
|
- fedora/43
|
||||||
|
- fedora/44
|
||||||
|
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
|
||||||
|
release: 1
|
||||||
|
version: 4.53.2
|
||||||
|
|||||||
@@ -0,0 +1,111 @@
|
|||||||
|
{
|
||||||
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
||||||
|
"additionalProperties": false,
|
||||||
|
"description": "Schema for rpms/*/metadata.yaml files",
|
||||||
|
"properties": {
|
||||||
|
"arch": {
|
||||||
|
"enum": [
|
||||||
|
"amd64",
|
||||||
|
"arm64",
|
||||||
|
"x86_64"
|
||||||
|
],
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"builds": {
|
||||||
|
"items": {
|
||||||
|
"additionalProperties": false,
|
||||||
|
"properties": {
|
||||||
|
"image": {
|
||||||
|
"minLength": 1,
|
||||||
|
"pattern": "^[a-zA-Z0-9][a-zA-Z0-9\\-_.:/@]+$",
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"release": {
|
||||||
|
"oneOf": [
|
||||||
|
{
|
||||||
|
"minLength": 1,
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "number"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"repository": {
|
||||||
|
"items": {
|
||||||
|
"enum": [
|
||||||
|
"almalinux/el8",
|
||||||
|
"almalinux/el9",
|
||||||
|
"fedora/42",
|
||||||
|
"fedora/43",
|
||||||
|
"fedora/44"
|
||||||
|
],
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"minItems": 1,
|
||||||
|
"type": "array"
|
||||||
|
},
|
||||||
|
"version": {
|
||||||
|
"minLength": 1,
|
||||||
|
"pattern": "^[0-9]+(\\.[0-9]+)*(-[a-zA-Z0-9]+)*$",
|
||||||
|
"type": "string"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"required": [
|
||||||
|
"repository",
|
||||||
|
"image",
|
||||||
|
"release",
|
||||||
|
"version"
|
||||||
|
],
|
||||||
|
"type": "object"
|
||||||
|
},
|
||||||
|
"minItems": 1,
|
||||||
|
"type": "array"
|
||||||
|
},
|
||||||
|
"description": {
|
||||||
|
"minLength": 1,
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"dist_tag": {
|
||||||
|
"type": "boolean"
|
||||||
|
},
|
||||||
|
"github": {
|
||||||
|
"minLength": 1,
|
||||||
|
"pattern": "^[a-zA-Z0-9\\-_]+/[a-zA-Z0-9\\-_.]+$",
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"github_release_pattern": {
|
||||||
|
"minLength": 1,
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"homepage": {
|
||||||
|
"minLength": 1,
|
||||||
|
"pattern": "^https?://.+",
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"license": {
|
||||||
|
"minLength": 1,
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"maintainer": {
|
||||||
|
"minLength": 1,
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"name": {
|
||||||
|
"minLength": 1,
|
||||||
|
"pattern": "^[a-zA-Z0-9][a-zA-Z0-9\\-_.]*$",
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"platform": {
|
||||||
|
"minLength": 1,
|
||||||
|
"type": "string"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"required": [
|
||||||
|
"name",
|
||||||
|
"description",
|
||||||
|
"builds"
|
||||||
|
],
|
||||||
|
"title": "RPM Package Metadata",
|
||||||
|
"type": "object"
|
||||||
|
}
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
# Tests for tools/build and tools/update-gh.
|
||||||
|
# See https://git.unkin.net/unkin/rpmbuilder/issues/162
|
||||||
@@ -0,0 +1,36 @@
|
|||||||
|
"""Validate every rpms/*/metadata.yaml against schema/metadata.json."""
|
||||||
|
|
||||||
|
import json
|
||||||
|
from pathlib import Path
|
||||||
|
|
||||||
|
import jsonschema
|
||||||
|
import pytest
|
||||||
|
import yaml
|
||||||
|
|
||||||
|
REPO_ROOT = Path(__file__).parent.parent
|
||||||
|
SCHEMA_FILE = REPO_ROOT / "schema" / "metadata.json"
|
||||||
|
RPMS_DIR = REPO_ROOT / "rpms"
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.fixture(scope="session")
|
||||||
|
def schema():
|
||||||
|
with open(SCHEMA_FILE) as f:
|
||||||
|
return json.load(f)
|
||||||
|
|
||||||
|
|
||||||
|
def metadata_files():
|
||||||
|
return sorted(RPMS_DIR.glob("*/metadata.yaml"))
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.parametrize("metadata_file", metadata_files(), ids=lambda p: p.parent.name)
|
||||||
|
def test_metadata_valid(metadata_file, schema):
|
||||||
|
with open(metadata_file) as f:
|
||||||
|
data = yaml.safe_load(f)
|
||||||
|
|
||||||
|
validator = jsonschema.Draft7Validator(schema)
|
||||||
|
errors = sorted(validator.iter_errors(data), key=str)
|
||||||
|
|
||||||
|
assert not errors, "\n".join(
|
||||||
|
f" {'.'.join(str(p) for p in e.absolute_path) or '(root)'}: {e.message}"
|
||||||
|
for e in errors
|
||||||
|
)
|
||||||
Reference in New Issue
Block a user