76 lines
2.2 KiB
Groovy
76 lines
2.2 KiB
Groovy
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("Install dependencies") {
|
|
steps {
|
|
sh 'sudo apt install -y squashfs-tools xorriso grub-pc-bin grub-efi-amd64-bin grub-common grub2-common mtools dosfstools zstd pv tree file'
|
|
}
|
|
}
|
|
|
|
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
|
|
)
|
|
}
|
|
}
|
|
} |