![Tom Alexander](/assets/img/avatar_default.png)
This test will grab documents from external sources and compare Organic's parser vs the official org-mode parser to ensure they are parsing the same. This is so we do not introduce large irrelevant documents in the git history and so we do not introduce documents with restrictive licenses into the repository.
49 lines
1.9 KiB
Docker
49 lines
1.9 KiB
Docker
FROM alpine:3.17 AS build
|
|
RUN apk add --no-cache build-base musl-dev git autoconf make texinfo gnutls-dev ncurses-dev gawk
|
|
|
|
|
|
FROM build AS build-emacs
|
|
ARG EMACS_VERSION=emacs-29.1
|
|
RUN git clone --depth 1 --branch $EMACS_VERSION https://git.savannah.gnu.org/git/emacs.git /root/emacs
|
|
WORKDIR /root/emacs
|
|
RUN mkdir /root/dist
|
|
RUN ./autogen.sh
|
|
RUN ./configure --prefix /usr --without-x --without-sound
|
|
RUN make
|
|
RUN make DESTDIR="/root/dist" install
|
|
|
|
|
|
FROM build AS build-org-mode
|
|
ARG ORG_VERSION=7bdec435ff5d86220d13c431e799c5ed44a57da1
|
|
COPY --from=build-emacs /root/dist/ /
|
|
RUN mkdir /root/dist
|
|
# Savannah does not allow fetching specific revisions, so we're going to have to put unnecessary load on their server by cloning main and then checking out the revision we want.
|
|
RUN git clone https://git.savannah.gnu.org/git/emacs/org-mode.git /root/org-mode && git -C /root/org-mode checkout $ORG_VERSION
|
|
# RUN mkdir /root/org-mode && git -C /root/org-mode init --initial-branch=main && git -C /root/org-mode remote add origin https://git.savannah.gnu.org/git/emacs/org-mode.git && git -C /root/org-mode fetch origin $ORG_VERSION && git -C /root/org-mode checkout FETCH_HEAD
|
|
WORKDIR /root/org-mode
|
|
RUN make compile
|
|
RUN make DESTDIR="/root/dist" install
|
|
|
|
|
|
FROM rustlang/rust:nightly-alpine3.17 AS tester
|
|
ENV LANG=en_US.UTF-8
|
|
RUN apk add --no-cache musl-dev ncurses gnutls
|
|
RUN cargo install --locked --no-default-features --features ci-autoclean cargo-cache
|
|
COPY --from=build-emacs /root/dist/ /
|
|
COPY --from=build-org-mode /root/dist/ /
|
|
|
|
ENTRYPOINT ["cargo", "test"]
|
|
|
|
|
|
FROM build as foreign-document-gather
|
|
RUN mkdir /foreign_documents
|
|
|
|
|
|
FROM tester as foreign-document-test
|
|
RUN apk add --no-cache bash
|
|
RUN mkdir /foreign_documents
|
|
COPY --from=build-org-mode /root/org-mode/doc /foreign_documents/org-mode
|
|
COPY docker/organic_test/foreign_document_test_entrypoint.sh /entrypoint.sh
|
|
RUN chmod +x /entrypoint.sh
|
|
ENTRYPOINT ["/entrypoint.sh"]
|