diff options
Diffstat (limited to 'test/infra/Dockerfile.emba')
-rw-r--r-- | test/infra/Dockerfile.emba | 74 |
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 && \ |