]> git.eshelyaron.com Git - emacs.git/commitdiff
Improve treesitter tests on emba
authorMichael Albinus <michael.albinus@gmx.de>
Thu, 1 May 2025 10:47:44 +0000 (12:47 +0200)
committerEshel Yaron <me@eshelyaron.com>
Sat, 10 May 2025 06:53:24 +0000 (08:53 +0200)
* test/infra/Dockerfile.emba (emacs-tree-sitter): Print language
versions.

* test/infra/gitlab-ci.yml (.job-template): Pass ${http_proxy},
${https_proxy} and ${no_proxy} to the docker call.
(.tree-sitter-template): Add some dependencies.

(cherry picked from commit ab67f684e92489da84bc6bb559e0d2dc0456d949)

test/infra/Dockerfile.emba
test/infra/gitlab-ci.yml

index 80056e35a1f7f60029277dd244b2036b1ebec749..1c1fbfc361a24800ac67b28e749e468e2f2eb49f 100644 (file)
@@ -123,13 +123,12 @@ RUN make -j `nproc` bootstrap
 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
-# The recommended versions are generated by 'treesit-admin-verify-major-mode-queries`
+# The recommended versions are generated by 'treesit-admin-verify-major-mode-queries'
 # at the beginning of every ts-mode file.  Loading a ts-mode file adds its
 # grammar source to 'treesit-language-source-alist'.
 RUN src/emacs -Q --batch \
-    --eval \
-      '(message "ABI min version %d max version %d" \
-         (treesit-library-abi-version t) (treesit-library-abi-version))' \
+    --eval '(message "library ABI min version %d max version %d" \
+        (treesit-library-abi-version t) (treesit-library-abi-version))' \
     --eval '(setq treesit-extra-load-path (list "/root/.emacs.d/tree-sitter"))' \
     --eval '(dolist (feature (quote (c-ts-mode cmake-ts-mode csharp-mode \
         dockerfile-ts-mode elixir-ts-mode go-ts-mode heex-ts-mode java-ts-mode \
@@ -137,7 +136,11 @@ RUN src/emacs -Q --batch \
         sh-script typescript-ts-mode css-mode html-ts-mode markdown-ts-mode \
         mhtml-ts-mode toml-ts-mode yaml-ts-mode treesit-x))) (require feature))' \
     --eval '(dolist (lang (mapcar (quote car) treesit-language-source-alist)) \
-      (treesit-install-language-grammar lang "/root/.emacs.d/tree-sitter"))'
+        (treesit-install-language-grammar lang "/root/.emacs.d/tree-sitter"))' \
+    --eval '(message "treesit-language-source-alist\n%s" \
+        (pp-to-string treesit-language-source-alist))' \
+    --eval '(dolist (lang (sort (mapcar (quote car) treesit-language-source-alist))) \
+        (message "%s ABI version %d" lang (treesit-language-abi-version lang)))'
 
 FROM emacs-base as emacs-gnustep
 
index 9c2480e92e295211d81ec90a0f3a7f76727bb469..d50c6193a73edcde463346c9d227461e1bb559cf 100644 (file)
@@ -84,7 +84,26 @@ default:
   script:
     - docker pull ${CI_REGISTRY_IMAGE}:${target}-${BUILD_TAG}
     - '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} -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}"'
+    - '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` \
+     -e http_proxy=${http_proxy} \
+     -e https_proxy=${https_proxy} \
+     -e no_proxy=${no_proxy} \
+     --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
     # - pwd; printenv
@@ -187,13 +206,14 @@ default:
         - "**.in"
         - lisp/align.el
         - lisp/progmodes/*-ts-mode.el
+        - lisp/progmodes/c-ts-common.el
         - lisp/progmodes/csharp-mode.el
         - lisp/progmodes/js.el
         - lisp/progmodes/python.el
         - lisp/progmodes/sh-script.el
         - lisp/textmodes/*-ts-mode.el
         - lisp/textmodes/css-mode.el
-        - lisp/treesit.el
+        - lisp/treesit*.el
         - src/treesit.{h,c}
         - test/infra/*
         - test/lisp/align-resources/**
@@ -293,10 +313,8 @@ test-eglot:
     make_params: >-
       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\)"
+        # EMACS_EXTRAOPT="--eval \(use-package\ company\ :ensure\ t\)
+        #                 --eval \(use-package\ yasnippet\ :ensure\ t\)"
 
 build-image-tree-sitter:
   stage: platform-images