From b898c6b09b3754c19c045c19ee88557d9309c097 Mon Sep 17 00:00:00 2001 From: dany Date: Fri, 5 Aug 2022 11:21:58 +0200 Subject: [PATCH] Add 'Jenkinsfile' --- Jenkinsfile | 54 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 Jenkinsfile diff --git a/Jenkinsfile b/Jenkinsfile new file mode 100644 index 0000000..a397bdf --- /dev/null +++ b/Jenkinsfile @@ -0,0 +1,54 @@ +def remote = [:] +remote.name = 'workstation' +remote.host = 'workstation' +remote.user = 'dany' +remote.identityFile = '/var/jenkins_home/.ssh/id_rsa' +remote.allowAnyHosts = true +remote.agent = false +remote.logLevel = 'INFO' +pipeline{ + agent { node{ label'master' }} + parameters { + string(defaultValue: "xsangle", name: 'dockerhub_user', description: 'Docker hub username') + string(defaultValue: "", name: 'dockerhub_pat', description: 'Docker hub Personal Access Token') + } + 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') { + steps { + sshCommand remote: remote, command: ''' + set -e + export WORKSPACE=$(realpath "./jenkins/workspace/antosaio") + cd $WORKSPACE + # login to dockerhub + echo $dockerhub_pat | docker login --username $dockerhub_user --password-stdin + docker run --rm --privileged docker/binfmt:a7996909642ee92942dcd6cff44b9b95f08dad64 + for arch in arm arm64 amd64 ; do + docker buildx build \ + --push \ + --platform $arch \ + --build-arg ARCH=$arch \ + --tag xsangle/antosaio:latest \ + . + done + ''' + } + } + } +} \ No newline at end of file