summaryrefslogtreecommitdiff
path: root/test/infra
diff options
context:
space:
mode:
authorMichael Albinus <michael.albinus@gmx.de>2024-04-22 13:38:10 +0200
committerMichael Albinus <michael.albinus@gmx.de>2024-04-22 13:38:10 +0200
commit42c8e2dfceb504533c6db3f336e28dd6c94aaa70 (patch)
tree208bf2c6cf99b70d9b4ef32f8ddeaca1671f5fa4 /test/infra
parent931cd9331363051a8cb5ef45dc37937e63b243d9 (diff)
downloademacs-42c8e2dfceb504533c6db3f336e28dd6c94aaa70.tar.gz
Rework EMBA integration
* test/infra/Dockerfile.emba (emacs-inotify, emacs-filenotify-gio) (emacs-eglot, emacs-tree-sitter, emacs-gnustep) (emacs-native-comp-speed0, emacs-native-comp-speed1) (emacs-native-comp-speed2): Use "-j `nproc`". (emacs-eglot): Add libxml2-dev and node-typescript. (emacs-tree-sitter) Add libxml2-dev and tree-sitter-rust. * test/infra/Makefile.in (subdir_template): Simplify make_params. * test/infra/gitlab-ci.yml (.job-template): Set environment variable NPROC. Use "-k -j \$NPROC". (test-filenotify-gio, test-eglot, test-tree-sitter) (test-native-comp-speed2): Simplify make_params. * test/infra/test-jobs.yml: Regenerate.
Diffstat (limited to 'test/infra')
-rw-r--r--test/infra/Dockerfile.emba54
-rw-r--r--test/infra/Makefile.in2
-rw-r--r--test/infra/gitlab-ci.yml15
-rw-r--r--test/infra/test-jobs.yml67
4 files changed, 86 insertions, 52 deletions
diff --git a/test/infra/Dockerfile.emba b/test/infra/Dockerfile.emba
index 233e210fc74..9091d60e8c8 100644
--- a/test/infra/Dockerfile.emba
+++ b/test/infra/Dockerfile.emba
@@ -45,7 +45,7 @@ WORKDIR /checkout
RUN ./autogen.sh autoconf
RUN ./configure
# 'make -j4 bootstrap' does not work reliably.
-RUN make bootstrap
+RUN make -j `nproc` bootstrap
FROM emacs-base as emacs-filenotify-gio
@@ -58,7 +58,7 @@ COPY . /checkout
WORKDIR /checkout
RUN ./autogen.sh autoconf
RUN ./configure --with-file-notification=gfile
-RUN make bootstrap
+RUN make -j `nproc` bootstrap
# Debian bullseye doesn't provide proper packages. So we use Debian
# sid for this.
@@ -68,20 +68,49 @@ FROM debian:sid as emacs-eglot
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 \
+ libxml2-dev libdbus-1-dev libacl1-dev acl git texinfo gdb \
&& rm -rf /var/lib/apt/lists/*
-# Install clangd.
+# Install clangd, tsserver.
RUN apt-get update && \
apt-get install -y --no-install-recommends -o=Dpkg::Use-Pty=0 \
- clangd \
+ clangd node-typescript \
&& rm -rf /var/lib/apt/lists/*
+# eclipse-jdt-ls is planned as Java language server.
+# See <https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1024246>.
+
+# The following LSP servers exist as snap packages. However, snap
+# cannot be used inside containers. We keep this here for reference.
+
+# # Install snapd.
+# RUN apt-get update && \
+# apt-get install -y --no-install-recommends -o=Dpkg::Use-Pty=0 \
+# snapd \
+# && rm -rf /var/lib/apt/lists/*
+# RUN snap install core
+
+# # Install rust-analyzer.
+# RUN snap install rust-analyzer --beta
+
+# # Install typescript-language-server.
+# RUN snap install typescript-language-server
+
+# # Install vscode-json-languageserver.
+# RUN snap install vscode-json-languageserver
+
COPY . /checkout
WORKDIR /checkout
RUN ./autogen.sh autoconf
RUN ./configure
-RUN make bootstrap
+RUN make -j `nproc` bootstrap
+
+# # Install company and yasnippet.
+# RUN mkdir /root/.emacs.d
+# RUN src/emacs --batch \
+# --eval '(setq url-debug 0 debug-on-error t)' \
+# --eval '(package-install (quote company))' \
+# --eval '(package-install (quote yasnippet))'
# Debian bullseye doesn't provide proper packages. So we use Debian
# sid for this.
@@ -91,7 +120,7 @@ FROM debian:sid as emacs-tree-sitter
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 \
+ libxml2-dev libdbus-1-dev libacl1-dev acl git texinfo gdb \
&& rm -rf /var/lib/apt/lists/*
# Install tree-sitter library.
@@ -104,7 +133,7 @@ COPY . /checkout
WORKDIR /checkout
RUN ./autogen.sh autoconf
RUN ./configure --with-tree-sitter
-RUN make bootstrap
+RUN make -j `nproc` bootstrap
# Install language grammars.
RUN mkdir -p /root/.emacs.d/tree-sitter
@@ -129,6 +158,7 @@ RUN src/emacs -Q --batch \
(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") \
+ (rust "https://github.com/tree-sitter/tree-sitter-rust") \
(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)) \
@@ -145,7 +175,7 @@ COPY . /checkout
WORKDIR /checkout
RUN ./autogen.sh autoconf
RUN ./configure --with-ns
-RUN make bootstrap
+RUN make -j `nproc` bootstrap
FROM emacs-base as emacs-native-comp
@@ -161,7 +191,7 @@ COPY . /checkout
WORKDIR /checkout
RUN ./autogen.sh autoconf
RUN ./configure --with-native-compilation
-RUN make bootstrap -j2 \
+RUN make -j `nproc` bootstrap \
NATIVE_FULL_AOT=1 BYTE_COMPILE_EXTRA_FLAGS='--eval "(setq comp-speed 0)"'
FROM emacs-native-comp as emacs-native-comp-speed1
@@ -170,7 +200,7 @@ COPY . /checkout
WORKDIR /checkout
RUN ./autogen.sh autoconf
RUN ./configure --with-native-compilation
-RUN make bootstrap -j2 BYTE_COMPILE_EXTRA_FLAGS='--eval "(setq comp-speed 1)"'
+RUN make -j `nproc` bootstrap BYTE_COMPILE_EXTRA_FLAGS='--eval "(setq comp-speed 1)"'
FROM emacs-native-comp as emacs-native-comp-speed2
@@ -178,4 +208,4 @@ COPY . /checkout
WORKDIR /checkout
RUN ./autogen.sh autoconf
RUN ./configure --with-native-compilation
-RUN make bootstrap -j2
+RUN make -j `nproc` bootstrap`
diff --git a/test/infra/Makefile.in b/test/infra/Makefile.in
index 20fa9021abc..1d92a67f3aa 100644
--- a/test/infra/Makefile.in
+++ b/test/infra/Makefile.in
@@ -103,7 +103,7 @@ define subdir_template
@echo ' - test/$(1)/*.el' >>$(FILE)
@echo ' variables:' >>$(FILE)
@echo ' target: emacs-inotify' >>$(FILE)
- @echo ' make_params: "-k -C test $(target)"' >>$(FILE)
+ @echo ' make_params: "-C test $(target)"' >>$(FILE)
endef
$(foreach subdir, $(SUBDIRS), $(eval $(call subdir_template,$(subdir))))
diff --git a/test/infra/gitlab-ci.yml b/test/infra/gitlab-ci.yml
index d262218e276..1b383e3b52c 100644
--- a/test/infra/gitlab-ci.yml
+++ b/test/infra/gitlab-ci.yml
@@ -86,7 +86,7 @@ default:
# TODO: with make -j4 several of the tests were failing, for
# example shadowfile-tests, but passed without it.
- 'export PWD=$(pwd)'
- - 'docker run -i -e EMACS_EMBA_CI=${EMACS_EMBA_CI} -e EMACS_TEST_JUNIT_REPORT=${EMACS_TEST_JUNIT_REPORT} -e EMACS_TEST_TIMEOUT=${EMACS_TEST_TIMEOUT} -e EMACS_TEST_VERBOSE=${EMACS_TEST_VERBOSE} --volumes-from $(docker ps -q -f "label=com.gitlab.gitlab-runner.job.id=${CI_JOB_ID}"):ro --name ${test_name} ${CI_REGISTRY_IMAGE}:${target}-${BUILD_TAG} /bin/bash -xvc "git fetch ${PWD} HEAD && echo checking out these updated files && git diff --name-only FETCH_HEAD && ( git diff --name-only FETCH_HEAD | xargs git checkout -f FETCH_HEAD ) && make -j4 && make ${make_params}"'
+ - 'docker run -i -e EMACS_EMBA_CI=${EMACS_EMBA_CI} -e EMACS_TEST_JUNIT_REPORT=${EMACS_TEST_JUNIT_REPORT} -e EMACS_TEST_TIMEOUT=${EMACS_TEST_TIMEOUT} -e EMACS_TEST_VERBOSE=${EMACS_TEST_VERBOSE} -e NPROC=`nproc` --volumes-from $(docker ps -q -f "label=com.gitlab.gitlab-runner.job.id=${CI_JOB_ID}"):ro --name ${test_name} ${CI_REGISTRY_IMAGE}:${target}-${BUILD_TAG} /bin/bash -xvc "git fetch ${PWD} HEAD && echo checking out these updated files && git diff --name-only FETCH_HEAD && ( git diff --name-only FETCH_HEAD | xargs git checkout -f FETCH_HEAD ) && make -j \$NPROC && make -k -j \$NPROC ${make_params}"'
after_script:
# - docker ps -a
# - printenv
@@ -255,7 +255,7 @@ test-filenotify-gio:
target: emacs-filenotify-gio
# This is needed in order to get a JUnit test report.
make_params: >-
- '-k -C test check-expensive
+ 'check-expensive
TEST_HOME=/root
LOGFILES="lisp/autorevert-tests.log lisp/filenotify-tests.log"'
@@ -275,8 +275,12 @@ test-eglot:
target: emacs-eglot
# This is needed in order to get a JUnit test report.
make_params: >-
- '-k -C test check-expensive
+ 'check-expensive
TEST_HOME=/root LOGFILES="lisp/progmodes/eglot-tests.log"'
+ # EMACS_EXTRAOPT="--eval \(package-reinstall\ \(quote\ company\)\)
+ # --eval \(package-reinstall\ \(quote\ yasnippet\)\)
+ # --eval \(use-package\ company\)
+ # --eval \(use-package\ yasnippet\)"'
build-image-tree-sitter:
stage: platform-images
@@ -296,8 +300,7 @@ test-tree-sitter:
\(and\ \$\{SELECTOR_EXPENSIVE\}\ \(or\ \\\"^treesit\\\"\ \\\"-ts-\\\"\)\)
# This is needed in order to get a JUnit test report.
make_params: >-
- '-k -C test check SELECTOR=$selector
- TEST_HOME=/root LOGFILES="$tree_sitter_files"'
+ 'check SELECTOR=$selector TEST_HOME=/root LOGFILES="$tree_sitter_files"'
build-image-gnustep:
stage: platform-images
@@ -345,7 +348,7 @@ test-native-comp-speed2:
optional: true
variables:
target: emacs-native-comp-speed2
- make_params: "-k -C test check SELECTOR='(not (tag :unstable))'"
+ make_params: "check SELECTOR='(not (tag :unstable))'"
# Local Variables:
# add-log-current-defun-header-regexp: "^\\([-_.[:alnum:]]+\\)[ \t]*:"
diff --git a/test/infra/test-jobs.yml b/test/infra/test-jobs.yml
index 095964ee4ed..d1d4f10e1cf 100644
--- a/test/infra/test-jobs.yml
+++ b/test/infra/test-jobs.yml
@@ -15,7 +15,7 @@ test-lib-src-inotify:
- test/lib-src/*.el
variables:
target: emacs-inotify
- make_params: "-k -C test check-lib-src"
+ make_params: "-C test check-lib-src"
test-lisp-inotify:
stage: normal
@@ -32,7 +32,7 @@ test-lisp-inotify:
- test/lisp/*.el
variables:
target: emacs-inotify
- make_params: "-k -C test check-lisp"
+ make_params: "-C test check-lisp"
test-lisp-calc-inotify:
stage: normal
@@ -49,7 +49,7 @@ test-lisp-calc-inotify:
- test/lisp/calc/*.el
variables:
target: emacs-inotify
- make_params: "-k -C test check-lisp-calc"
+ make_params: "-C test check-lisp-calc"
test-lisp-calendar-inotify:
stage: normal
@@ -66,7 +66,7 @@ test-lisp-calendar-inotify:
- test/lisp/calendar/*.el
variables:
target: emacs-inotify
- make_params: "-k -C test check-lisp-calendar"
+ make_params: "-C test check-lisp-calendar"
test-lisp-cedet-inotify:
stage: normal
@@ -83,7 +83,7 @@ test-lisp-cedet-inotify:
- test/lisp/cedet/*.el
variables:
target: emacs-inotify
- make_params: "-k -C test check-lisp-cedet"
+ make_params: "-C test check-lisp-cedet"
test-lisp-cedet-semantic-inotify:
stage: normal
@@ -100,7 +100,7 @@ test-lisp-cedet-semantic-inotify:
- test/lisp/cedet/semantic/*.el
variables:
target: emacs-inotify
- make_params: "-k -C test check-lisp-cedet-semantic"
+ make_params: "-C test check-lisp-cedet-semantic"
test-lisp-cedet-semantic-bovine-inotify:
stage: normal
@@ -117,7 +117,7 @@ test-lisp-cedet-semantic-bovine-inotify:
- test/lisp/cedet/semantic/bovine/*.el
variables:
target: emacs-inotify
- make_params: "-k -C test check-lisp-cedet-semantic-bovine"
+ make_params: "-C test check-lisp-cedet-semantic-bovine"
test-lisp-cedet-srecode-inotify:
stage: normal
@@ -134,7 +134,7 @@ test-lisp-cedet-srecode-inotify:
- test/lisp/cedet/srecode/*.el
variables:
target: emacs-inotify
- make_params: "-k -C test check-lisp-cedet-srecode"
+ make_params: "-C test check-lisp-cedet-srecode"
test-lisp-emacs-lisp-inotify:
stage: normal
@@ -151,7 +151,7 @@ test-lisp-emacs-lisp-inotify:
- test/lisp/emacs-lisp/*.el
variables:
target: emacs-inotify
- make_params: "-k -C test check-lisp-emacs-lisp"
+ make_params: "-C test check-lisp-emacs-lisp"
test-lisp-emacs-lisp-eieio-tests-inotify:
stage: normal
@@ -168,7 +168,7 @@ test-lisp-emacs-lisp-eieio-tests-inotify:
- test/lisp/emacs-lisp/eieio-tests/*.el
variables:
target: emacs-inotify
- make_params: "-k -C test check-lisp-emacs-lisp-eieio-tests"
+ make_params: "-C test check-lisp-emacs-lisp-eieio-tests"
test-lisp-emacs-lisp-faceup-tests-inotify:
stage: normal
@@ -185,7 +185,7 @@ test-lisp-emacs-lisp-faceup-tests-inotify:
- test/lisp/emacs-lisp/faceup-tests/*.el
variables:
target: emacs-inotify
- make_params: "-k -C test check-lisp-emacs-lisp-faceup-tests"
+ make_params: "-C test check-lisp-emacs-lisp-faceup-tests"
test-lisp-emulation-inotify:
stage: normal
@@ -202,7 +202,7 @@ test-lisp-emulation-inotify:
- test/lisp/emulation/*.el
variables:
target: emacs-inotify
- make_params: "-k -C test check-lisp-emulation"
+ make_params: "-C test check-lisp-emulation"
test-lisp-erc-inotify:
stage: normal
@@ -219,7 +219,7 @@ test-lisp-erc-inotify:
- test/lisp/erc/*.el
variables:
target: emacs-inotify
- make_params: "-k -C test check-lisp-erc"
+ make_params: "-C test check-lisp-erc"
test-lisp-eshell-inotify:
stage: normal
@@ -236,7 +236,7 @@ test-lisp-eshell-inotify:
- test/lisp/eshell/*.el
variables:
target: emacs-inotify
- make_params: "-k -C test check-lisp-eshell"
+ make_params: "-C test check-lisp-eshell"
test-lisp-gnus-inotify:
stage: normal
@@ -253,7 +253,7 @@ test-lisp-gnus-inotify:
- test/lisp/gnus/*.el
variables:
target: emacs-inotify
- make_params: "-k -C test check-lisp-gnus"
+ make_params: "-C test check-lisp-gnus"
test-lisp-image-inotify:
stage: normal
@@ -270,7 +270,7 @@ test-lisp-image-inotify:
- test/lisp/image/*.el
variables:
target: emacs-inotify
- make_params: "-k -C test check-lisp-image"
+ make_params: "-C test check-lisp-image"
test-lisp-international-inotify:
stage: normal
@@ -287,7 +287,7 @@ test-lisp-international-inotify:
- test/lisp/international/*.el
variables:
target: emacs-inotify
- make_params: "-k -C test check-lisp-international"
+ make_params: "-C test check-lisp-international"
test-lisp-mail-inotify:
stage: normal
@@ -304,7 +304,7 @@ test-lisp-mail-inotify:
- test/lisp/mail/*.el
variables:
target: emacs-inotify
- make_params: "-k -C test check-lisp-mail"
+ make_params: "-C test check-lisp-mail"
test-lisp-mh-e-inotify:
stage: normal
@@ -321,7 +321,7 @@ test-lisp-mh-e-inotify:
- test/lisp/mh-e/*.el
variables:
target: emacs-inotify
- make_params: "-k -C test check-lisp-mh-e"
+ make_params: "-C test check-lisp-mh-e"
test-lisp-net-inotify:
stage: normal
@@ -338,7 +338,7 @@ test-lisp-net-inotify:
- test/lisp/net/*.el
variables:
target: emacs-inotify
- make_params: "-k -C test check-lisp-net"
+ make_params: "-C test check-lisp-net"
test-lisp-nxml-inotify:
stage: normal
@@ -355,7 +355,7 @@ test-lisp-nxml-inotify:
- test/lisp/nxml/*.el
variables:
target: emacs-inotify
- make_params: "-k -C test check-lisp-nxml"
+ make_params: "-C test check-lisp-nxml"
test-lisp-obsolete-inotify:
stage: normal
@@ -372,7 +372,7 @@ test-lisp-obsolete-inotify:
- test/lisp/obsolete/*.el
variables:
target: emacs-inotify
- make_params: "-k -C test check-lisp-obsolete"
+ make_params: "-C test check-lisp-obsolete"
test-lisp-org-inotify:
stage: normal
@@ -389,7 +389,7 @@ test-lisp-org-inotify:
- test/lisp/org/*.el
variables:
target: emacs-inotify
- make_params: "-k -C test check-lisp-org"
+ make_params: "-C test check-lisp-org"
test-lisp-play-inotify:
stage: normal
@@ -406,7 +406,7 @@ test-lisp-play-inotify:
- test/lisp/play/*.el
variables:
target: emacs-inotify
- make_params: "-k -C test check-lisp-play"
+ make_params: "-C test check-lisp-play"
test-lisp-progmodes-inotify:
stage: normal
@@ -430,7 +430,7 @@ test-lisp-progmodes-inotify:
- test/lisp/progmodes/*.el
variables:
target: emacs-inotify
- make_params: "-k -C test check-lisp-progmodes"
+ make_params: "-C test check-lisp-progmodes"
test-lisp-so-long-tests-inotify:
stage: normal
@@ -447,7 +447,7 @@ test-lisp-so-long-tests-inotify:
- test/lisp/so-long-tests/*.el
variables:
target: emacs-inotify
- make_params: "-k -C test check-lisp-so-long-tests"
+ make_params: "-C test check-lisp-so-long-tests"
test-lisp-term-inotify:
stage: normal
@@ -464,7 +464,7 @@ test-lisp-term-inotify:
- test/lisp/term/*.el
variables:
target: emacs-inotify
- make_params: "-k -C test check-lisp-term"
+ make_params: "-C test check-lisp-term"
test-lisp-textmodes-inotify:
stage: normal
@@ -481,7 +481,7 @@ test-lisp-textmodes-inotify:
- test/lisp/textmodes/*.el
variables:
target: emacs-inotify
- make_params: "-k -C test check-lisp-textmodes"
+ make_params: "-C test check-lisp-textmodes"
test-lisp-url-inotify:
stage: normal
@@ -498,7 +498,7 @@ test-lisp-url-inotify:
- test/lisp/url/*.el
variables:
target: emacs-inotify
- make_params: "-k -C test check-lisp-url"
+ make_params: "-C test check-lisp-url"
test-lisp-use-package-inotify:
stage: normal
@@ -515,7 +515,7 @@ test-lisp-use-package-inotify:
- test/lisp/use-package/*.el
variables:
target: emacs-inotify
- make_params: "-k -C test check-lisp-use-package"
+ make_params: "-C test check-lisp-use-package"
test-lisp-vc-inotify:
stage: normal
@@ -532,7 +532,7 @@ test-lisp-vc-inotify:
- test/lisp/vc/*.el
variables:
target: emacs-inotify
- make_params: "-k -C test check-lisp-vc"
+ make_params: "-C test check-lisp-vc"
test-misc-inotify:
stage: normal
@@ -549,7 +549,7 @@ test-misc-inotify:
- test/misc/*.el
variables:
target: emacs-inotify
- make_params: "-k -C test check-misc"
+ make_params: "-C test check-misc"
test-src-inotify:
stage: normal
@@ -570,7 +570,7 @@ test-src-inotify:
- test/src/*.el
variables:
target: emacs-inotify
- make_params: "-k -C test check-src"
+ make_params: "-C test check-src"
# js-tests.el and python-tests.el don't follow test file name convention.
.tree-sitter-files-template:
@@ -585,5 +585,6 @@ test-src-inotify:
lisp/progmodes/lua-ts-mode-tests.log
lisp/progmodes/python-tests.log
lisp/progmodes/ruby-ts-mode-tests.log
+ lisp/progmodes/rust-ts-mode-tests.log
lisp/progmodes/typescript-ts-mode-tests.log
src/treesit-tests.log