diff --git a/Jenkinsfile b/Jenkinsfile index 8ec20b6..fb128d2 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -3,14 +3,14 @@ pipeline { stages { stage('Tests and compiling binaries') { when { - expression { env.CHANGE_BRANCH?.startsWith('feature/') } + expression { env.CHANGE_BRANCH?.startsWith('feature/') || env.CHANGE_BRANCH?.startsWith('rc') } } steps { script { echo "Building and running tests in Docker for feature branch..." try { - def targetDirAmd = "${env.WORKSPACE}/${env.CHANGE_BRANCH}/x86/" - def targetDirRisc = "${env.WORKSPACE}/${env.CHANGE_BRANCH}/riscv/" + def targetDirAmd = "${env.WORKSPACE}/${env.CHANGE_BRANCH}/amd64" + def targetDirRisc = "${env.WORKSPACE}/${env.CHANGE_BRANCH}/riscv64" sh "mkdir -p ${targetDirAmd}" sh "mkdir -p ${targetDirRisc}" @@ -39,13 +39,108 @@ pipeline { } } + stage('Calculate Install Size') { + when { + expression { env.CHANGE_BRANCH?.startsWith('rc') } + } + steps { + script { + echo "Calculating installation size for rc branch..." + def targetDirAmd = "${env.WORKSPACE}/${env.CHANGE_BRANCH}/amd64" + def targetDirRisc = "${env.WORKSPACE}/${env.CHANGE_BRANCH}/riscv64" + + def installSizeAmd = sh(script: "du -s --block-size=1024 ${targetDirAmd} | awk '{print \$1}'", returnStdout: true).trim() + def installSizeRisc = sh(script: "du -s --block-size=1024 ${targetDirRisc} | awk '{print \$1}'", returnStdout: true).trim() + + env.INSTALL_SIZE_AMD = installSizeAmd + env.INSTALL_SIZE_RISC = installSizeRisc + + echo "Installation size for amd64: ${env.INSTALL_SIZE_AMD} kB" + echo "Installation size for riscv64: ${env.INSTALL_SIZE_RISC} kB" + } + } + } + + stage('Create Deb Packages') { + when { + expression { env.CHANGE_BRANCH?.startsWith('rc') } + } + steps { + script { + echo "Creating deb packages for rc branch..." + + def targetDirAmd = "${env.WORKSPACE}/${env.CHANGE_BRANCH}/amd64" + def targetDirRisc = "${env.WORKSPACE}/${env.CHANGE_BRANCH}/riscv64" + def packageName = "noxis" + def version = sh(script: "git describe --tags --always", returnStdout: true).trim() + def createDebPackage = { arch, binDir, targetDir, installSize -> + echo "Creating deb package for ${arch}..." + + sh """ + mkdir -p ${targetDir}/package/DEBIAN + mkdir -p ${targetDir}/package/usr/local/enode/${packageName} + mkdir -p ${targetDir}/package/usr/bin + mkdir -p ${targetDir}/package/etc/enode + mkdir -p ${targetDir}/package/lib/systemd/system + + cp ${binDir}/noxis-cli ${targetDir}/package/usr/local/enode/${packageName}/ + cp ${binDir}/noxis-rs ${targetDir}/package/usr/local/enode/${packageName}/ + cp ${binDir}/settings.json ${targetDir}/package/etc/enode/ + + cat > ${targetDir}/package/DEBIAN/control < +Description: Noxis Agent Linux +Installed-Size: ${installSize} +EOF + + chmod +x ${targetDir}/package/usr/local/enode/${packageName}/noxis-cli + chmod +x ${targetDir}/package/usr/local/enode/${packageName}/noxis-rs + + cat > ${targetDir}/package/DEBIAN/postinst < ${targetDir}/package/lib/systemd/system/${packageName}.service <