From 05d19dad9b0239291f25b6e854fa220a02721ad4 Mon Sep 17 00:00:00 2001 From: Michael Albinus Date: Thu, 1 May 2025 12:47:44 +0200 Subject: [PATCH] Improve treesitter tests on emba * 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 | 13 ++++++++----- test/infra/gitlab-ci.yml | 30 ++++++++++++++++++++++++------ 2 files changed, 32 insertions(+), 11 deletions(-) diff --git a/test/infra/Dockerfile.emba b/test/infra/Dockerfile.emba index 80056e35a1f..1c1fbfc361a 100644 --- a/test/infra/Dockerfile.emba +++ b/test/infra/Dockerfile.emba @@ -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 diff --git a/test/infra/gitlab-ci.yml b/test/infra/gitlab-ci.yml index 9c2480e92e2..d50c6193a73 100644 --- a/test/infra/gitlab-ci.yml +++ b/test/infra/gitlab-ci.yml @@ -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 -- 2.39.5