Improving testing
This commit is contained in:
parent
43adc1b04f
commit
926bfed895
|
|
@ -0,0 +1,46 @@
|
|||
ARG SCHEME=chibi
|
||||
ARG IMAGE=${SCHEME}:head
|
||||
FROM debian:trixie AS build
|
||||
RUN apt-get update && apt-get install -y \
|
||||
git ca-certificates make gcc libffi-dev libffi-dev wget xz-utils
|
||||
RUN mkdir ${HOME}/.snow && echo "()" > ${HOME}/.snow/config.scm
|
||||
WORKDIR /build
|
||||
RUN wget https://gitlab.com/-/project/6808260/uploads/094ce726ce3c6cf8c14560f1e31aaea0/akku-1.1.0.amd64-linux.tar.xz \
|
||||
&& tar -xf akku-1.1.0.amd64-linux.tar.xz \
|
||||
&& mv akku-1.1.0.amd64-linux akku
|
||||
RUN git clone https://github.com/ashinn/chibi-scheme.git --depth=1
|
||||
RUN git clone https://codeberg.org/retropikzel/compile-scheme.git --depth=1
|
||||
RUN git clone https://codeberg.org/foreign-c/foreign-c.git --depth=1
|
||||
WORKDIR /build/chibi-scheme
|
||||
RUN make
|
||||
RUN make install
|
||||
WORKDIR /build/compile-scheme
|
||||
RUN make build-gauche
|
||||
WORKDIR /build
|
||||
RUN akku install chez-srfi akku-r7rs "(foreign c)"
|
||||
|
||||
ARG SCHEME=chibi
|
||||
ARG IMAGE=${SCHEME}:head
|
||||
FROM schemers/${IMAGE}
|
||||
RUN apt-get update && apt-get install -y make gcc libffi-dev libcurl4 gauche
|
||||
RUN mkdir ${HOME}/.snow && echo "()" > ${HOME}/.snow/config.scm
|
||||
COPY --from=build /build /build
|
||||
ARG SCHEME=chibi
|
||||
WORKDIR /build/compile-scheme
|
||||
RUN make install
|
||||
WORKDIR /build/chibi-scheme
|
||||
RUN make install
|
||||
WORKDIR /build/chibi-scheme
|
||||
RUN make install
|
||||
WORKDIR /build/akku
|
||||
RUN bash install.sh
|
||||
ENV PATH=/root/.local/bin:${PATH}
|
||||
RUN akku update
|
||||
WORKDIR /
|
||||
RUN snow-chibi install --impls=${SCHEME} --always-yes "(srfi 64)"
|
||||
RUN snow-chibi install --impls=${SCHEME} --always-yes "(foreign c)"
|
||||
WORKDIR /workdir
|
||||
COPY Makefile .
|
||||
COPY retropikzel retropikzel/
|
||||
COPY /build/.akku .akku
|
||||
|
||||
|
|
@ -1,14 +0,0 @@
|
|||
FROM debian:trixie
|
||||
RUN apt-get update && apt-get install -y \
|
||||
build-essential make docker.io git ca-certificates libffi-dev
|
||||
RUN git clone https://github.com/ashinn/chibi-scheme.git --depth=1
|
||||
RUN git clone https://codeberg.org/retropikzel/compile-r7rs.git --depth=1 --branch=silence
|
||||
WORKDIR /chibi-scheme
|
||||
RUN make
|
||||
RUN make install
|
||||
WORKDIR /compile-r7rs
|
||||
RUN snow-chibi install --always-yes "(foreign c)"
|
||||
RUN snow-chibi install --always-yes "(srfi 170)"
|
||||
RUN make build-chibi
|
||||
RUN make install
|
||||
|
||||
|
|
@ -1,36 +0,0 @@
|
|||
ARG SCHEME=chibi
|
||||
ARG IMAGE=${SCHEME}:head
|
||||
FROM debian:trixie AS cache
|
||||
RUN apt-get update && apt-get install -y git ca-certificates make gcc libffi-dev
|
||||
RUN mkdir ${HOME}/.snow && echo "()" > ${HOME}/.snow/config.scm
|
||||
WORKDIR /cache
|
||||
RUN git clone https://github.com/ashinn/chibi-scheme.git --depth=1
|
||||
RUN git clone https://codeberg.org/retropikzel/compile-r7rs.git --depth=1 --branch=silence
|
||||
WORKDIR /cache/chibi-scheme
|
||||
RUN make
|
||||
RUN make install
|
||||
WORKDIR /cache/compile-r7rs
|
||||
RUN snow-chibi install --always-yes "(foreign c)"
|
||||
RUN snow-chibi install --always-yes "(srfi 170)"
|
||||
RUN make build-chibi
|
||||
|
||||
ARG SCHEME=chibi
|
||||
ARG IMAGE=${SCHEME}:head
|
||||
FROM schemers/${IMAGE}
|
||||
RUN apt-get update && apt-get install -y make gcc libffi-dev
|
||||
RUN mkdir ${HOME}/.snow && echo "()" > ${HOME}/.snow/config.scm
|
||||
COPY --from=cache /cache /cache
|
||||
COPY --from=cache /usr/local/share/snow /usr/local/share/snow
|
||||
COPY --from=cache /usr/local/lib/snow /usr/local/lib/snow
|
||||
ARG SCHEME=chibi
|
||||
WORKDIR /cache/compile-r7rs
|
||||
RUN make install
|
||||
WORKDIR /cache/chibi-scheme
|
||||
RUN make install
|
||||
WORKDIR /
|
||||
RUN snow-chibi install --impls=${SCHEME} --always-yes "(srfi 64)"
|
||||
RUN snow-chibi install --impls=${SCHEME} --always-yes "(foreign c)"
|
||||
WORKDIR /workdir
|
||||
COPY Makefile .
|
||||
COPY retropikzel retropikzel/
|
||||
|
||||
13
Makefile
13
Makefile
|
|
@ -29,8 +29,12 @@ install:
|
|||
uninstall:
|
||||
-snow-chibi remove --impls=${SCHEME} ${PKG}
|
||||
|
||||
tmpdir:
|
||||
.akku:
|
||||
akku install chez-srfi akku-r7rs "(foreign c)"
|
||||
|
||||
tmpdir: .akku
|
||||
mkdir -p ${TMPDIR}
|
||||
cp -r .akku ${TMPDIR}/
|
||||
cp ${TESTFILE} ${TMPDIR}/
|
||||
mkdir -p ${TMPDIR}/retropikzel
|
||||
cp -r retropikzel/${LIBRARY} ${TMPDIR}/retropikzel/
|
||||
|
|
@ -43,19 +47,18 @@ test-r7rs: tmpdir
|
|||
cd ${TMPDIR} && printf "\n" | ./test-r7rs
|
||||
|
||||
test-r7rs-docker:
|
||||
docker build --build-arg IMAGE=${DOCKERIMG} --build-arg SCHEME=${SCHEME} --tag=foreign-c-library-test-${SCHEME} -f Dockerfile.test .
|
||||
docker build --build-arg IMAGE=${DOCKERIMG} --build-arg SCHEME=${SCHEME} --tag=foreign-c-library-test-${SCHEME} .
|
||||
docker run -t foreign-c-library-test-${SCHEME} sh -c "make SCHEME=${SCHEME} test-r7rs"
|
||||
|
||||
test-r6rs: tmpdir
|
||||
cp -r ../foreign-c/foreign ${TMPDIR}/
|
||||
cd ${TMPDIR} && echo "(import (rnrs) (retropikzel ${LIBRARY}) (srfi :64))" > test-r6rs.sps
|
||||
cd ${TMPDIR} && cat retropikzel/${LIBRARY}/test.scm >> test-r6rs.sps
|
||||
cd ${TMPDIR} && akku install chez-srfi akku-r7rs
|
||||
cd ${TMPDIR} && akku install
|
||||
cd ${TMPDIR} && COMPILE_R7RS=${SCHEME} compile-scheme -I .akku/lib -o test-r6rs test-r6rs.sps
|
||||
cd ${TMPDIR} && ./test-r6rs
|
||||
|
||||
test-r6rs-docker:
|
||||
docker build --build-arg IMAGE=${DOCKERIMG} --build-arg SCHEME=${SCHEME} --tag=foreign-c-library-test-${SCHEME} -f Dockerfile.test .
|
||||
docker build --build-arg IMAGE=${DOCKERIMG} --build-arg SCHEME=${SCHEME} --tag=foreign-c-library-test-${SCHEME} .
|
||||
docker run -t foreign-c-library-test-${SCHEME} sh -c "make SCHEME=${SCHEME} test-r6rs"
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue