diff --git a/Dockerfile.jenkins b/Dockerfile.jenkins index ac78374..b1f118b 100644 --- a/Dockerfile.jenkins +++ b/Dockerfile.jenkins @@ -1,2 +1,5 @@ FROM alpine -RUN apk add make docker +RUN apk add make docker git +RUN git clone https://codeberg.org/retropikzel/test-r7rs.git --depth=1 +RUN cd test-r7rs && ./configure && make && make install +COPY --from=schemers/chibi:alpine-head /usr/local /usr/local diff --git a/Dockerfile.test b/Dockerfile.test deleted file mode 100644 index 3e38bb0..0000000 --- a/Dockerfile.test +++ /dev/null @@ -1,29 +0,0 @@ -ARG SCHEME=chibi -ARG IMAGE=chibi:latest -FROM docker.io/schemers/${IMAGE} -ARG SCHEME=chibi -ENV COMPILE_R7RS=${SCHEME} - -RUN apt-get update && apt-get install -y \ - build-essential libffi-dev libcurl4-openssl-dev curl guile-3.0 \ - git ca-certificates - -COPY --from=schemers/loko:head /usr/local /usr/loko -RUN cp -r /usr/loko/* /usr/local/ -COPY --from=schemers/chibi:head /usr/local /usr/chibi -RUN cp -r /usr/chibi/lib/* /usr/local/lib/ -RUN cp -r /usr/chibi/share/* /usr/local/share/ -RUN cp -r /usr/chibi/bin/*chibi* /usr/local/bin/ -RUN ldconfig - -ADD https://codeberg.org/retropikzel/compile-r7rs/raw/branch/main/compile-r7rs . -RUN install compile-r7rs /usr/local/bin/compile-r7rs - -RUN mkdir -p /root/.snow && echo "()" > /root/.snow/config.scm - -WORKDIR /workdir -ARG SCHEME=chibi -ENV COMPILE_R7RS=${SCHEME} -COPY Makefile . -COPY retropikzel retropikzel/ - diff --git a/Makefile b/Makefile index 3363897..002e683 100644 --- a/Makefile +++ b/Makefile @@ -28,15 +28,18 @@ all: build build: retropikzel/${LIBRARY}/LICENSE retropikzel/${LIBRARY}/VERSION echo "
$$(cat retropikzel/${LIBRARY}/README.md)" > ${README}
- snow-chibi package --always-yes --version=${VERSION} --authors=${AUTHOR} --doc=${README} --description="${DESCRIPTION}" ${LIBRARY_FILE}
-
-index:
- snow-chibi index ${PKG}
+ snow-chibi package \
+ --always-yes \
+ --version=${VERSION} \
+ --authors=${AUTHOR} \
+ --doc=${README} \
+ --description="${DESCRIPTION}" \
+ ${LIBRARY_FILE}
install:
snow-chibi install --impls=${SCHEME} --always-yes ${PKG}
-test: index build
+testfiles: build
rm -rf .tmp
mkdir -p .tmp
# R6RS testfiles
@@ -45,17 +48,13 @@ test: index build
# R7RS testfiles
echo "(import (scheme base) (scheme write) (scheme read) (scheme char) (scheme file) (scheme process-context) (srfi 64) (retropikzel ${LIBRARY}))" > .tmp/test.scm
cat ${TESTFILE} >> .tmp/test.scm
- # Tests
- cd .tmp && ${SNOW} srfi.64
- cd .tmp && ${SNOW} foreign.c
- cd .tmp && ${SNOW} retropikzel.${LIBRARY}
- cd .tmp && akku install akku-r7rs 2> /dev/null
- cd .tmp && CSC_OPTIONS="-L -lcurl -L -lSDL2 -L -lSDL2_image" COMPILE_R7RS=${SCHEME} compile-r7rs ${LIB_PATHS} -o test test.${SFX}
- cd .tmp && ./test
-test-docker:
- docker build --build-arg SCHEME=${SCHEME} --build-arg IMAGE=${IMAGE} --tag=foreign-c-library-test-${SCHEME} -f Dockerfile.test .
- docker run -v "${PWD}/logs:/workdir/logs" -w /workdir -t foreign-c-library-test-${SCHEME} sh -c "make SCHEME=${SCHEME} LIBRARY=${LIBRARY} RNRS=${RNRS} test"
+test: testfiles
+ cd .tmp && COMPILE_R7RS=${SCHEME} compile-r7rs -o test-program test.${SFX}
+ cd .tmp && ./test-program
+
+test-docker: testfiles
+ cd .tmp && SNOW_PACKAGES="srfi.64 foreign.c" COMPILE_R7RS=${SCHEME} test-r7rs -o test-program test.${SFX} ${PKG}
clean:
git clean -X -f