From 93f78aa11c49533948f9523d41355afe8b69c31e Mon Sep 17 00:00:00 2001 From: retropikzel Date: Wed, 22 Jul 2026 16:05:22 +0300 Subject: [PATCH] New builds --- Jenkinsfile | 58 +++++++++++++++--------------------------------- buildconfig.yaml | 14 ++++++++++++ 2 files changed, 32 insertions(+), 40 deletions(-) create mode 100644 buildconfig.yaml diff --git a/Jenkinsfile b/Jenkinsfile index f959d2b..0ef8862 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -1,11 +1,6 @@ pipeline { agent { - dockerfile { - label 'docker-x86_64' - filename 'Dockerfile.jenkins' - args '-t --user=root --privileged -v /var/run/docker.sock:/var/run/docker.sock' - reuseNode true - } + label 'docker' } triggers { @@ -26,43 +21,26 @@ pipeline { buildDiscarder(logRotator(numToKeepStr: '10', artifactNumToKeepStr: '10')) } - environment { - R6RS_SCHEMES='capyscheme chezscheme guile ikarus ironscheme loko mosh racket sagittarius ypsilon' - R7RS_SCHEMES='capyscheme chibi chicken cyclone foment gauche gambit kawa loko meevax mosh racket sagittarius skint stklos tr7 ypsilon' - LIBRARIES='tap junit debug lambda-utils ctrf mouth string url-encoding leb128 hardware-info' - } - stages { - stage('Parallel') { - parallel { - stage('R6RS tests') { - steps { - script { - env.LIBRARIES.split().each { LIBRARY -> - stage("${LIBRARY}") { - env.R6RS_SCHEMES.split().each { SCHEME -> - stage("${SCHEME}") { - catchError(buildResult: 'SUCCESS', stageResult: 'FAILURE') { - sh "timeout 600 make SCHEME=${SCHEME} LIBRARY=${LIBRARY} RNRS=r6rs test-docker" - } - } - } + stage('Build') { + steps { + def config = readYaml file: buildconfig.yaml + script { + config.schemes.each { scheme -> + stage("${scheme}") { + agent { + docker { + image "schemers/${scheme}:${scheme.docker-tag}" } } - } - } - } - stage('R7RS tests') { - steps { - script { - env.LIBRARIES.split().each { LIBRARY -> - stage("${LIBRARY}") { - env.R7RS_SCHEMES.split().each { SCHEME -> - stage("${SCHEME}") { - catchError(buildResult: 'SUCCESS', stageResult: 'FAILURE') { - sh "timeout 600 make SCHEME=${SCHEME} LIBRARY=${LIBRARY} RNRS=r7rs test-docker" - } - } + environment { + COMPILE_R7RS="${scheme}" + SCHEME="${scheme}" + } + scheme.stages.each { stage -> + stage("${stage}") { + catchError(buildResult: 'SUCCESS', stageResult: 'FAILURE') { + sh "${stage.cmd}" } } } diff --git a/buildconfig.yaml b/buildconfig.yaml new file mode 100644 index 0000000..db949fc --- /dev/null +++ b/buildconfig.yaml @@ -0,0 +1,14 @@ +schemes: +- 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: + - name: tap + cmd: compile-r7rs -o tap retropikzel/tap/test.scm && ./tap + +