|
|
|
@ -1,12 +1,12 @@ |
|
|
|
|
def version = "" |
|
|
|
|
def amzn_prefix = "/home/bkristinsson/.local" |
|
|
|
|
def timer = currentBuild.getBuildCauses()[0]["shortDescription"].matches("Started by timer") |
|
|
|
|
def build_exists = false |
|
|
|
|
def skip_build = false |
|
|
|
|
|
|
|
|
|
pipeline { |
|
|
|
|
agent any |
|
|
|
|
triggers { |
|
|
|
|
cron('@weekly') |
|
|
|
|
cron('@daily') |
|
|
|
|
} |
|
|
|
|
options { |
|
|
|
|
timestamps() |
|
|
|
@ -65,24 +65,22 @@ pipeline { |
|
|
|
|
sh "git checkout refs/tags/${latest_tag}" |
|
|
|
|
sh "git --no-pager show --oneline -s" |
|
|
|
|
|
|
|
|
|
build_exists = fileExists( |
|
|
|
|
def build_exists = fileExists( |
|
|
|
|
"${env.JENKINS_HOME}/artifacts/emacs-${version}.tar.gz" |
|
|
|
|
) |
|
|
|
|
skip_build = (timer && build_exists) |
|
|
|
|
|
|
|
|
|
echo "latest tag reachable from master: ${latest_tag}" |
|
|
|
|
echo "build for ${version} exists: ${build_exists}" |
|
|
|
|
echo "started by timer: ${timer}" |
|
|
|
|
echo "skip building: ${skip_build}" |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
stage('amzn') { |
|
|
|
|
when { |
|
|
|
|
anyOf { |
|
|
|
|
expression { timer && !build_exists } |
|
|
|
|
expression { !timer } |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
when { expression { skip_build == false } } |
|
|
|
|
steps { |
|
|
|
|
sh "docker build -f amzn/Dockerfile --build-arg PREFIX=${amzn_prefix} --build-arg VERSION=${version} -t emacs-amzn:${version}-amzn ." |
|
|
|
|
sh "docker container create --name emacs_amzn_builder emacs-amzn:${version}-amzn " |
|
|
|
@ -91,12 +89,7 @@ pipeline { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
stage ('deb: build emacs') { |
|
|
|
|
when { |
|
|
|
|
anyOf { |
|
|
|
|
expression { timer && !build_exists } |
|
|
|
|
expression { !timer } |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
when { expression { skip_build == false } } |
|
|
|
|
steps { |
|
|
|
|
sh "docker build -f debian/Dockerfile --build-arg PREFIX=/emacs/target --build-arg VERSION=${version} --target builder -t benediktkr/emacs:builder-${version} ." |
|
|
|
|
sh "docker container create --name emacs_debian_builder benediktkr/emacs:builder-${version}" |
|
|
|
@ -107,27 +100,11 @@ pipeline { |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
stage('deb: container') { |
|
|
|
|
when { |
|
|
|
|
anyOf { |
|
|
|
|
expression { timer && !build_exists } |
|
|
|
|
expression { !timer } |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
when { expression { skip_build == false } } |
|
|
|
|
steps { |
|
|
|
|
sh "docker build -f debian/Dockerfile -t benediktkr/emacs:${version} ." |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
stage('deb: dockerhub') { |
|
|
|
|
when { |
|
|
|
|
anyOf { |
|
|
|
|
expression { timer && !build_exists } |
|
|
|
|
expression { !timer } |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
steps { |
|
|
|
|
sh "docker push benediktkr/emacs:${version}" |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
post { |
|
|
|
@ -139,10 +116,19 @@ pipeline { |
|
|
|
|
sh "cp dist/*/*.tar.gz ${env.JENKINS_HOME}/artifacts" |
|
|
|
|
sh "cp dist/debian/*.deb ${env.JENKINS_HOME}/artifacts" |
|
|
|
|
|
|
|
|
|
script { |
|
|
|
|
if ( !skip_build ) { |
|
|
|
|
sh "docker push benediktkr/emacs:${version}" |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
cleanup { |
|
|
|
|
sh "docker container rm emacs_debian_builder || true" |
|
|
|
|
sh "docker container rm emacs_amzn_builder || true" |
|
|
|
|
script { |
|
|
|
|
if (! skip_build ) { |
|
|
|
|
sh "docker container rm emacs_debian_builder || true" |
|
|
|
|
sh "docker container rm emacs_amzn_builder || true" |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// always { |
|
|
|
|