freetz-7362sl/Jenkinsfile

55 lines
1.5 KiB
Groovy

node("linux && amd64 && docker") {
docker.image("icedream/freetz@sha256:6607702228ee9ee819d888702acf3ddefe7609132f7f15c88349251a15f5a5cc").inside {
stage("Checkout") {
checkout scm
sh """
cd ${pwd()}
chown -R freetz:freetz .
rm -rf /freetz
cp -a freetz /
cp -a .config config include make /freetz
"""
}
sh """
apt update
apt install -y bc
"""
withCredentials([
file(credentialsId: 'freetz.image_signing.asc', variable: 'FREETZ_IMAGE_SIGNING_ASC'),
file(credentialsId: 'freetz.image_signing.key', variable: 'FREETZ_IMAGE_SIGNING_KEY'),
file(credentialsId: 'freetz.image_signing.pem', variable: 'FREETZ_IMAGE_SIGNING_PEM'),
]) {
sh """
cp -v \"\${FREETZ_IMAGE_SIGNING_ASC}\" ~freetz/.freetz.image_signing.asc
cp -v \"\${FREETZ_IMAGE_SIGNING_KEY}\" ~freetz/.freetz.image_signing.key
cp -v \"\${FREETZ_IMAGE_SIGNING_PEM}\" ~freetz/.freetz.image_signing.pem
chown -v freetz:freetz ~freetz/.freetz*
chmod -v 644 ~freetz/.freetz*
"""
}
stage("Build") {
ansiColor('xterm') {
sh """
cd /freetz
su freetz -c \"sh -c 'umask 0022 && make oldconfig'\"
"""
retry(10) {
sh """
cd /freetz
su freetz -c \"sh -c 'umask 0022 && make'\"
"""
}
sh """
cd /freetz
cp -r images outboard \"${env.WORKSPACE}\"
"""
}
}
archive "images/**,outboard/**"
}
}