emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

master 5ae0c167324: Describe how to run Emba tests locally


From: Michael Albinus
Subject: master 5ae0c167324: Describe how to run Emba tests locally
Date: Thu, 6 Apr 2023 10:32:05 -0400 (EDT)

branch: master
commit 5ae0c16732450603efc1a0c900e5f2721a0f620b
Author: Michael Albinus <michael.albinus@gmx.de>
Commit: Michael Albinus <michael.albinus@gmx.de>

    Describe how to run Emba tests locally
    
    * admin/notes/emba: Describe how to run Emba tests locally.
    
    * test/infra/Dockerfile.emba (emacs-eglot):  Adapt software selection.
---
 admin/notes/emba           | 40 ++++++++++++++++++++++++++++++++++++++++
 test/infra/Dockerfile.emba | 17 +++++++++++------
 2 files changed, 51 insertions(+), 6 deletions(-)

diff --git a/admin/notes/emba b/admin/notes/emba
index 564cc3c54ac..c88b422a4fa 100644
--- a/admin/notes/emba
+++ b/admin/notes/emba
@@ -83,6 +83,46 @@ Lisp packages, Makefiles, scripts, and other software could 
determine
 whether they run on emba by checking for the environment variable
 EMACS_EMBA_CI.
 
+* Running Emba tests locally
+
+As usual in GitLab, the tests run in containers, which could be
+applied also locally.  Unfortunately, the Emba container registry,
+emba.gnu.org:5050, is not accessible publicly.  Instead, the container
+images must be build locally.  Change the current directory to a
+recent Emacs branch, and apply the command
+
+  docker build --target emacs-inotify --tag emacs-inotify \
+    -f test/infra/Dockerfile.emba .
+
+This creates the Debian-based image emacs-inotify, based on the
+instructions in the file Dockerfile.emba.  This image is good for the
+majority of tests.  However, there are also other image build
+instructions like emacs-filenotify-gio, emacs-eglot, emacs-gnustep and
+emacs-native-comp-speed{0,1,2}.  Use the appropriate one.
+
+The image contains a directory "/checkout", which is a copy of your
+local Emacs git repository.  Emacs has been built in this directory
+via "make bootstrap".  In order to use the image, start a container
+like
+
+  docker run --interactive --env EMACS_EMBA_CI=1 --name emacs-inotify \
+    emacs-inotify /bin/sh -i
+
+In this container, change the current directory to "/checkout".  Now
+you can apply all commands known for Emacs, like
+
+  cd /checkout
+  make -C test files-tests.log
+
+While this container runs, you can also access its filesystem from
+your local Emacs via Tramp.  For example, in order to see the result
+of the above test run, open the log file in your local Emacs with
+
+  C-x C-f /docker:emacs-inotify:/checkout/test/lisp/files-tests.log
+
+Note: On local Red Hat-based systems, use "podman" instead of "docker"
+in the shell commands and Tramp file names.
+
 
 This file is part of GNU Emacs.
 
diff --git a/test/infra/Dockerfile.emba b/test/infra/Dockerfile.emba
index d7b0b0d3ded..0c4a2e414bf 100644
--- a/test/infra/Dockerfile.emba
+++ b/test/infra/Dockerfile.emba
@@ -60,17 +60,22 @@ RUN ./autogen.sh autoconf
 RUN ./configure --with-file-notification=gfile
 RUN make bootstrap
 
-FROM emacs-base as emacs-eglot
+# 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 \
-      wget lsb-release software-properties-common gpg \
+      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/*
 
-# A recent clangd.  It must be at least clangd 14, which is in Debian
-# bookworm.
-RUN bash -c "$(wget --no-check-certificate -O - https://apt.llvm.org/llvm.sh)"
-RUN ln -s /usr/bin/clangd-15 /usr/bin/clangd
+# Some language servers.
+RUN apt-get update && \
+    apt-get install -y --no-install-recommends -o=Dpkg::Use-Pty=0 \
+      clangd python3-pylsp python3-autopep8 python3-yapf \
+    && rm -rf /var/lib/apt/lists/*
 
 COPY . /checkout
 WORKDIR /checkout



reply via email to

[Prev in Thread] Current Thread [Next in Thread]