Bring things to new compile-r7rs

This commit is contained in:
retropikzel 2025-07-19 12:28:19 +03:00
parent 1b49431a3e
commit 306533561d
3 changed files with 24 additions and 21 deletions

4
Jenkinsfile vendored
View File

@ -20,14 +20,14 @@ pipeline {
stage("${implementation} install") { stage("${implementation} install") {
catchError(buildResult: 'SUCCESS', stageResult: 'FAILURE') { catchError(buildResult: 'SUCCESS', stageResult: 'FAILURE') {
sh "docker build --build-arg SCHEME=${implementation} --tag=r7rs-pffi-test-${implementation} -f dockerfiles/Dockerfile.snow-chibi-install-test ." sh "docker build --build-arg SCHEME=${implementation} --tag=r7rs-pffi-test-${implementation} -f dockerfiles/Dockerfile.snow-chibi-install-test ."
sh "docker run -v ${WORKSPACE}:/workdir -w /workdir -t r7rs-pffi-test-${implementation} sh -c \"make clean package install-jenkins SCHEME=${implementation} && cp tests/hello.scm /tmp/ && cd /tmp && SCHEME=${implementation} compile-r7rs -o hello hello.scm && ./hello\"" sh "docker run -v ${WORKSPACE}:/workdir -w /workdir -t r7rs-pffi-test-${implementation} sh -c \"timeout 600 make clean package install-jenkins SCHEME=${implementation} && cp tests/hello.scm /tmp/ && cd /tmp && SCHEME=${implementation} compile-r7rs -o hello hello.scm && ./hello\""
} }
} }
tests.each { test -> tests.each { test ->
stage("${implementation} ${test}") { stage("${implementation} ${test}") {
catchError(buildResult: 'SUCCESS', stageResult: 'FAILURE') { catchError(buildResult: 'SUCCESS', stageResult: 'FAILURE') {
sh "docker build --build-arg SCHEME=${implementation} --tag=r7rs-pffi-test-${implementation} -f dockerfiles/Dockerfile.test ." sh "docker build --build-arg SCHEME=${implementation} --tag=r7rs-pffi-test-${implementation} -f dockerfiles/Dockerfile.test ."
sh "docker run -v ${WORKSPACE}:/workdir -w /workdir -t r7rs-pffi-test-${implementation} sh -c \"make SCHEME=${implementation} TEST=${test} clean test\"" sh "docker run -v ${WORKSPACE}:/workdir -w /workdir -t r7rs-pffi-test-${implementation} sh -c \"timeout 600 make SCHEME=${implementation} TEST=${test} clean test\""
} }
} }
} }

View File

@ -77,8 +77,8 @@ test-compile-r7rs-wine:
wine ./${TEST}.bat wine ./${TEST}.bat
test-docker: test-docker:
docker build --build-arg SCHEME=${SCHEME} --tag=r7rs-pffi-test-${SCHEME} -f dockerfiles/Dockerfile.test . docker build --build-arg SCHEME=${SCHEME} --tag=foreign-c-test-${SCHEME} -f dockerfiles/Dockerfile.test .
docker run -it -v "${PWD}:/workdir" -w /workdir -t r7rs-pffi-test-${SCHEME} sh -c "make SCHEME=${SCHEME} TEST=${TEST} test" docker run -it -v "${PWD}:/workdir" -w /workdir -t foreign-c-test-${SCHEME} sh -c "make SCHEME=${SCHEME} TEST=${TEST} test"
tmp/test/libtest.o: tests/c-src/libtest.c tmp/test/libtest.o: tests/c-src/libtest.c
mkdir -p tmp/test mkdir -p tmp/test

View File

@ -1,25 +1,28 @@
ARG SCHEME=chibi ARG SCHEME=chibi
FROM debian:bookworm AS build FROM schemers/chibi:head AS build
RUN apt-get update && apt-get install -y git make chicken-bin build-essential RUN apt-get update && apt-get install -y \
RUN chicken-install r7rs ca-certificates \
RUN git clone https://github.com/Retropikzel/compile-r7rs.git --depth=1 git \
RUN ls make \
RUN cd compile-r7rs && make && make install build-essential
RUN git clone https://github.com/ashinn/chibi-scheme.git --depth=1
RUN cd chibi-scheme && make -j 32
RUN git clone https://gitea.scheme.org/Retropikzel/compile-r7rs.git --depth=1
RUN cd compile-r7rs --branch=retropikzel-dependency-fixes && make
ARG SCHEME=chibi ARG SCHEME=chibi
FROM schemers/${SCHEME}:head FROM schemers/${SCHEME}:head
RUN apt-get update && apt-get install -y \ RUN apt-get update && apt-get install -y \
build-essential \ build-essential \
git \ git \
make \ ca-certificates \
libffi8 \ make \
libgc1 \ libffi-dev
libssl3 \ RUN mkdir ${HOME}/.snow && echo "()" > ${HOME}/.snow/config.scm
libuv1 \ COPY --from=build /chibi-scheme /chibi-scheme
build-essential \ RUN cd /chibi-scheme && make -j 8 install
libffi-dev \ COPY --from=build /compile-r7rs /compile-r7rs
libmbedtls-dev RUN cd /compile-r7rs && make install
COPY --from=build /usr/local/bin/compile-r7rs /usr/local/bin/compile-r7rs
ARG SCHEME=chibi ARG SCHEME=chibi
ENV COMPILE_R7RS=${SCHEME} ENV COMPILE_R7RS=${SCHEME}
RUN mkdir -p ${HOME}/.snow && echo "()" > ${HOME}/.snow/config.scm RUN mkdir -p ${HOME}/.snow && echo "()" > ${HOME}/.snow/config.scm