1 Commits

Author SHA1 Message Date
unkinben 737e70533b feat: migrate to woodpeckerci
Build / build-8 (pull_request) Successful in 11s
Build / build-9 (pull_request) Successful in 12s
ci/woodpecker/pr/build-almalinux8 Pipeline failed
ci/woodpecker/pr/build-almalinux9 Pipeline failed
ci/woodpecker/pr/pre-commit Pipeline was successful
- update build tool for kubernetes auth
- update build tool to build packages without docker
- add woodpecker pre-commit and build jobs
2026-03-07 12:30:28 +11:00
101 changed files with 268 additions and 1409 deletions
+59
View File
@@ -0,0 +1,59 @@
name: Build
on:
pull_request:
workflow_call:
workflow_dispatch:
jobs:
build-8:
runs-on: almalinux-8
container:
image: git.unkin.net/unkin/almalinux8-actionsdind:latest
options: "--privileged --volume /etc/pki/tls/vault:/etc/pki/tls/vault:ro"
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Build Packages
env:
VAULT_ROLE_ID: ${{ secrets.RPMBUILDER_VAULT_ROLEID }}
run: |
./tools/build build-all --distro almalinux/el8
- name: Show RPMs
run: |
find /workspace -type f -name "*.rpm"
- name: Upload Artifacts
uses: actions/upload-artifact@v3
with:
name: rpms-8
path: /workspace/unkin/rpmbuilder/dist/*/*/*.rpm
build-9:
runs-on: almalinux-8
container:
image: git.unkin.net/unkin/almalinux9-actionsdind:latest
options: "--privileged --volume /etc/pki/tls/vault:/etc/pki/tls/vault:ro"
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Build Packages
env:
VAULT_ROLE_ID: ${{ secrets.RPMBUILDER_VAULT_ROLEID }}
run: |
./tools/build build-all --distro almalinux/el9
- name: Show RPMs
run: |
find /workspace -type f -name "*.rpm"
- name: Upload Artifacts
uses: actions/upload-artifact@v3
with:
name: rpms-9
path: /workspace/unkin/rpmbuilder/dist/*/*/*.rpm
+66
View File
@@ -0,0 +1,66 @@
name: Deploy
on:
push:
branches:
- master
workflow_dispatch:
jobs:
deploy-8:
runs-on: almalinux-8
container:
image: git.unkin.net/unkin/almalinux8-actionsdind:latest
options: --privileged
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Download Artifacts
run: |
mkdir -p /workspace/unkin/rpmbuilder/dist/almalinux/el8
export PREVIOUS_RUN_ID=$((GITHUB_RUN_NUMBER - 1))
curl -L -o /workspace/rpms.zip "https://git.unkin.net/${GITHUB_REPOSITORY}/actions/runs/${PREVIOUS_RUN_ID}/artifacts/rpms-8"
unzip /workspace/rpms.zip -d /workspace/unkin/rpmbuilder/dist/almalinux/el8
- name: Show RPMs
run: |
find /workspace -type f -name "*.rpm"
- name: Upload RPMs to Gitea
env:
DRONECI_PASSWORD: ${{ secrets.DRONECI_PASSWORD }}
run: |
for rpm in $(find /workspace/unkin/rpmbuilder/dist/almalinux/el8 -type f -name "*.rpm"); do
curl --user droneci:${{ secrets.DRONECI_PASSWORD }} --upload-file $rpm https://git.unkin.net/api/packages/unkin/rpm/almalinux/el8/upload
done
deploy-9:
runs-on: almalinux-8
container:
image: git.unkin.net/unkin/almalinux9-actionsdind:latest
options: --privileged
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Download Artifacts
run: |
mkdir -p /workspace/unkin/rpmbuilder/dist/almalinux/el9
export PREVIOUS_RUN_ID=$((GITHUB_RUN_NUMBER - 1))
curl -L -o /workspace/rpms.zip "https://git.unkin.net/${GITHUB_REPOSITORY}/actions/runs/${PREVIOUS_RUN_ID}/artifacts/rpms-9"
unzip /workspace/rpms.zip -d /workspace/unkin/rpmbuilder/dist/almalinux/el9
- name: Show RPMs
run: |
find /workspace -type f -name "*.rpm"
- name: Upload RPMs to Gitea
env:
DRONECI_PASSWORD: ${{ secrets.DRONECI_PASSWORD }}
run: |
for rpm in $(find /workspace/unkin/rpmbuilder/dist/almalinux/el9 -type f -name "*.rpm"); do
curl --user droneci:${{ secrets.DRONECI_PASSWORD }} --upload-file $rpm https://git.unkin.net/api/packages/unkin/rpm/almalinux/el9/upload
done
+3 -16
View File
@@ -3,24 +3,12 @@ repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.5.0
hooks:
- id: check-executables-have-shebangs
- id: check-json
- id: check-added-large-files
args: ['--maxkb=500']
- id: check-merge-conflict
- id: check-shebang-scripts-are-executable
- id: check-symlinks
- id: check-toml
- id: trailing-whitespace
- id: end-of-file-fixer
- id: check-yaml
args: [--allow-multiple-documents]
- id: detect-aws-credentials
args: [--allow-missing-credentials]
- id: check-merge-conflict
- id: detect-private-key
- id: end-of-file-fixer
- id: forbid-new-submodules
- id: pretty-format-json
- id: trailing-whitespace
- repo: https://github.com/adrienverge/yamllint.git
rev: v1.37.1
hooks:
@@ -30,7 +18,6 @@ repos:
"-d {extends: relaxed, rules: {line-length: disable}}",
"-s",
]
- repo: https://github.com/astral-sh/ruff-pre-commit
rev: v0.14.7
hooks:
+4 -15
View File
@@ -3,25 +3,14 @@ when:
steps:
- name: build rpms
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
commands:
- mkdir -p /woodpecker/rpms
- ln -s /woodpecker/rpms /workspace
- dnf install buildah -y
- ./tools/build build-all --distro almalinux/el8 --buildah
privileged: true
- mkdir -p /app/dist
- ./tools/build build-all --distro almalinux/el8 --native
backend_options:
kubernetes:
serviceAccountName: default
resources:
requests:
memory: 512Mi
cpu: 1
limits:
memory: 2Gi
cpu: 2
- name: show rpms
image: git.unkin.net/unkin/almalinux8-base:latest
commands:
- find /woodpecker/src/git.unkin.net/unkin/rpmbuilder/ -type f -name "*.rpm"
- find /app/dist -type f -name "*.rpm"
+3 -14
View File
@@ -5,23 +5,12 @@ steps:
- name: build rpms
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
commands:
- mkdir -p /woodpecker/rpms
- ln -s /woodpecker/rpms /workspace
- dnf install buildah -y
- ./tools/build build-all --distro almalinux/el9 --buildah
privileged: true
- mkdir -p /app/dist/
- ./tools/build build-all --distro almalinux/el9 --native
backend_options:
kubernetes:
serviceAccountName: default
resources:
requests:
memory: 512Mi
cpu: 1
limits:
memory: 2Gi
cpu: 2
- name: show rpms
image: git.unkin.net/unkin/almalinux9-base:latest
commands:
- find /woodpecker/src/git.unkin.net/unkin/rpmbuilder/ -type f -name "*.rpm"
- find /app/dist -type f -name "*.rpm"
-51
View File
@@ -1,51 +0,0 @@
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
- dnf install buildah -y
- ./tools/build build-all --distro almalinux/el8 --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/almalinux9-base: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/almalinux9-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/almalinux/el8/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]
-51
View File
@@ -1,51 +0,0 @@
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
- dnf install buildah -y
- ./tools/build build-all --distro almalinux/el9 --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/almalinux9-base: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/almalinux9-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/almalinux/el9/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]
-5
View File
@@ -31,11 +31,6 @@ build-all-native:
@echo "Building all packages natively (no Docker) for distro $(DISTRO)..."
$(BUILD_TOOL) build-all --distro $(DISTRO) --native
# Build all packages using Buildah
build-all-buildah:
@echo "Building all packages using Buildah for distro $(DISTRO)..."
$(BUILD_TOOL) build-all --distro $(DISTRO) --buildah
# Build specific package using Python tool
.PHONY: $(PACKAGES)
$(PACKAGES):
+2 -2
View File
@@ -12,9 +12,9 @@ builds:
- almalinux/el8
image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
release: 1
version: 0.15.0
version: 0.10.1
- repository:
- almalinux/el9
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
release: 1
version: 0.15.0
version: 0.10.1
-19
View File
@@ -1,19 +0,0 @@
arch: amd64
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
homepage: https://claude.ai/code
license: Proprietary
maintainer: Anthropic
name: claude-code
platform: linux
-13
View File
@@ -1,13 +0,0 @@
#!/usr/bin/bash
set -e
# Download claude-code binary
wget -O /app/claude https://artifactapi.k8s.syd1.au.unkin.net/api/v1/remote/claude-ai/claude-code-releases/${PACKAGE_VERSION}/linux-x64/claude
chmod +x /app/claude
# Process the nfpm.yaml template with environment variables
envsubst < /app/resources/nfpm.yaml > /app/nfpm.yaml
# Build the RPM
nfpm pkg --config /app/nfpm.yaml --target /app/dist --packager rpm
-33
View File
@@ -1,33 +0,0 @@
# 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:
- claude-code
- claude
provides:
- claude-code
- claude
# Files to include in the package
contents:
- src: /app/claude
dst: /usr/bin/claude
file_info:
mode: 0755
owner: root
group: root
+2 -2
View File
@@ -12,9 +12,9 @@ builds:
- almalinux/el8
image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
release: 1
version: 1.9.1
version: 1.9.0
- repository:
- almalinux/el9
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
release: 1
version: 1.9.1
version: 1.9.0
-20
View File
@@ -1,20 +0,0 @@
---
name: code-server
github: coder/code-server
description: VS Code in the browser.
arch: amd64
platform: linux
maintainer: Coder
homepage: https://github.com/coder/code-server
license: MIT
builds:
- repository:
- almalinux/el8
image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
release: 1
version: 4.117.0
- repository:
- almalinux/el9
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
release: 1
version: 4.117.0
-6
View File
@@ -1,6 +0,0 @@
#!/usr/bin/bash
set -e
curl -L -o /app/dist/code-server-${PACKAGE_VERSION}-${PACKAGE_RELEASE}.x86_64.rpm \
https://artifactapi.k8s.syd1.au.unkin.net/api/v1/remote/github/coder/code-server/releases/download/v${PACKAGE_VERSION}/code-server-${PACKAGE_VERSION}-amd64.rpm
-14
View File
@@ -1,14 +0,0 @@
# nfpm.yaml - unused, RPM is downloaded directly in build.sh
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}
+2 -2
View File
@@ -12,9 +12,9 @@ builds:
- almalinux/el8
image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
release: 1
version: 1.22.7
version: 1.22.2
- repository:
- almalinux/el9
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
release: 1
version: 1.22.7
version: 1.22.2
+2 -2
View File
@@ -11,9 +11,9 @@ builds:
- almalinux/el8
image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
release: 1
version: 1.11.0
version: 1.9.0
- repository:
- almalinux/el9
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
release: 1
version: 1.11.0
version: 1.9.0
-20
View File
@@ -1,20 +0,0 @@
---
name: git-delta
github: dandavison/delta
description: A syntax-highlighting pager for git, diff, grep, and blame output.
arch: amd64
platform: linux
maintainer: dandavison
homepage: https://github.com/dandavison/delta
license: MIT
builds:
- repository:
- almalinux/el8
image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
release: 1
version: 0.19.2
- repository:
- almalinux/el9
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
release: 1
version: 0.19.2
-12
View File
@@ -1,12 +0,0 @@
#!/usr/bin/bash
set -e
# Note: delta releases use plain version tags (no v prefix)
wget -O /app/delta-${PACKAGE_VERSION}-x86_64-unknown-linux-musl.tar.gz https://artifactapi.k8s.syd1.au.unkin.net/api/v1/remote/github/dandavison/delta/releases/download/${PACKAGE_VERSION}/delta-${PACKAGE_VERSION}-x86_64-unknown-linux-musl.tar.gz
tar xf /app/delta-${PACKAGE_VERSION}-x86_64-unknown-linux-musl.tar.gz
mv /app/delta-${PACKAGE_VERSION}-x86_64-unknown-linux-musl/delta /app/delta
envsubst < /app/resources/nfpm.yaml > /app/nfpm.yaml
nfpm pkg --config /app/nfpm.yaml --target /app/dist --packager rpm
-30
View File
@@ -1,30 +0,0 @@
# 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:
- git-delta
provides:
- git-delta
contents:
- src: /app/delta
dst: /usr/bin/delta
file_info:
mode: 0755
owner: root
group: root
-20
View File
@@ -1,20 +0,0 @@
---
name: hadolint
github: hadolint/hadolint
description: A smarter Dockerfile linter that helps you build best practice Docker images.
arch: amd64
platform: linux
maintainer: hadolint
homepage: https://github.com/hadolint/hadolint
license: GPL-3.0
builds:
- repository:
- almalinux/el8
image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
release: 1
version: 2.14.0
- repository:
- almalinux/el9
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
release: 1
version: 2.14.0
-10
View File
@@ -1,10 +0,0 @@
#!/usr/bin/bash
set -e
wget -O /app/hadolint https://artifactapi.k8s.syd1.au.unkin.net/api/v1/remote/github/hadolint/hadolint/releases/download/v${PACKAGE_VERSION}/hadolint-linux-x86_64
chmod +x /app/hadolint
envsubst < /app/resources/nfpm.yaml > /app/nfpm.yaml
nfpm pkg --config /app/nfpm.yaml --target /app/dist --packager rpm
-30
View File
@@ -1,30 +0,0 @@
# 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:
- hadolint
provides:
- hadolint
contents:
- src: /app/hadolint
dst: /usr/bin/hadolint
file_info:
mode: 0755
owner: root
group: root
+2 -2
View File
@@ -11,9 +11,9 @@ builds:
- almalinux/el8
image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
release: 1
version: 4.1.4
version: 4.0.5
- repository:
- almalinux/el9
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
release: 1
version: 4.1.4
version: 4.0.5
+2 -2
View File
@@ -13,9 +13,9 @@ builds:
- almalinux/el8
image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
release: 1
version: 1.4.4
version: 1.2.3
- repository:
- almalinux/el9
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
release: 1
version: 1.4.4
version: 1.2.3
+1 -1
View File
@@ -11,4 +11,4 @@ builds:
- almalinux/el9
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
release: 1
version: 6.23.0
version: 6.20.0
Executable → Regular
View File
+10 -12
View File
@@ -1,17 +1,15 @@
---
arch: amd64
builds:
- image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
release: 1
repository:
- almalinux/el8
version: 0.17.0
- image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
release: 1
repository:
- almalinux/el9
version: 0.17.0
description: Jsonnet Language Server Protocol implementation for the Jsonnet templating
language.
- image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
release: '1'
repository: [almalinux/el8]
version: 0.16.0
- image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
release: '1'
repository: [almalinux/el9]
version: 0.16.0
description: Jsonnet Language Server Protocol implementation for the Jsonnet templating language.
github: grafana/jsonnet-language-server
homepage: https://github.com/grafana/jsonnet-language-server
license: Apache-2.0
+9 -10
View File
@@ -1,15 +1,14 @@
---
arch: amd64
builds:
- image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
release: 1
repository:
- almalinux/el8
version: 0.22.0
- image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
release: 1
repository:
- almalinux/el9
version: 0.22.0
- image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
release: '1'
repository: [almalinux/el8]
version: 0.21.0
- image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
release: '1'
repository: [almalinux/el9]
version: 0.21.0
description: Linter for Jsonnet
github: google/go-jsonnet
homepage: https://github.com/google/go-jsonnet
+9 -10
View File
@@ -1,15 +1,14 @@
---
arch: amd64
builds:
- image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
release: 1
repository:
- almalinux/el8
version: 0.22.0
- image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
release: 1
repository:
- almalinux/el9
version: 0.22.0
- image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
release: '1'
repository: [almalinux/el8]
version: 0.21.0
- image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
release: '1'
repository: [almalinux/el9]
version: 0.21.0
description: A data templating language
github: google/go-jsonnet
homepage: https://github.com/google/go-jsonnet
-20
View File
@@ -1,20 +0,0 @@
---
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
-10
View File
@@ -1,10 +0,0 @@
#!/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
-30
View File
@@ -1,30 +0,0 @@
# 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
-20
View File
@@ -1,20 +0,0 @@
---
name: kubectx
github: ahmetb/kubectx
description: Faster way to switch between clusters and namespaces in kubectl.
arch: amd64
platform: linux
maintainer: ahmetb
homepage: https://github.com/ahmetb/kubectx
license: Apache-2.0
builds:
- repository:
- almalinux/el8
image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
release: 1
version: 0.11.0
- repository:
- almalinux/el9
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
release: 1
version: 0.11.0
-13
View File
@@ -1,13 +0,0 @@
#!/usr/bin/bash
set -e
wget -O /app/kubectx_v${PACKAGE_VERSION}_linux_x86_64.tar.gz https://artifactapi.k8s.syd1.au.unkin.net/api/v1/remote/github/ahmetb/kubectx/releases/download/v${PACKAGE_VERSION}/kubectx_v${PACKAGE_VERSION}_linux_x86_64.tar.gz
wget -O /app/kubens_v${PACKAGE_VERSION}_linux_x86_64.tar.gz https://artifactapi.k8s.syd1.au.unkin.net/api/v1/remote/github/ahmetb/kubectx/releases/download/v${PACKAGE_VERSION}/kubens_v${PACKAGE_VERSION}_linux_x86_64.tar.gz
tar xf /app/kubectx_v${PACKAGE_VERSION}_linux_x86_64.tar.gz -C /app/ kubectx
tar xf /app/kubens_v${PACKAGE_VERSION}_linux_x86_64.tar.gz -C /app/ kubens
envsubst < /app/resources/nfpm.yaml > /app/nfpm.yaml
nfpm pkg --config /app/nfpm.yaml --target /app/dist --packager rpm
-38
View File
@@ -1,38 +0,0 @@
# 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:
- kubectx
- kubens
provides:
- kubectx
- kubens
contents:
- src: /app/kubectx
dst: /usr/bin/kubectx
file_info:
mode: 0755
owner: root
group: root
- src: /app/kubens
dst: /usr/bin/kubens
file_info:
mode: 0755
owner: root
group: root
-20
View File
@@ -1,20 +0,0 @@
---
name: lazydocker
github: jesseduffield/lazydocker
description: The lazier way to manage everything docker.
arch: amd64
platform: linux
maintainer: jesseduffield
homepage: https://github.com/jesseduffield/lazydocker
license: MIT
builds:
- repository:
- almalinux/el8
image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
release: 1
version: 0.25.2
- repository:
- almalinux/el9
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
release: 1
version: 0.25.2
-10
View File
@@ -1,10 +0,0 @@
#!/usr/bin/bash
set -e
wget -O /app/lazydocker_${PACKAGE_VERSION}_Linux_x86_64.tar.gz https://artifactapi.k8s.syd1.au.unkin.net/api/v1/remote/github/jesseduffield/lazydocker/releases/download/v${PACKAGE_VERSION}/lazydocker_${PACKAGE_VERSION}_Linux_x86_64.tar.gz
tar xf /app/lazydocker_${PACKAGE_VERSION}_Linux_x86_64.tar.gz -C /app/ lazydocker
envsubst < /app/resources/nfpm.yaml > /app/nfpm.yaml
nfpm pkg --config /app/nfpm.yaml --target /app/dist --packager rpm
-30
View File
@@ -1,30 +0,0 @@
# 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:
- lazydocker
provides:
- lazydocker
contents:
- src: /app/lazydocker
dst: /usr/bin/lazydocker
file_info:
mode: 0755
owner: root
group: root
View File
-20
View File
@@ -1,20 +0,0 @@
---
name: neovim-glibc-2.17
github: neovim/neovim-releases
description: Vim-fork focused on extensibility and usability (glibc 2.17 compatible build).
arch: amd64
platform: linux
maintainer: neovim
homepage: https://neovim.io
license: Apache-2.0
builds:
- repository:
- almalinux/el8
image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
release: 1
version: 0.12.2
- repository:
- almalinux/el9
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
release: 1
version: 0.12.2
-11
View File
@@ -1,11 +0,0 @@
#!/usr/bin/bash
set -e
wget -O /app/nvim-linux-x86_64.tar.gz https://artifactapi.k8s.syd1.au.unkin.net/api/v1/remote/github/neovim/neovim-releases/releases/download/v${PACKAGE_VERSION}/nvim-linux-x86_64.tar.gz
tar xf /app/nvim-linux-x86_64.tar.gz
mv /app/nvim-linux-x86_64/bin/nvim /app/nvim
envsubst < /app/resources/nfpm.yaml > /app/nfpm.yaml
nfpm pkg --config /app/nfpm.yaml --target /app/dist --packager rpm
@@ -1,35 +0,0 @@
# 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:
- neovim-glibc-2.17
- neovim
provides:
- neovim-glibc-2.17
- nvim
conflicts:
- neovim
contents:
- src: /app/nvim
dst: /usr/bin/nvim
file_info:
mode: 0755
owner: root
group: root
-20
View File
@@ -1,20 +0,0 @@
---
name: neovim
github: neovim/neovim
description: Vim-fork focused on extensibility and usability.
arch: amd64
platform: linux
maintainer: neovim
homepage: https://neovim.io
license: Apache-2.0
builds:
- repository:
- almalinux/el8
image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
release: 1
version: 0.12.2
- repository:
- almalinux/el9
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
release: 1
version: 0.12.2
-11
View File
@@ -1,11 +0,0 @@
#!/usr/bin/bash
set -e
wget -O /app/nvim-linux-x86_64.tar.gz https://artifactapi.k8s.syd1.au.unkin.net/api/v1/remote/github/neovim/neovim/releases/download/v${PACKAGE_VERSION}/nvim-linux-x86_64.tar.gz
tar xf /app/nvim-linux-x86_64.tar.gz
mv /app/nvim-linux-x86_64/bin/nvim /app/nvim
envsubst < /app/resources/nfpm.yaml > /app/nfpm.yaml
nfpm pkg --config /app/nfpm.yaml --target /app/dist --packager rpm
-35
View File
@@ -1,35 +0,0 @@
# 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:
- neovim
- neovim-glibc-2.17
provides:
- neovim
- nvim
conflicts:
- neovim-glibc-2.17
contents:
- src: /app/nvim
dst: /usr/bin/nvim
file_info:
mode: 0755
owner: root
group: root
+2 -9
View File
@@ -12,16 +12,9 @@ builds:
- almalinux/el8
image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
release: 1
version: 2.46.3
version: 2.44.1
- repository:
- almalinux/el9
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
release: 1
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
version: 2.44.1
+2 -2
View File
@@ -11,9 +11,9 @@ builds:
- almalinux/el8
image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
release: 1
version: 1.11.1
version: 1.10.2
- repository:
- almalinux/el9
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
release: 1
version: 1.11.1
version: 1.10.2
+2 -2
View File
@@ -13,9 +13,9 @@ builds:
- almalinux/el8
image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
release: 1
version: 0.4.9
version: 0.4.8
- repository:
- almalinux/el9
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
release: 1
version: 0.4.9
version: 0.4.8
+4 -4
View File
@@ -11,10 +11,10 @@ builds:
- repository:
- almalinux/el8
image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
release: 1
version: '26.1'
release: 2
version: '25.4'
- repository:
- almalinux/el9
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
release: 1
version: '26.1'
release: 2
version: '25.4'
View File
View File
+2 -2
View File
@@ -11,9 +11,9 @@ builds:
- almalinux/el8
image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
release: 1
version: 1.15.3
version: 1.14.3
- repository:
- almalinux/el9
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
release: 1
version: 1.15.3
version: 1.14.3
+9 -10
View File
@@ -1,15 +1,14 @@
---
arch: amd64
builds:
- image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
release: 1
repository:
- almalinux/el8
version: 0.12.0
- image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
release: 1
repository:
- almalinux/el9
version: 0.12.0
- image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
release: '1'
repository: [almalinux/el8]
version: 0.11.0
- image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
release: '1'
repository: [almalinux/el9]
version: 0.11.0
description: Prometheus exporter for PgBouncer
github: prometheus-community/pgbouncer_exporter
homepage: https://github.com/prometheus-community/pgbouncer_exporter
+2 -2
View File
@@ -11,9 +11,9 @@ builds:
- almalinux/el8
image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
release: 1
version: 0.19.1
version: 0.18.1
- repository:
- almalinux/el9
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
release: 1
version: 0.19.1
version: 0.18.1
View File
+2 -2
View File
@@ -11,9 +11,9 @@ builds:
- almalinux/el8
image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
release: 1
version: 0.15.12
version: 0.14.10
- repository:
- almalinux/el9
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
release: 1
version: 0.15.12
version: 0.14.10
-20
View File
@@ -1,20 +0,0 @@
---
name: sops
github: getsops/sops
description: Simple and flexible tool for managing secrets.
arch: amd64
platform: linux
maintainer: getsops
homepage: https://github.com/getsops/sops
license: MPL-2.0
builds:
- repository:
- almalinux/el8
image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
release: 1
version: 3.12.2
- repository:
- almalinux/el9
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
release: 1
version: 3.12.2
-10
View File
@@ -1,10 +0,0 @@
#!/usr/bin/bash
set -e
wget -O /app/sops https://artifactapi.k8s.syd1.au.unkin.net/api/v1/remote/github/getsops/sops/releases/download/v${PACKAGE_VERSION}/sops-v${PACKAGE_VERSION}.linux.amd64
chmod +x /app/sops
envsubst < /app/resources/nfpm.yaml > /app/nfpm.yaml
nfpm pkg --config /app/nfpm.yaml --target /app/dist --packager rpm
-30
View File
@@ -1,30 +0,0 @@
# 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:
- sops
provides:
- sops
contents:
- src: /app/sops
dst: /usr/bin/sops
file_info:
mode: 0755
owner: root
group: root
+2 -2
View File
@@ -12,9 +12,9 @@ builds:
- almalinux/el8
image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
release: 1
version: 0.16.3
version: 0.15.3
- repository:
- almalinux/el9
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
release: 1
version: 0.16.3
version: 0.15.3
View File
View File
View File
View File
+2 -2
View File
@@ -11,9 +11,9 @@ builds:
- almalinux/el8
image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
release: 1
version: 0.16.3
version: 0.15.3
- repository:
- almalinux/el9
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
release: 1
version: 0.16.3
version: 0.15.3
View File
View File
View File
View File
-20
View File
@@ -1,20 +0,0 @@
name: starship
github: starship/starship
description: The minimal, blazing-fast, and infinitely customizable prompt for any
shell.
arch: amd64
platform: linux
maintainer: starship
homepage: https://starship.rs
license: ISC
builds:
- repository:
- almalinux/el8
image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
release: 1
version: 1.25.1
- repository:
- almalinux/el9
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
release: 1
version: 1.25.1
-10
View File
@@ -1,10 +0,0 @@
#!/usr/bin/bash
set -e
wget -O /app/starship-x86_64-unknown-linux-musl.tar.gz https://artifactapi.k8s.syd1.au.unkin.net/api/v1/remote/github/starship/starship/releases/download/v${PACKAGE_VERSION}/starship-x86_64-unknown-linux-musl.tar.gz
tar xf /app/starship-x86_64-unknown-linux-musl.tar.gz
envsubst < /app/resources/nfpm.yaml > /app/nfpm.yaml
nfpm pkg --config /app/nfpm.yaml --target /app/dist --packager rpm
-30
View File
@@ -1,30 +0,0 @@
# 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:
- starship
provides:
- starship
contents:
- src: /app/starship
dst: /usr/bin/starship
file_info:
mode: 0755
owner: root
group: root
-20
View File
@@ -1,20 +0,0 @@
---
name: stern
github: stern/stern
description: Multi pod and container log tailing for Kubernetes.
arch: amd64
platform: linux
maintainer: stern
homepage: https://github.com/stern/stern
license: Apache-2.0
builds:
- repository:
- almalinux/el8
image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
release: 1
version: 1.33.1
- repository:
- almalinux/el9
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
release: 1
version: 1.33.1
-10
View File
@@ -1,10 +0,0 @@
#!/usr/bin/bash
set -e
wget -O /app/stern_${PACKAGE_VERSION}_linux_amd64.tar.gz https://artifactapi.k8s.syd1.au.unkin.net/api/v1/remote/github/stern/stern/releases/download/v${PACKAGE_VERSION}/stern_${PACKAGE_VERSION}_linux_amd64.tar.gz
tar xf /app/stern_${PACKAGE_VERSION}_linux_amd64.tar.gz
envsubst < /app/resources/nfpm.yaml > /app/nfpm.yaml
nfpm pkg --config /app/nfpm.yaml --target /app/dist --packager rpm
-30
View File
@@ -1,30 +0,0 @@
# 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:
- stern
provides:
- stern
contents:
- src: /app/stern
dst: /usr/bin/stern
file_info:
mode: 0755
owner: root
group: root
-20
View File
@@ -1,20 +0,0 @@
---
name: tea
github: unknown/tea
description: The official CLI for Gitea.
arch: amd64
platform: linux
maintainer: Gitea
homepage: https://gitea.com/gitea/tea
license: MIT
builds:
- repository:
- almalinux/el8
image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
release: 1
version: 0.14.0
- repository:
- almalinux/el9
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
release: 1
version: 0.14.0
-10
View File
@@ -1,10 +0,0 @@
#!/usr/bin/bash
set -e
curl -L --output /app/tea-linux-amd64 https://artifactapi.k8s.syd1.au.unkin.net/api/v1/remote/gitea-dl/tea/${PACKAGE_VERSION}/tea-${PACKAGE_VERSION}-linux-amd64
chmod +x /app/tea-linux-amd64
envsubst < /app/resources/nfpm.yaml > /app/nfpm.yaml
nfpm pkg --config /app/nfpm.yaml --target /app/dist --packager rpm
-30
View File
@@ -1,30 +0,0 @@
# 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:
- tea
provides:
- tea
contents:
- src: /app/tea-linux-amd64
dst: /usr/bin/tea
file_info:
mode: 0755
owner: root
group: root
+2 -2
View File
@@ -14,9 +14,9 @@ builds:
- almalinux/el8
image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
release: 1
version: 1.15.0
version: 1.14.3
- repository:
- almalinux/el9
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
release: 1
version: 1.15.0
version: 1.14.3
+2 -2
View File
@@ -12,9 +12,9 @@ builds:
- almalinux/el8
image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
release: 1
version: 1.0.3
version: 0.96.1
- repository:
- almalinux/el9
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
release: 1
version: 1.0.3
version: 0.96.1
+2 -2
View File
@@ -12,9 +12,9 @@ builds:
- almalinux/el8
image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
release: 1
version: 0.62.0
version: 0.60.0
- repository:
- almalinux/el9
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
release: 1
version: 0.62.0
version: 0.60.0
View File
+1 -1
View File
@@ -5,7 +5,7 @@ set -e
# Download and extract unrar (with version formatting)
export DOWNLOAD_VERSION=$(echo $PACKAGE_VERSION | sed s/\\.//)
curl -L -o /app/rarlinux.tar.gz https://artifactapi.k8s.syd1.au.unkin.net/api/v1/remote/rarlab/rar/rarlinux-x64-${DOWNLOAD_VERSION}.tar.gz
tar xf /app/rarlinux.tar.gz -C /app
tar xf /app/rarlinux.tar.gz
mv /app/rar/unrar /app/
# Process the nfpm.yaml template with environment variables
+2 -2
View File
@@ -11,9 +11,9 @@ builds:
- almalinux/el8
image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
release: 1
version: 0.11.8
version: 0.9.20
- repository:
- almalinux/el9
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
release: 1
version: 0.11.8
version: 0.9.20
+2 -2
View File
@@ -12,9 +12,9 @@ builds:
- almalinux/el8
image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
release: 1
version: 0.44.0
version: 0.43.0
- repository:
- almalinux/el9
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
release: 1
version: 0.44.0
version: 0.43.0
+2 -2
View File
@@ -14,9 +14,9 @@ builds:
- almalinux/el8
image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
release: 1
version: 2.0.0
version: 1.21.1
- repository:
- almalinux/el9
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
release: 1
version: 2.0.0
version: 1.21.1
+2 -2
View File
@@ -12,9 +12,9 @@ builds:
- almalinux/el8
image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
release: 1
version: 1.50.0
version: 1.43.1
- repository:
- almalinux/el9
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
release: 1
version: 1.50.0
version: 1.43.1
+2 -2
View File
@@ -12,9 +12,9 @@ builds:
- almalinux/el8
image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
release: 1
version: 1.50.0
version: 1.43.1
- repository:
- almalinux/el9
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
release: 1
version: 1.50.0
version: 1.43.1
+2 -2
View File
@@ -12,9 +12,9 @@ builds:
- almalinux/el8
image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
release: 1
version: 1.142.0
version: 1.132.0
- repository:
- almalinux/el9
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
release: 1
version: 1.142.0
version: 1.132.0
+2 -2
View File
@@ -11,9 +11,9 @@ builds:
- almalinux/el8
image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
release: 1
version: 1.142.0
version: 1.132.0
- repository:
- almalinux/el9
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
release: 1
version: 1.142.0
version: 1.132.0
+2 -2
View File
@@ -12,9 +12,9 @@ builds:
- almalinux/el8
image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
release: 1
version: 1.142.0
version: 1.132.0
- repository:
- almalinux/el9
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
release: 1
version: 1.142.0
version: 1.132.0
+2 -2
View File
@@ -12,9 +12,9 @@ builds:
- almalinux/el8
image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
release: 1
version: 1.142.0
version: 1.132.0
- repository:
- almalinux/el9
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
release: 1
version: 1.142.0
version: 1.132.0
+2 -2
View File
@@ -12,9 +12,9 @@ builds:
- almalinux/el8
image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
release: 1
version: 1.142.0
version: 1.132.0
- repository:
- almalinux/el9
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
release: 1
version: 1.142.0
version: 1.132.0
+2 -2
View File
@@ -12,9 +12,9 @@ builds:
- almalinux/el8
image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
release: 1
version: 1.142.0
version: 1.132.0
- repository:
- almalinux/el9
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
release: 1
version: 1.142.0
version: 1.132.0
-20
View File
@@ -1,20 +0,0 @@
---
name: yq
github: mikefarah/yq
description: yq is a portable command-line YAML, JSON, XML, CSV, TOML and properties processor.
arch: amd64
platform: linux
maintainer: mikefarah
homepage: https://github.com/mikefarah/yq
license: MIT
builds:
- repository:
- almalinux/el8
image: git.unkin.net/unkin/almalinux8-rpmbuilder:latest
release: 1
version: 4.53.2
- repository:
- almalinux/el9
image: git.unkin.net/unkin/almalinux9-rpmbuilder:latest
release: 1
version: 4.53.2
-10
View File
@@ -1,10 +0,0 @@
#!/usr/bin/bash
set -e
wget -O /app/yq https://artifactapi.k8s.syd1.au.unkin.net/api/v1/remote/github/mikefarah/yq/releases/download/v${PACKAGE_VERSION}/yq_linux_amd64
chmod +x /app/yq
envsubst < /app/resources/nfpm.yaml > /app/nfpm.yaml
nfpm pkg --config /app/nfpm.yaml --target /app/dist --packager rpm
-30
View File
@@ -1,30 +0,0 @@
# 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:
- yq
provides:
- yq
contents:
- src: /app/yq
dst: /usr/bin/yq
file_info:
mode: 0755
owner: root
group: root
+16 -230
View File
@@ -626,25 +626,6 @@ def check_native_build_deps() -> bool:
return True
def check_buildah_available() -> bool:
"""
Check if Buildah is available.
Returns:
True if Buildah is available, False otherwise
"""
try:
result = subprocess.run(
['buildah', 'version'],
capture_output=True,
text=True,
timeout=10
)
return result.returncode == 0
except (subprocess.TimeoutExpired, FileNotFoundError):
return False
def cleanup_container(container_name: str) -> None:
"""
Remove a Docker container.
@@ -769,7 +750,6 @@ def build_package_docker(
build_args = [
'docker', 'build',
'--pull',
'--network=host',
'-f', str(central_dockerfile),
'--build-arg', f'BASE_IMAGE={base_image}',
'--build-arg', f'PACKAGE_NAME={package_name}',
@@ -802,7 +782,6 @@ def build_package_docker(
# Step 2: Create and start container
create_args = [
'docker', 'create',
'--network=host',
'--name', container_name,
image_name
]
@@ -979,177 +958,6 @@ def build_package_native(
return False
def build_package_buildah(
package_dir: Path,
package_name: str,
package_version: str,
package_release: str,
dist_dir: Path,
repository: str,
base_image: str = "git.unkin.net/unkin/almalinux9-rpmbuilder:latest",
dry_run: bool = False
) -> bool:
"""
Build a package using Buildah without Docker daemon.
Args:
package_dir: Directory containing the package resources
package_name: Name of the package
package_version: Package version
package_release: Package release number
dist_dir: Directory to store built packages
repository: Repository path (e.g., 'almalinux/el9')
base_image: Base Docker image to use for building
dry_run: If True, only show what would be done
Returns:
True if build succeeded, False otherwise
"""
logger = logging.getLogger(__name__)
try:
# Ensure dist directory exists with repository structure
package_dist_dir = dist_dir / repository
if not dry_run:
package_dist_dir.mkdir(parents=True, exist_ok=True)
# Generate container name
container_name = f"{package_name}-{package_version}-buildah"
# Read metadata.yaml to get all package fields
metadata_file = package_dir / "metadata.yaml"
metadata = {}
if metadata_file.exists():
try:
with open(metadata_file, 'r') as f:
metadata = yaml.safe_load(f) or {}
except Exception as e:
logger.warning(f"Could not read metadata.yaml: {e}")
logger.info(f"Building RPM for {package_name} version {package_version} using Buildah")
if dry_run:
logger.info(f"[DRY RUN] Would use Buildah to build from: {base_image}")
logger.info("[DRY RUN] Would set environment variables:")
logger.info(f"[DRY RUN] PACKAGE_NAME={package_name}")
logger.info(f"[DRY RUN] PACKAGE_VERSION={package_version}")
logger.info(f"[DRY RUN] PACKAGE_RELEASE={package_release}")
logger.info(f"[DRY RUN] Would copy artifacts to: {package_dist_dir}")
return True
try:
# Step 1: Create a working container from base image
from_args = ['buildah', 'from', '--name', container_name, base_image]
logger.debug(f"Running: {' '.join(from_args)}")
result = subprocess.run(from_args, capture_output=True, text=True)
if result.returncode != 0:
logger.error(f"Failed to create Buildah container from {base_image}")
logger.error(f"stderr: {result.stderr}")
return False
# Step 2: Set environment variables
env_vars = {
'PACKAGE_NAME': package_name,
'PACKAGE_VERSION': package_version,
'PACKAGE_RELEASE': package_release,
'PACKAGE_DESCRIPTION': metadata.get('description', ''),
'PACKAGE_MAINTAINER': metadata.get('maintainer', ''),
'PACKAGE_HOMEPAGE': metadata.get('homepage', ''),
'PACKAGE_LICENSE': metadata.get('license', ''),
'PACKAGE_ARCH': metadata.get('arch', 'amd64'),
'PACKAGE_PLATFORM': metadata.get('platform', 'linux')
}
for key, value in env_vars.items():
config_args = ['buildah', 'config', '--env', f'{key}={value}', container_name]
logger.debug(f"Running: {' '.join(config_args)}")
result = subprocess.run(config_args, capture_output=True, text=True)
if result.returncode != 0:
logger.error(f"Failed to set environment variable {key}")
return False
# Step 3: Copy resources to container
copy_args = [
'buildah', 'copy', container_name,
str(package_dir / "resources"), '/app/resources'
]
logger.debug(f"Running: {' '.join(copy_args)}")
result = subprocess.run(copy_args, capture_output=True, text=True)
if result.returncode != 0:
logger.error(f"Failed to copy resources to container")
logger.error(f"stderr: {result.stderr}")
return False
# Step 4: Create dist directory in container
run_args = ['buildah', 'run', container_name, 'mkdir', '-p', '/app/dist']
logger.debug(f"Running: {' '.join(run_args)}")
result = subprocess.run(run_args, capture_output=True, text=True)
# Step 5: Run the build script
run_args = ['buildah', 'run', '--workingdir', '/app', container_name, '/app/resources/build.sh']
logger.debug(f"Running: {' '.join(run_args)}")
result = subprocess.run(run_args, capture_output=True, text=True)
if result.returncode != 0:
logger.error(f"Buildah build script failed for {package_name}")
logger.error(f"stdout: {result.stdout}")
logger.error(f"stderr: {result.stderr}")
return False
# Step 6: Copy artifacts from container to host
copy_out_args = [
'buildah', 'run', container_name,
'find', '/app/dist', '-type', 'f', '-name', '*.rpm'
]
result = subprocess.run(copy_out_args, capture_output=True, text=True)
logger.debug(f"Find RPMs result: {result.stdout}")
if result.returncode == 0 and result.stdout.strip():
rpm_files = result.stdout.strip().split('\n')
logger.info(f"Found {len(rpm_files)} RPM files to copy")
for rpm_file in rpm_files:
rpm_file = rpm_file.strip()
if rpm_file:
# Use buildah mount to copy files out
mount_args = ['buildah', 'mount', container_name]
mount_result = subprocess.run(mount_args, capture_output=True, text=True)
if mount_result.returncode == 0:
container_path = mount_result.stdout.strip()
source_file = Path(container_path) / rpm_file.lstrip('/')
if source_file.exists():
import shutil
dest_file = package_dist_dir / source_file.name
shutil.copy2(source_file, dest_file)
logger.debug(f"Copied {source_file} to {dest_file}")
else:
logger.error(f"Source file not found: {source_file}")
# Unmount
subprocess.run(['buildah', 'unmount', container_name], capture_output=True)
else:
logger.error(f"Failed to mount container: {mount_result.stderr}")
else:
logger.warning(f"No RPM files found or find command failed: {result.stderr}")
logger.info(f"Successfully built {package_name}-{package_version}-{package_release} using Buildah")
return True
finally:
# Step 7: Clean up container
rm_args = ['buildah', 'rm', container_name]
logger.debug(f"Running: {' '.join(rm_args)}")
subprocess.run(rm_args, capture_output=True, text=True)
except Exception as e:
logger.error(f"Unexpected error building {package_name} with Buildah: {e}")
return False
def cleanup_images(image_pattern: str = "*-builder") -> None:
"""
Clean up Docker images matching a pattern.
@@ -1291,8 +1099,7 @@ class Builder:
dry_run: bool = False,
force: bool = False,
distro: str = 'almalinux/el9',
native: bool = False,
buildah: bool = False
native: bool = False
) -> bool:
"""
Build a single package.
@@ -1368,9 +1175,9 @@ class Builder:
return False
package_info = PackageInfo(package, version, release, package_dir, distro, base_image)
return self._build_package(package_info, dry_run, force, native, buildah)
return self._build_package(package_info, dry_run, force, native)
def build_all(self, dry_run: bool = False, force: bool = False, parallel: int = 4, distro: str = 'el/9', native: bool = False, buildah: bool = False) -> bool:
def build_all(self, dry_run: bool = False, force: bool = False, parallel: int = 4, distro: str = 'el/9', native: bool = False) -> bool:
"""
Build all packages.
@@ -1392,29 +1199,29 @@ class Builder:
self.logger.info(f"Found {len(packages)} packages to process")
if parallel == 1:
return self._build_sequential(packages, dry_run, force, native, buildah)
return self._build_sequential(packages, dry_run, force, native)
else:
return self._build_parallel(packages, dry_run, force, parallel, native, buildah)
return self._build_parallel(packages, dry_run, force, parallel, native)
def _build_sequential(self, packages: List[PackageInfo], dry_run: bool, force: bool, native: bool, buildah: bool) -> bool:
def _build_sequential(self, packages: List[PackageInfo], dry_run: bool, force: bool, native: bool) -> bool:
"""Build packages sequentially."""
success_count = 0
for package_info in packages:
if self._build_package(package_info, dry_run, force, native, buildah):
if self._build_package(package_info, dry_run, force, native):
success_count += 1
self.logger.info(f"Built {success_count}/{len(packages)} packages successfully")
return success_count == len(packages)
def _build_parallel(self, packages: List[PackageInfo], dry_run: bool, force: bool, parallel: int, native: bool, buildah: bool) -> bool:
def _build_parallel(self, packages: List[PackageInfo], dry_run: bool, force: bool, parallel: int, native: bool) -> bool:
"""Build packages in parallel."""
success_count = 0
with ThreadPoolExecutor(max_workers=parallel) as executor:
# Submit all build tasks
future_to_package = {
executor.submit(self._build_package, pkg, dry_run, force, native, buildah): pkg
executor.submit(self._build_package, pkg, dry_run, force, native): pkg
for pkg in packages
}
@@ -1431,7 +1238,7 @@ class Builder:
self.logger.info(f"Built {success_count}/{len(packages)} packages successfully")
return success_count == len(packages)
def _build_package(self, package_info: PackageInfo, dry_run: bool, force: bool, native: bool = False, buildah: bool = False) -> bool:
def _build_package(self, package_info: PackageInfo, dry_run: bool, force: bool, native: bool = False) -> bool:
"""
Build a single package.
@@ -1457,16 +1264,11 @@ class Builder:
return True
# Check build tool availability (unless dry run)
use_native = native
use_buildah = buildah
use_docker = not use_native and not use_buildah and check_docker_available()
if not use_native and not use_buildah and not use_docker:
use_buildah = check_buildah_available()
if not use_native and not use_buildah and not use_docker:
use_native = check_native_build_deps()
use_native = native or check_native_build_deps()
use_docker = not use_native and check_docker_available()
if not dry_run and not use_native and not use_buildah and not use_docker:
self.logger.error("No build tools available (tried native, Buildah, Docker)")
if not dry_run and not use_native and not use_docker:
self.logger.error("Neither native build dependencies nor Docker is available")
return False
# Build the package using available tool
@@ -1481,18 +1283,6 @@ class Builder:
repository=package_info.distro,
dry_run=dry_run
)
elif use_buildah:
self.logger.debug(f"Using Buildah to build {package_info.name}")
return build_package_buildah(
package_dir=package_info.directory,
package_name=package_info.name,
package_version=package_info.version,
package_release=package_info.release,
dist_dir=self.dist_dir,
repository=package_info.distro,
base_image=package_info.base_image,
dry_run=dry_run
)
else:
self.logger.debug(f"Using Docker to build {package_info.name}")
return build_package_docker(
@@ -1767,7 +1557,6 @@ def build(
dry_run: bool = typer.Option(False, "--dry-run", help="Show what would be built without building"),
force: bool = typer.Option(False, "--force", help="Build even if package exists in registry"),
native: bool = typer.Option(False, "--native", help="Force native build (skip Docker even if available)"),
buildah: bool = typer.Option(False, "--buildah", help="Force Buildah build (requires Buildah)"),
verbose: bool = typer.Option(False, "--verbose", "-v", help="Enable verbose logging")
):
"""Build a specific package."""
@@ -1830,8 +1619,7 @@ def build(
dry_run=dry_run,
force=force,
distro=distro,
native=native,
buildah=buildah
native=native
)
if not success:
@@ -1848,7 +1636,6 @@ def build_all(
parallel: int = typer.Option(4, help="Number of parallel builds"),
distro: str = typer.Option("almalinux/el9", help="Target distro (almalinux/el8, almalinux/el9, or 'all' for all distros)"),
native: bool = typer.Option(False, "--native", help="Force native build (skip Docker even if available)"),
buildah: bool = typer.Option(False, "--buildah", help="Force Buildah build (requires Buildah)"),
verbose: bool = typer.Option(False, "--verbose", "-v", help="Enable verbose logging")
):
"""Build all packages."""
@@ -1863,8 +1650,7 @@ def build_all(
force=force,
parallel=parallel,
distro=distro,
native=native,
buildah=buildah
native=native
)
if not success:

Some files were not shown because too many files have changed in this diff Show More