50 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Docker
		
	
	
	
	
	
			
		
		
	
	
			50 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 coreutils
 | |
| RUN mkdir /foreign_documents
 | |
| COPY --from=build-org-mode /root/org-mode /foreign_documents/org-mode
 | |
| COPY --from=build-emacs /root/emacs /foreign_documents/emacs
 | |
| COPY foreign_document_test_entrypoint.sh /entrypoint.sh
 | |
| RUN chmod +x /entrypoint.sh
 | |
| ENTRYPOINT ["/entrypoint.sh"]
 | 
