Support EL9 and EL10 builds
This commit is contained in:
parent
c89c7ba04d
commit
e0cbce9557
1 changed files with 114 additions and 43 deletions
157
.build/Jenkinsfile
vendored
157
.build/Jenkinsfile
vendored
|
|
@ -85,57 +85,128 @@ pipeline {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
stage('Build RPM Package') {
|
stage('Build RPM Packages') {
|
||||||
agent {
|
parallel {
|
||||||
kubernetes {
|
stage('Build EL9 RPM Package') {
|
||||||
inheritFrom 'default'
|
agent {
|
||||||
yaml """
|
kubernetes {
|
||||||
apiVersion: v1
|
inheritFrom 'default'
|
||||||
kind: Pod
|
yaml """
|
||||||
spec:
|
apiVersion: v1
|
||||||
containers:
|
kind: Pod
|
||||||
- name: rpm-build
|
spec:
|
||||||
image: rockylinux:9
|
containers:
|
||||||
command:
|
- name: rpm-build-el9
|
||||||
- cat
|
image: rockylinux/rockylinux:9
|
||||||
tty: true
|
command:
|
||||||
"""
|
- cat
|
||||||
|
tty: true
|
||||||
|
"""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
steps {
|
||||||
|
container('rpm-build-el9') {
|
||||||
|
// Prepare the RPM build environment
|
||||||
|
unstash 'binary'
|
||||||
|
unstash 'rpm-files'
|
||||||
|
unstash 'service-file'
|
||||||
|
unstash 'docs'
|
||||||
|
|
||||||
|
// Install necessary tools for RPM building
|
||||||
|
sh 'dnf update -y && dnf install -y rpmdevtools tar'
|
||||||
|
|
||||||
|
// Set EL version for EL9
|
||||||
|
script {
|
||||||
|
env.EL_VERSION = "el9"
|
||||||
|
echo "Building for Rocky Linux 9 (EL9)"
|
||||||
|
}
|
||||||
|
|
||||||
|
// Create the RPM package
|
||||||
|
sh """
|
||||||
|
# Create RPM build directory structure
|
||||||
|
mkdir -p rpmbuild/{BUILD,BUILDROOT,RPMS,SOURCES,SPECS,SRPMS}
|
||||||
|
mkdir -p ${BINARY_NAME}-${BUILD_VERSION}
|
||||||
|
|
||||||
|
# Move files to the appropriate locations
|
||||||
|
mv ${BINARY_NAME} ${BINARY_NAME}.service LICENSE README.md config.toml ${BINARY_NAME}-${BUILD_VERSION}/
|
||||||
|
tar -czf rpmbuild/SOURCES/${BINARY_NAME}-${BUILD_VERSION}.tar.gz ${BINARY_NAME}-${BUILD_VERSION}/
|
||||||
|
mv ${BINARY_NAME}.spec rpmbuild/SPECS/
|
||||||
|
|
||||||
|
# Update spec file with correct version and source
|
||||||
|
sed -i 's/@BUILD_VERSION@/${BUILD_VERSION}/; s/@Source0@/${BINARY_NAME}-${BUILD_VERSION}.tar.gz/' rpmbuild/SPECS/${BINARY_NAME}.spec
|
||||||
|
|
||||||
|
# Build the RPM package
|
||||||
|
rpmbuild --define "_topdir ${WORKSPACE}/rpmbuild" --define "_version ${BUILD_VERSION}" -bb rpmbuild/SPECS/${BINARY_NAME}.spec
|
||||||
|
|
||||||
|
# Move RPM to root for archiving
|
||||||
|
mv rpmbuild/RPMS/x86_64/${BINARY_NAME}-${BUILD_VERSION}-1.${EL_VERSION}.x86_64.rpm .
|
||||||
|
"""
|
||||||
|
|
||||||
|
// Archive the EL9 RPM package
|
||||||
|
archiveArtifacts artifacts: "${BINARY_NAME}-${BUILD_VERSION}-1.${env.EL_VERSION}.x86_64.rpm", allowEmptyArchive: false, fingerprint: true
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
steps {
|
|
||||||
container('rpm-build') {
|
|
||||||
// Prepare the RPM build environment
|
|
||||||
unstash 'binary'
|
|
||||||
unstash 'rpm-files'
|
|
||||||
unstash 'service-file'
|
|
||||||
unstash 'docs'
|
|
||||||
|
|
||||||
// Install necessary tools for RPM building
|
stage('Build EL10 RPM Package') {
|
||||||
sh 'dnf update -y && dnf install -y rpmdevtools tar'
|
agent {
|
||||||
|
kubernetes {
|
||||||
|
inheritFrom 'default'
|
||||||
|
yaml """
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Pod
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- name: rpm-build-el10
|
||||||
|
image: rockylinux/rockylinux:10
|
||||||
|
command:
|
||||||
|
- cat
|
||||||
|
tty: true
|
||||||
|
"""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
steps {
|
||||||
|
container('rpm-build-el10') {
|
||||||
|
// Prepare the RPM build environment
|
||||||
|
unstash 'binary'
|
||||||
|
unstash 'rpm-files'
|
||||||
|
unstash 'service-file'
|
||||||
|
unstash 'docs'
|
||||||
|
|
||||||
// Create the RPM package
|
// Install necessary tools for RPM building
|
||||||
sh """
|
sh 'dnf update -y && dnf install -y rpmdevtools tar'
|
||||||
# Create RPM build directory structure
|
|
||||||
mkdir -p rpmbuild/{BUILD,BUILDROOT,RPMS,SOURCES,SPECS,SRPMS}
|
|
||||||
mkdir -p ${BINARY_NAME}-${BUILD_VERSION}
|
|
||||||
|
|
||||||
# Move files to the appropriate locations
|
// Set EL version for EL10
|
||||||
mv ${BINARY_NAME} ${BINARY_NAME}.service LICENSE README.md config.toml ${BINARY_NAME}-${BUILD_VERSION}/
|
script {
|
||||||
tar -czf rpmbuild/SOURCES/${BINARY_NAME}-${BUILD_VERSION}.tar.gz ${BINARY_NAME}-${BUILD_VERSION}/
|
env.EL_VERSION = "el10"
|
||||||
mv ${BINARY_NAME}.spec rpmbuild/SPECS/
|
echo "Building for Rocky Linux 10 (EL10)"
|
||||||
|
}
|
||||||
|
|
||||||
# Update spec file with correct version and source
|
// Create the RPM package
|
||||||
sed -i 's/@BUILD_VERSION@/${BUILD_VERSION}/; s/@Source0@/${BINARY_NAME}-${BUILD_VERSION}.tar.gz/' rpmbuild/SPECS/${BINARY_NAME}.spec
|
sh """
|
||||||
|
# Create RPM build directory structure
|
||||||
|
mkdir -p rpmbuild/{BUILD,BUILDROOT,RPMS,SOURCES,SPECS,SRPMS}
|
||||||
|
mkdir -p ${BINARY_NAME}-${BUILD_VERSION}
|
||||||
|
|
||||||
# Build the RPM package
|
# Move files to the appropriate locations
|
||||||
rpmbuild --define "_topdir ${WORKSPACE}/rpmbuild" --define "_version ${BUILD_VERSION}" -bb rpmbuild/SPECS/${BINARY_NAME}.spec
|
mv ${BINARY_NAME} ${BINARY_NAME}.service LICENSE README.md config.toml ${BINARY_NAME}-${BUILD_VERSION}/
|
||||||
|
tar -czf rpmbuild/SOURCES/${BINARY_NAME}-${BUILD_VERSION}.tar.gz ${BINARY_NAME}-${BUILD_VERSION}/
|
||||||
|
mv ${BINARY_NAME}.spec rpmbuild/SPECS/
|
||||||
|
|
||||||
# Move RPM to root for archiving
|
# Update spec file with correct version and source
|
||||||
mv rpmbuild/RPMS/x86_64/${BINARY_NAME}-${BUILD_VERSION}-1.el9.x86_64.rpm .
|
sed -i 's/@BUILD_VERSION@/${BUILD_VERSION}/; s/@Source0@/${BINARY_NAME}-${BUILD_VERSION}.tar.gz/' rpmbuild/SPECS/${BINARY_NAME}.spec
|
||||||
"""
|
|
||||||
|
|
||||||
// Archive the RPM package
|
# Build the RPM package
|
||||||
archiveArtifacts artifacts: "${BINARY_NAME}-${BUILD_VERSION}-1.el9.x86_64.rpm", allowEmptyArchive: false, fingerprint: true
|
rpmbuild --define "_topdir ${WORKSPACE}/rpmbuild" --define "_version ${BUILD_VERSION}" -bb rpmbuild/SPECS/${BINARY_NAME}.spec
|
||||||
|
|
||||||
|
# Move RPM to root for archiving
|
||||||
|
mv rpmbuild/RPMS/x86_64/${BINARY_NAME}-${BUILD_VERSION}-1.${EL_VERSION}.x86_64.rpm .
|
||||||
|
"""
|
||||||
|
|
||||||
|
// Archive the EL10 RPM package
|
||||||
|
archiveArtifacts artifacts: "${BINARY_NAME}-${BUILD_VERSION}-1.${env.EL_VERSION}.x86_64.rpm", allowEmptyArchive: false, fingerprint: true
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue