diff --git a/Jenkinsfile b/Jenkinsfile index 15f61d0..58a9856 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -21,25 +21,20 @@ pipeline { buildDiscarder(logRotator(numToKeepStr: '10', artifactNumToKeepStr: '10')) } - stages { stage('Build') { steps { script { - def config = readYaml file: 'buildconfig.yaml' - config.schemes.each { scheme -> - stage("${scheme.name}") { + def builds = readYaml file: 'buildconfig.yaml' + builds.each { build -> + stage("${build.name}") { agent { docker { - image "schemers/${scheme}:${scheme.docker-tag}" + image "build.image" } } - environment { - COMPILE_R7RS="${scheme.scheme}" - SCHEME="${scheme.scheme}" - } - scheme.stages.each { stage -> - stage("${stage}") { + build.stages.each { stage -> + stage("${stage.name}") { catchError(buildResult: 'SUCCESS', stageResult: 'FAILURE') { sh "${stage.cmd}" } @@ -51,6 +46,7 @@ pipeline { } } } + post { always { cleanWs() diff --git a/buildconfig.yaml b/buildconfig.yaml index ffc74b2..01b6aac 100644 --- a/buildconfig.yaml +++ b/buildconfig.yaml @@ -1,14 +1,14 @@ -schemes: -- name: Chibi - scheme: chibi - docker-tag: head - init-cmd: | - apt-get update && apt-get install -y git ca-certificates gcc make libffi-dev - git clone https://github.com/ashinn/chibi-scheme.git --depth=1 - make -j8 -C chibi-scheme - make -j8 -C chibi-scheme install - snow-chibi install retropikzel.compile-r7rs - stages: +builds: + - name: Chibi + image: schemers/chibi:head + stages: + - name: Init + cmd: | + apt-get update && apt-get install -y git ca-certificates gcc make libffi-dev + git clone https://github.com/ashinn/chibi-scheme.git --depth=1 + make -j8 -C chibi-scheme + make -j8 -C chibi-scheme install + snow-chibi install retropikzel.compile-r7rs - name: tap cmd: compile-r7rs -o tap retropikzel/tap/test.scm && ./tap