feat: add jsonnet and jsonnet-lint packages
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:
parent
85c4aa3264
commit
97a180ef9f
1
rpms/jsonnet-lint/0.21.0/release
Normal file
1
rpms/jsonnet-lint/0.21.0/release
Normal file
@ -0,0 +1 @@
|
|||||||
|
1
|
||||||
19
rpms/jsonnet-lint/Dockerfile
Normal file
19
rpms/jsonnet-lint/Dockerfile
Normal 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
|
||||||
19
rpms/jsonnet-lint/resources/build.sh
Executable file
19
rpms/jsonnet-lint/resources/build.sh
Executable 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
|
||||||
30
rpms/jsonnet-lint/resources/nfpm.yaml
Normal file
30
rpms/jsonnet-lint/resources/nfpm.yaml
Normal 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
|
||||||
1
rpms/jsonnet/0.21.0/release
Normal file
1
rpms/jsonnet/0.21.0/release
Normal file
@ -0,0 +1 @@
|
|||||||
|
1
|
||||||
19
rpms/jsonnet/Dockerfile
Normal file
19
rpms/jsonnet/Dockerfile
Normal 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
20
rpms/jsonnet/resources/build.sh
Executable 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
|
||||||
36
rpms/jsonnet/resources/nfpm.yaml
Normal file
36
rpms/jsonnet/resources/nfpm.yaml
Normal 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
|
||||||
Loading…
Reference in New Issue
Block a user