From 5582c167f1c62d1d6bd73f8a77b9a32c72d44672 Mon Sep 17 00:00:00 2001 From: retropikzel Date: Fri, 26 Sep 2025 07:44:26 +0300 Subject: [PATCH] Updating tests --- Dockerfile.jenkins | 2 ++ Jenkinsfile | 38 +++++++++++++++----------------------- 2 files changed, 17 insertions(+), 23 deletions(-) create mode 100644 Dockerfile.jenkins diff --git a/Dockerfile.jenkins b/Dockerfile.jenkins new file mode 100644 index 0000000..cbc89e2 --- /dev/null +++ b/Dockerfile.jenkins @@ -0,0 +1,2 @@ +FROM retropikzel1/compile-r7rs +RUN apt-get update && apt-get install -y docker.io diff --git a/Jenkinsfile b/Jenkinsfile index d67a462..d276992 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -2,7 +2,7 @@ def tests = ['primitives', 'array', 'struct', 'addressof', 'callback'] pipeline { agent { - label 'docker-x86_64' + label 'linux' } options { @@ -12,37 +12,29 @@ pipeline { stages { - stage('Cache warmup') { - steps { - sh "docker build --build-arg IMAGE=chibi:head --build-arg SCHEME=chibi --tag=foreign-c-test-chibi -f Dockerfile.test ." + stage('Tests x86_64 Debian') { + agent { + dockerfile { + label 'docker-x86_64' + filename 'Dockerfile.jenkins' + args '--user=root --privileged -v /var/run/docker.sock:/var/run/docker.sock' + } } - } - - stage('Tests') { steps { script { //def implementations = sh(script: 'docker run retropikzel1/compile-r7rs sh -c "compile-r7rs --list-r7rs-schemes"', returnStdout: true).split() - def implementations = "chibi chicken gauche guile kawa mosh racket sagittarius stklos ypsilon".split() + def schemes = "chibi chicken gauche guile kawa mosh racket sagittarius stklos ypsilon".split() - parallel implementations.collectEntries { implementation -> - [(implementation): { - tests.each { test -> - stage("${implementation} ${test}") { - catchError(buildResult: 'SUCCESS', stageResult: 'FAILURE') { - def DOCKERIMG="${implementation}:head" - if("${implementation}" == "chicken") { - DOCKERIMG="chicken:5" - } - sh "docker build --build-arg IMAGE=${DOCKERIMG} --build-arg SCHEME=${implementation} --tag=foreign-c-test-${implementation} -f Dockerfile.test ." - sh "docker run -v ${WORKSPACE}:/workdir -w /workdir -t foreign-c-test-${implementation} sh -c \"timeout 600 make SCHEME=${implementation} TEST=${test} SNOW_CHIBI_ARGS=--always-yes clean install test\"" - } - } - } + schemes.split().each { SCHEME -> + stage("${SCHEME}") { + catchError(buildResult: 'SUCCESS', stageResult: 'FAILURE') { + sh "test-r7s test.scm" } - ] + } } } } } + } }