antosaio/Jenkinsfile

43 lines
1.4 KiB
Groovy

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
'''
}
}
}
}