pipeline{ agent { node{ label'workstation' }} options { // Limit build history with buildDiscarder option: // daysToKeepStr: history is only kept up to this many days. // numToKeepStr: only this many build logs are kept. // artifactDaysToKeepStr: artifacts are only kept up to this many days. // artifactNumToKeepStr: only this many builds have their artifacts kept. buildDiscarder(logRotator(numToKeepStr: "1")) // Enable timestamps in build log console timestamps() // Maximum time to run the whole pipeline before canceling it timeout(time: 1, unit: 'HOURS') // Use Jenkins ANSI Color Plugin for log console ansiColor('xterm') // Limit build concurrency to 1 per branch disableConcurrentBuilds() } stages { stage('Build all') { steps { copyArtifacts(projectName: 'gitea-sync/antos-appimage/master', target: 'antos-release'); sh'''#! /bin/bash set -e cd $WORKSPACE tree antos-release # docker run --rm --privileged docker/binfmt:a7996909642ee92942dcd6cff44b9b95f08dad64 for dir in antos-release/build/* ; do tag=$(basename $dir) echo "BUILD TAG $tag" docker buildx build \ --push \ --build-arg tag=$tag \ --platform linux/arm/v7,linux/arm64/v8,linux/amd64 \ --tag xsangle/antosaio:$tag . done ''' } } } }