aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Albinus2025-06-08 15:47:44 +0200
committerMichael Albinus2025-06-08 15:47:44 +0200
commitf1766fd2b35b70093bb4caab79a8dcdfec666ee0 (patch)
treec32e362fec77d3c67e8b68a85aff954c47acd2de
parent988110fb6d13ce263574c8f4610a89a38ebb6835 (diff)
downloademacs-f1766fd2b35b70093bb4caab79a8dcdfec666ee0.tar.gz
emacs-f1766fd2b35b70093bb4caab79a8dcdfec666ee0.zip
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.
-rw-r--r--admin/notes/emba6
-rw-r--r--test/infra/Dockerfile.emba21
-rw-r--r--test/infra/gitlab-ci.yml10
3 files changed, 23 insertions, 14 deletions
diff --git a/admin/notes/emba b/admin/notes/emba
index cf4184ccc92..515edd3435f 100644
--- a/admin/notes/emba
+++ b/admin/notes/emba
@@ -66,7 +66,11 @@ jobs run scheduled in a pipeline every 8 hours.
66The log files for every test job are kept on the server for a week. 66The log files for every test job are kept on the server for a week.
67They can be downloaded from the server, visiting the URL 67They can be downloaded from the server, visiting the URL
68<https://emba.gnu.org/emacs/emacs/-/pipelines>, and selecting the job 68<https://emba.gnu.org/emacs/emacs/-/pipelines>, and selecting the job
69in question. 69in question. Browse the job artifacts.
70
71Additionally, the artifacts of the 'test-tree-sitter' job contain the
72file 'compatibility-report.html', which reports tree-sitter grammars
73compatibility status.
70 74
71Every pipeline generates a JUnit test report for the respective test 75Every pipeline generates a JUnit test report for the respective test
72jobs, which can be inspected on the pipeline web page. This test 76jobs, which can be inspected on the pipeline web page. This test
diff --git a/test/infra/Dockerfile.emba b/test/infra/Dockerfile.emba
index 8078dd77312..3944f7cca7e 100644
--- a/test/infra/Dockerfile.emba
+++ b/test/infra/Dockerfile.emba
@@ -29,15 +29,14 @@ FROM debian:bookworm as emacs-base
29RUN apt-get update && \ 29RUN apt-get update && \
30 apt-get install -y --no-install-recommends -o=Dpkg::Use-Pty=0 \ 30 apt-get install -y --no-install-recommends -o=Dpkg::Use-Pty=0 \
31 libc-dev gcc g++ make autoconf automake libncurses-dev gnutls-dev \ 31 libc-dev gcc g++ make autoconf automake libncurses-dev gnutls-dev \
32 libxml2-dev libdbus-1-dev libacl1-dev acl git texinfo gdb \ 32 libxml2-dev libdbus-1-dev libacl1-dev acl git man-db texinfo gdb \
33 && rm -rf /var/lib/apt/lists/* 33 && rm -rf /var/lib/apt/lists/*
34 34
35FROM emacs-base as emacs-inotify 35FROM emacs-base as emacs-inotify
36 36
37# We install clangd for Eglot tests.
38RUN apt-get update && \ 37RUN apt-get update && \
39 apt-get install -y --no-install-recommends -o=Dpkg::Use-Pty=0 \ 38 apt-get install -y --no-install-recommends -o=Dpkg::Use-Pty=0 \
40 inotify-tools clangd \ 39 inotify-tools \
41 && rm -rf /var/lib/apt/lists/* 40 && rm -rf /var/lib/apt/lists/*
42 41
43COPY . /checkout 42COPY . /checkout
@@ -60,12 +59,19 @@ RUN ./autogen.sh autoconf
60RUN ./configure --with-file-notification=gfile 59RUN ./configure --with-file-notification=gfile
61RUN make -j `nproc` bootstrap 60RUN make -j `nproc` bootstrap
62 61
63FROM emacs-base as emacs-eglot 62FROM debian:trixie as emacs-eglot
64 63
65# Install clangd, tsserver. 64# This mimics emacs-base.
66RUN apt-get update && \ 65RUN apt-get update && \
67 apt-get install -y --no-install-recommends -o=Dpkg::Use-Pty=0 \ 66 apt-get install -y --no-install-recommends -o=Dpkg::Use-Pty=0 \
68 clangd node-typescript \ 67 libc-dev gcc g++ make autoconf automake libncurses-dev gnutls-dev \
68 libxml2-dev libdbus-1-dev libacl1-dev acl git man-db texinfo gdb \
69 && rm -rf /var/lib/apt/lists/*
70
71# Install clangd, tsserver, rust-analyzer.
72RUN apt-get update && \
73 apt-get install -y --no-install-recommends -o=Dpkg::Use-Pty=0 \
74 clangd node-typescript rust-analyzer cargo \
69 && rm -rf /var/lib/apt/lists/* 75 && rm -rf /var/lib/apt/lists/*
70 76
71# eclipse-jdt-ls is planned as Java language server. 77# eclipse-jdt-ls is planned as Java language server.
@@ -81,9 +87,6 @@ RUN apt-get update && \
81# && rm -rf /var/lib/apt/lists/* 87# && rm -rf /var/lib/apt/lists/*
82# RUN snap install core 88# RUN snap install core
83 89
84# # Install rust-analyzer.
85# RUN snap install rust-analyzer --beta
86
87# # Install typescript-language-server. 90# # Install typescript-language-server.
88# RUN snap install typescript-language-server 91# RUN snap install typescript-language-server
89 92
diff --git a/test/infra/gitlab-ci.yml b/test/infra/gitlab-ci.yml
index 79255258aca..93658347761 100644
--- a/test/infra/gitlab-ci.yml
+++ b/test/infra/gitlab-ci.yml
@@ -118,11 +118,13 @@ default:
118 docker cp ${test_name}:checkout/compatibility-report.html ${test_name} || 118 docker cp ${test_name}:checkout/compatibility-report.html ${test_name} ||
119 true' 119 true'
120 - 'test -n "$(docker ps -aq -f name=${test_name})" && docker rm ${test_name}' 120 - 'test -n "$(docker ps -aq -f name=${test_name})" && docker rm ${test_name}'
121 - 'find ${test_name} 121 - 'test -d ${test_name} &&
122 ! \( -name "*.log" -o -name ${EMACS_TEST_JUNIT_REPORT} -o 122 find ${test_name}
123 -name compatibility-report.html \) -type f -delete' 123 ! \( -name "*.log" -o -name ${EMACS_TEST_JUNIT_REPORT} -o
124 -name compatibility-report.html \) -type f -delete'
124 # BusyBox find does not know -empty. 125 # BusyBox find does not know -empty.
125 - 'find ${test_name} -type d -depth -exec rmdir {} + 2>/dev/null' 126 - 'test -d ${test_name} &&
127 find ${test_name} -type d -depth -exec rmdir {} + 2>/dev/null'
126 128
127.build-template: 129.build-template:
128 needs: [] 130 needs: []