node { gitUrl = 'https://source.puri.sm/Librem5/image-builder.git' branch = 'master' artifacts = "checksums,${params.board}.img.xz,tmp/*-report.log,files/meta.yml" build_on_x86 = [ 'imx6', 'qemu-x86_64' ] qcow2_builds = [ 'qemu-x86_64' ] separate_boot_image = [] currentBuild.description = "${build_type} ${params.board} ${params.dist} image" parameters { string(name: 'board', defaultValue: "imx6", description: 'What board type to build for?') string(name: 'dist', defaultValue: "buster+ci", description: 'What distribuition to build for?') string(name: 'build_type', defaultValue: "unstable", description: 'What type of build is this?') string(name: 'publish', defaultValue: "false", description: 'Should the image get published?') } if (build_on_x86.contains(params.board)) { nodename = 'x86' } else { // Fall back to master if we don't know better nodename = 'master' } if (qcow2_builds.contains(params.board)) { artifacts += ",${params.board}.qcow2" } if (separate_boot_image.contains(params.board)) { artifacts += ",${params.board}-boot.img.xz" } node (nodename) { stage('Setup') { git url: gitUrl, branch: branch } stage('Clean') { sh "make DIST='${params.dist}' BOARD='${params.board}' TYPE='${params.build_type}' clean" } stage('check') { sh "make DIST='${params.dist}' BOARD='${params.board}' TYPE='${params.build_type}' check" } stage('Build') { sh "make DIST='${params.dist}' BOARD='${params.board}' TYPE='${params.build_type}'" } stage('Publish') { if( "${params.publish}"=="true" ) { sh "make DIST='${params.dist}' BOARD='${params.board}' TYPE='${params.build_type}' sha256sums" sh "bin/publish_ci_files -t image -T ${params.build_type} ${params.board}.img.xz sha256sums" } else { echo 'This image will not be published' } } stage('Results') { archive artifacts } stage( 'Clean up' ) { deleteDir() /* clean up our workspace */ } } }