pipeline { agent any environment { ROOTFS_JOB = "espos-rootfs" WORKDIR = "${WORKSPACE}/work" } stages { stage('Cleanup Previous Mounts') { steps { sh ''' sudo umount -R "$WORKDIR/rootfs" 2>/dev/null || true sudo umount -lf "$WORKDIR/rootfs/dev/pts" 2>/dev/null || true sudo umount -lf "$WORKDIR/rootfs/dev/shm" 2>/dev/null || true sudo umount -lf "$WORKDIR/rootfs/dev" 2>/dev/null || true sudo umount -lf "$WORKDIR/rootfs/proc" 2>/dev/null || true sudo umount -lf "$WORKDIR/rootfs/sys" 2>/dev/null || true sudo rm -rf "$WORKDIR" || true ''' } } stage("Checkout") { steps { checkout scm } } stage('Download RootFS') { steps { copyArtifacts( projectName: env.ROOTFS_JOB, selector: lastSuccessful() ) } } stage('Build ISO') { steps { sh ''' chmod +x build-liveiso.sh sudo ./build-liveiso.sh ''' } } } post { always { sh ''' sudo umount -R "$WORKDIR/rootfs" 2>/dev/null || true sudo umount -lf "$WORKDIR/rootfs/dev/pts" 2>/dev/null || true sudo umount -lf "$WORKDIR/rootfs/dev/shm" 2>/dev/null || true sudo umount -lf "$WORKDIR/rootfs/dev" 2>/dev/null || true sudo umount -lf "$WORKDIR/rootfs/proc" 2>/dev/null || true sudo umount -lf "$WORKDIR/rootfs/sys" 2>/dev/null || true ''' } success { archiveArtifacts( artifacts: '*.iso', fingerprint: true ) } } }