feat: add jsonnet and jsonnet-lint packages
All checks were successful
Build / build-9 (pull_request) Successful in 2m55s
Build / build-8 (pull_request) Successful in 2m56s

Add RPM packages for jsonnet v0.21.0 built from go-jsonnet:
- jsonnet: main interpreter and jsonnetfmt formatter
- jsonnet-lint: linter for Jsonnet files

Both packages use Go 1.24.7 as required by go-jsonnet v0.21.0.
This commit is contained in:
Ben Vincent 2025-09-28 20:48:19 +10:00
parent 85c4aa3264
commit 97a180ef9f
8 changed files with 145 additions and 0 deletions

View File

@ -0,0 +1 @@
1

View File

@ -0,0 +1,19 @@
# Start with the AlmaLinux 9 base image
FROM git.unkin.net/unkin/almalinux9-rpmbuilder:latest
# Create output directory for RPMs
RUN mkdir -p /app/dist
# Set working directory
WORKDIR /app
ARG PACKAGE_RELEASE
ENV PACKAGE_RELEASE=${PACKAGE_RELEASE}
ARG PACKAGE_VERSION
ENV PACKAGE_VERSION=${PACKAGE_VERSION}
# Copy resources from the context into the container
COPY resources /app/resources
# Default command to build RPMs
CMD /app/resources/build.sh

View File

@ -0,0 +1,19 @@
#!/usr/bin/bash
# Install dependencies and Go 1.24
dnf install -y wget git make
# Download and install Go 1.24.7
wget https://go.dev/dl/go1.24.7.linux-amd64.tar.gz
rm -rf /usr/local/go
tar -C /usr/local -xzf go1.24.7.linux-amd64.tar.gz
export PATH=/usr/local/go/bin:$PATH
# Verify Go installation
go version
# Build jsonnet-lint binary
GOBIN=/app go install github.com/google/go-jsonnet/cmd/jsonnet-lint@v${PACKAGE_VERSION}
# Build RPM package
nfpm pkg --config /app/resources/nfpm.yaml --target /app/dist --packager rpm

View File

@ -0,0 +1,30 @@
# nfpm.yaml
name: jsonnet-lint
version: ${PACKAGE_VERSION}
release: ${PACKAGE_RELEASE}
arch: amd64
platform: linux
section: default
priority: extra
description: "Linter for Jsonnet"
maintainer: Google
homepage: https://github.com/google/go-jsonnet
license: Apache-2.0
disable_globbing: false
replaces:
- jsonnet-lint
provides:
- jsonnet-lint
# Files to include in the package
contents:
- src: /app/jsonnet-lint
dst: /usr/bin/jsonnet-lint
file_info:
mode: 0755
owner: root
group: root

View File

@ -0,0 +1 @@
1

19
rpms/jsonnet/Dockerfile Normal file
View File

@ -0,0 +1,19 @@
# Start with the AlmaLinux 9 base image
FROM git.unkin.net/unkin/almalinux9-rpmbuilder:latest
# Create output directory for RPMs
RUN mkdir -p /app/dist
# Set working directory
WORKDIR /app
ARG PACKAGE_RELEASE
ENV PACKAGE_RELEASE=${PACKAGE_RELEASE}
ARG PACKAGE_VERSION
ENV PACKAGE_VERSION=${PACKAGE_VERSION}
# Copy resources from the context into the container
COPY resources /app/resources
# Default command to build RPMs
CMD /app/resources/build.sh

20
rpms/jsonnet/resources/build.sh Executable file
View File

@ -0,0 +1,20 @@
#!/usr/bin/bash
# Install dependencies and Go 1.24
dnf install -y wget git make
# Download and install Go 1.24.7
wget https://go.dev/dl/go1.24.7.linux-amd64.tar.gz
rm -rf /usr/local/go
tar -C /usr/local -xzf go1.24.7.linux-amd64.tar.gz
export PATH=/usr/local/go/bin:$PATH
# Verify Go installation
go version
# Build jsonnet binaries
GOBIN=/app go install github.com/google/go-jsonnet/cmd/jsonnet@v${PACKAGE_VERSION}
GOBIN=/app go install github.com/google/go-jsonnet/cmd/jsonnetfmt@v${PACKAGE_VERSION}
# Build RPM package
nfpm pkg --config /app/resources/nfpm.yaml --target /app/dist --packager rpm

View File

@ -0,0 +1,36 @@
# nfpm.yaml
name: jsonnet
version: ${PACKAGE_VERSION}
release: ${PACKAGE_RELEASE}
arch: amd64
platform: linux
section: default
priority: extra
description: "A data templating language"
maintainer: Google
homepage: https://github.com/google/go-jsonnet
license: Apache-2.0
disable_globbing: false
replaces:
- jsonnet
provides:
- jsonnet
# Files to include in the package
contents:
- src: /app/jsonnet
dst: /usr/bin/jsonnet
file_info:
mode: 0755
owner: root
group: root
- src: /app/jsonnetfmt
dst: /usr/bin/jsonnetfmt
file_info:
mode: 0755
owner: root
group: root