1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2025-12-06 06:20:55 -08:00

Improve emba integration

* admin/notes/emba: Mention generated compatibility-report.html.

* test/infra/Dockerfile.emba (emacs-base): Install man-db.
(emacs-inotify): Don't install clangd.
(emacs-eglot): Derive from debian:trixie.  Install rust-analyzer.

* test/infra/gitlab-ci.yml (.job-template): Make actions in
after_script more robust.
This commit is contained in:
Michael Albinus 2025-06-08 15:47:44 +02:00
parent 988110fb6d
commit f1766fd2b3
3 changed files with 23 additions and 14 deletions

View file

@ -66,7 +66,11 @@ jobs run scheduled in a pipeline every 8 hours.
The log files for every test job are kept on the server for a week. The log files for every test job are kept on the server for a week.
They can be downloaded from the server, visiting the URL They can be downloaded from the server, visiting the URL
<https://emba.gnu.org/emacs/emacs/-/pipelines>, and selecting the job <https://emba.gnu.org/emacs/emacs/-/pipelines>, and selecting the job
in question. in question. Browse the job artifacts.
Additionally, the artifacts of the 'test-tree-sitter' job contain the
file 'compatibility-report.html', which reports tree-sitter grammars
compatibility status.
Every pipeline generates a JUnit test report for the respective test Every pipeline generates a JUnit test report for the respective test
jobs, which can be inspected on the pipeline web page. This test jobs, which can be inspected on the pipeline web page. This test

View file

@ -29,15 +29,14 @@ FROM debian:bookworm as emacs-base
RUN apt-get update && \ RUN apt-get update && \
apt-get install -y --no-install-recommends -o=Dpkg::Use-Pty=0 \ apt-get install -y --no-install-recommends -o=Dpkg::Use-Pty=0 \
libc-dev gcc g++ make autoconf automake libncurses-dev gnutls-dev \ libc-dev gcc g++ make autoconf automake libncurses-dev gnutls-dev \
libxml2-dev libdbus-1-dev libacl1-dev acl git texinfo gdb \ libxml2-dev libdbus-1-dev libacl1-dev acl git man-db texinfo gdb \
&& rm -rf /var/lib/apt/lists/* && rm -rf /var/lib/apt/lists/*
FROM emacs-base as emacs-inotify FROM emacs-base as emacs-inotify
# We install clangd for Eglot tests.
RUN apt-get update && \ RUN apt-get update && \
apt-get install -y --no-install-recommends -o=Dpkg::Use-Pty=0 \ apt-get install -y --no-install-recommends -o=Dpkg::Use-Pty=0 \
inotify-tools clangd \ inotify-tools \
&& rm -rf /var/lib/apt/lists/* && rm -rf /var/lib/apt/lists/*
COPY . /checkout COPY . /checkout
@ -60,12 +59,19 @@ RUN ./autogen.sh autoconf
RUN ./configure --with-file-notification=gfile RUN ./configure --with-file-notification=gfile
RUN make -j `nproc` bootstrap RUN make -j `nproc` bootstrap
FROM emacs-base as emacs-eglot FROM debian:trixie as emacs-eglot
# Install clangd, tsserver. # This mimics emacs-base.
RUN apt-get update && \ RUN apt-get update && \
apt-get install -y --no-install-recommends -o=Dpkg::Use-Pty=0 \ apt-get install -y --no-install-recommends -o=Dpkg::Use-Pty=0 \
clangd node-typescript \ libc-dev gcc g++ make autoconf automake libncurses-dev gnutls-dev \
libxml2-dev libdbus-1-dev libacl1-dev acl git man-db texinfo gdb \
&& rm -rf /var/lib/apt/lists/*
# Install clangd, tsserver, rust-analyzer.
RUN apt-get update && \
apt-get install -y --no-install-recommends -o=Dpkg::Use-Pty=0 \
clangd node-typescript rust-analyzer cargo \
&& rm -rf /var/lib/apt/lists/* && rm -rf /var/lib/apt/lists/*
# eclipse-jdt-ls is planned as Java language server. # eclipse-jdt-ls is planned as Java language server.
@ -81,9 +87,6 @@ RUN apt-get update && \
# && rm -rf /var/lib/apt/lists/* # && rm -rf /var/lib/apt/lists/*
# RUN snap install core # RUN snap install core
# # Install rust-analyzer.
# RUN snap install rust-analyzer --beta
# # Install typescript-language-server. # # Install typescript-language-server.
# RUN snap install typescript-language-server # RUN snap install typescript-language-server

View file

@ -118,11 +118,13 @@ default:
docker cp ${test_name}:checkout/compatibility-report.html ${test_name} || docker cp ${test_name}:checkout/compatibility-report.html ${test_name} ||
true' true'
- 'test -n "$(docker ps -aq -f name=${test_name})" && docker rm ${test_name}' - 'test -n "$(docker ps -aq -f name=${test_name})" && docker rm ${test_name}'
- 'find ${test_name} - 'test -d ${test_name} &&
find ${test_name}
! \( -name "*.log" -o -name ${EMACS_TEST_JUNIT_REPORT} -o ! \( -name "*.log" -o -name ${EMACS_TEST_JUNIT_REPORT} -o
-name compatibility-report.html \) -type f -delete' -name compatibility-report.html \) -type f -delete'
# BusyBox find does not know -empty. # BusyBox find does not know -empty.
- 'find ${test_name} -type d -depth -exec rmdir {} + 2>/dev/null' - 'test -d ${test_name} &&
find ${test_name} -type d -depth -exec rmdir {} + 2>/dev/null'
.build-template: .build-template:
needs: [] needs: []