summaryrefslogtreecommitdiff
path: root/test/infra/Dockerfile.emba
diff options
context:
space:
mode:
Diffstat (limited to 'test/infra/Dockerfile.emba')
-rw-r--r--test/infra/Dockerfile.emba74
1 files changed, 74 insertions, 0 deletions
diff --git a/test/infra/Dockerfile.emba b/test/infra/Dockerfile.emba
index 84f2d2f1806..d79072b06b5 100644
--- a/test/infra/Dockerfile.emba
+++ b/test/infra/Dockerfile.emba
@@ -60,6 +60,80 @@ RUN ./autogen.sh autoconf
RUN ./configure --with-file-notification=gfile
RUN make bootstrap
+# Debian bullseye doesn't provide proper packages. So we use Debian
+# sid for this.
+FROM debian:sid as emacs-eglot
+
+# This corresponds to emacs-base.
+RUN apt-get update && \
+ apt-get install -y --no-install-recommends -o=Dpkg::Use-Pty=0 \
+ libc-dev gcc g++ make autoconf automake libncurses-dev gnutls-dev \
+ libdbus-1-dev libacl1-dev acl git texinfo gdb \
+ && rm -rf /var/lib/apt/lists/*
+
+# Install clangd.
+RUN apt-get update && \
+ apt-get install -y --no-install-recommends -o=Dpkg::Use-Pty=0 \
+ clangd \
+ && rm -rf /var/lib/apt/lists/*
+
+COPY . /checkout
+WORKDIR /checkout
+RUN ./autogen.sh autoconf
+RUN ./configure
+RUN make bootstrap
+
+# Debian bullseye doesn't provide proper packages. So we use Debian
+# sid for this.
+FROM debian:sid as emacs-tree-sitter
+
+# This corresponds to emacs-base.
+RUN apt-get update && \
+ apt-get install -y --no-install-recommends -o=Dpkg::Use-Pty=0 \
+ libc-dev gcc g++ make autoconf automake libncurses-dev gnutls-dev \
+ libdbus-1-dev libacl1-dev acl git texinfo gdb \
+ && rm -rf /var/lib/apt/lists/*
+
+# Install tree-sitter library.
+RUN apt-get update && \
+ apt-get install -y --no-install-recommends -o=Dpkg::Use-Pty=0 \
+ libtree-sitter0 libtree-sitter-dev \
+ && rm -rf /var/lib/apt/lists/*
+
+COPY . /checkout
+WORKDIR /checkout
+RUN ./autogen.sh autoconf
+RUN ./configure --with-tree-sitter
+RUN make bootstrap
+
+# Install language grammars.
+RUN mkdir -p /root/.emacs.d/tree-sitter
+RUN git config --global http.sslverify "false"
+# See https://github.com/emacs-tree-sitter/tree-sitter-langs/tree/master/repos
+RUN src/emacs -Q --batch \
+ --eval '(setq \
+ treesit-extra-load-path (list "/root/.emacs.d/tree-sitter") \
+ treesit-language-source-alist \
+ (quote ((bash "https://github.com/tree-sitter/tree-sitter-bash") \
+ (c "https://github.com/tree-sitter/tree-sitter-c") \
+ (cpp "https://github.com/tree-sitter/tree-sitter-cpp") \
+ (css "https://github.com/tree-sitter/tree-sitter-css") \
+ (elixir "https://github.com/elixir-lang/tree-sitter-elixir") \
+ (go "https://github.com/tree-sitter/tree-sitter-go") \
+ (gomod "https://github.com/camdencheek/tree-sitter-go-mod") \
+ (heex "https://github.com/phoenixframework/tree-sitter-heex") \
+ (html "https://github.com/tree-sitter/tree-sitter-html") \
+ (java "https://github.com/tree-sitter/tree-sitter-java") \
+ (javascript "https://github.com/tree-sitter/tree-sitter-javascript") \
+ (json "https://github.com/tree-sitter/tree-sitter-json") \
+ (lua "https://github.com/tree-sitter-grammars/tree-sitter-lua") \
+ (python "https://github.com/tree-sitter/tree-sitter-python") \
+ (ruby "https://github.com/tree-sitter/tree-sitter-ruby") \
+ (tsx "https://github.com/tree-sitter/tree-sitter-typescript" "master" "tsx/src") \
+ (typescript "https://github.com/tree-sitter/tree-sitter-typescript" "master" "typescript/src"))))' \
+ --eval '(dolist (lang (mapcar (quote car) treesit-language-source-alist)) \
+ (treesit-install-language-grammar lang "/root/.emacs.d/tree-sitter"))'
+
FROM emacs-base as emacs-gnustep
RUN apt-get update && \