From: Michael Albinus Date: Mon, 22 Nov 2021 15:33:16 +0000 (+0100) Subject: Adapt emba jobs X-Git-Tag: emacs-29.0.90~2852^2~103 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=196196c739b0ea5db0d9ad5e753f9e38fba11593;p=emacs.git Adapt emba jobs * admin/notes/emba (Emacs jobset): Precise. * test/infra/Makefile.in (tn): New variable. (subdir_template): Use it. Handle eieio-tests, faceup-tests and so-long-tests. Rearrange .PHONY entry. Add needs and artifacts to emba job. * test/infra/gitlab-ci.yml (test-filenotify-gio): Move up. * test/infra/test-jobs.yml: Regenerate. --- diff --git a/admin/notes/emba b/admin/notes/emba index 4e500bc92cf..a30e570fd47 100644 --- a/admin/notes/emba +++ b/admin/notes/emba @@ -28,7 +28,8 @@ The messages contain a URL to the log file of the failed job, like * Emacs jobset The Emacs jobset is defined in the Emacs source tree, file -'.gitlab-ci.yml'. It could be adapted for every Emacs branch, see +'.gitlab-ci.yml'. All related files are located in directory +'test/infra'. They could be adapted for every Emacs branch, see . A jobset on Gitlab is called pipeline. Emacs pipelines run through @@ -37,6 +38,11 @@ the stages 'build-images', 'platform-images' and 'native-comp-images' configuration parameters) as well as 'normal', 'slow', 'platforms' and 'native-comp' (run respective test jobs based on the produced images). +The jobs for stage 'normal' are contained in the file +'test/infra/test-jobs.yml'. This file is generated by calling 'make +-C test generate-test-jobs' in the Emacs source tree, and the +resulting file shall be pushed to the Emacs git repository afterwards. + Every job runs in a Debian docker container. It uses the local clone of the Emacs git repository to perform a bootstrap and test of Emacs. This could happen for several jobs with changed configuration, compile diff --git a/test/infra/Makefile.in b/test/infra/Makefile.in index e91aea404d4..36c27024afb 100644 --- a/test/infra/Makefile.in +++ b/test/infra/Makefile.in @@ -1,4 +1,4 @@ -### test/infra/Makefile. Generated from Makefile.in by configure. +### @configure_input@ # Copyright (C) 2021 Free Software Foundation, Inc. @@ -33,6 +33,7 @@ top_builddir = @top_builddir@ SUBDIRS ?= $(shell make -s -C .. subdirs) SUBDIR_TARGETS = FILE = test-jobs.yml +tn = $$$${test_name} define subdir_template $(eval target = check-$(subst /,-,$(1))) @@ -41,41 +42,59 @@ define subdir_template $(eval ifeq ($(findstring src, $(1)), src) define changes - @echo " - $(1)/*.{h,c}" >>$(FILE) - @echo " - test/$(1)/*.el" >>$(FILE) + @echo ' - $(1)/*.{h,c}' >>$(FILE) + endef + else ifeq ($(findstring eieio, $(1)), eieio) + define changes + @echo ' - lisp/emacs-lisp/eieio*.el' >>$(FILE) + endef + else ifeq ($(findstring faceup, $(1)), faceup) + define changes + @echo ' - lisp/emacs-lisp/faceup*.el' >>$(FILE) + endef + else ifeq ($(findstring so-long, $(1)), so-long) + define changes + @echo ' - lisp/so-long*.el' >>$(FILE) endef else ifeq ($(findstring misc, $(1)), misc) define changes - @echo " - admin/*.el" >>$(FILE) - @echo " - test/$(1)/*.el" >>$(FILE) + @echo ' - admin/*.el' >>$(FILE) endef else define changes - @echo " - $(1)/*.el" >>$(FILE) - @echo " - test/$(1)/*.el" >>$(FILE) + @echo ' - $(1)/*.el' >>$(FILE) endef endif) - .PHONY: $(target) - $(target): - @echo "test-$(subst /,-,$(1))-inotify:" >>$(FILE) - @echo " stage: normal" >>$(FILE) - @echo " extends: [.job-template, .test-template]" >>$(FILE) - @echo " rules:" >>$(FILE) - @echo " - changes:" >>$(FILE) - $(changes) - @echo " variables:" >>$(FILE) - @echo " target: emacs-inotify" >>$(FILE) - @echo " make_params: \"-C test $(target)\"" >>$(FILE) @echo >>$(FILE) + @echo 'test-$(subst /,-,$(1))-inotify:' >>$(FILE) + @echo ' stage: normal' >>$(FILE) + @echo ' needs: [build-image-inotify]' >>$(FILE) + @echo ' extends: [.job-template, .test-template]' >>$(FILE) + @echo ' rules:' >>$(FILE) + @echo ' - changes:' >>$(FILE) + $(changes) + @echo ' - test/$(1)/*.el' >>$(FILE) + @echo ' - test/$(1)/*resources/**' >>$(FILE) + @echo ' artifacts:' >>$(FILE) + @echo ' name: $(tn)' >>$(FILE) + @echo ' public: true' >>$(FILE) + @echo ' expire_in: 1 week' >>$(FILE) + @echo ' paths:' >>$(FILE) + @echo ' - test/$(1)/*.log' >>$(FILE) + @echo ' - **core' >>$(FILE) + @echo ' when: always' >>$(FILE) + @echo ' variables:' >>$(FILE) + @echo ' target: emacs-inotify' >>$(FILE) + @echo ' make_params: "-C test $(target)"' >>$(FILE) endef $(foreach subdir, $(SUBDIRS), $(eval $(call subdir_template,$(subdir)))) all: generate-test-jobs -.PHONY: generate-test-jobs $(FILE) +.PHONY: generate-test-jobs $(FILE) $(SUBDIR_TARGETS) generate-test-jobs: clean $(FILE) $(SUBDIR_TARGETS) diff --git a/test/infra/gitlab-ci.yml b/test/infra/gitlab-ci.yml index a0e2c283cde..47a8b519648 100644 --- a/test/infra/gitlab-ci.yml +++ b/test/infra/gitlab-ci.yml @@ -236,32 +236,12 @@ build-image-inotify: include: '/test/infra/test-jobs.yml' -# test-lisp-inotify: -# stage: normal -# extends: [.job-template, .test-template] -# variables: -# target: emacs-inotify -# make_params: "-C test check-lisp" - -# test-lisp-net-inotify: -# stage: normal -# extends: [.job-template, .test-template] -# variables: -# target: emacs-inotify -# make_params: "-C test check-lisp-net" - build-image-filenotify-gio: stage: platform-images extends: [.job-template, .build-template, .filenotify-gio-template] variables: target: emacs-filenotify-gio -build-image-gnustep: - stage: platform-images - extends: [.job-template, .build-template, .gnustep-template] - variables: - target: emacs-gnustep - test-filenotify-gio: # This tests file monitor libraries gfilemonitor and gio. stage: platforms @@ -271,6 +251,12 @@ test-filenotify-gio: target: emacs-filenotify-gio make_params: "-k -C test autorevert-tests.log filenotify-tests.log" +build-image-gnustep: + stage: platform-images + extends: [.job-template, .build-template, .gnustep-template] + variables: + target: emacs-gnustep + test-gnustep: # This tests the GNUstep build process. stage: platforms diff --git a/test/infra/test-jobs.yml b/test/infra/test-jobs.yml index 9fb15081bd4..92eac04f594 100644 --- a/test/infra/test-jobs.yml +++ b/test/infra/test-jobs.yml @@ -1,362 +1,672 @@ + test-lib-src-inotify: stage: normal + needs: [build-image-inotify] extends: [.job-template, .test-template] rules: - changes: - lib-src/*.{h,c} - test/lib-src/*.el + - test/lib-src/*resources/** + artifacts: + name: ${test_name} + public: true + expire_in: 1 week + paths: + - test/lib-src/*.log + - **core + when: always variables: target: emacs-inotify make_params: "-C test check-lib-src" test-lisp-inotify: stage: normal + needs: [build-image-inotify] extends: [.job-template, .test-template] rules: - changes: - lisp/*.el - test/lisp/*.el + - test/lisp/*resources/** + artifacts: + name: ${test_name} + public: true + expire_in: 1 week + paths: + - test/lisp/*.log + - **core + when: always variables: target: emacs-inotify make_params: "-C test check-lisp" test-lisp-calc-inotify: stage: normal + needs: [build-image-inotify] extends: [.job-template, .test-template] rules: - changes: - lisp/calc/*.el - test/lisp/calc/*.el + - test/lisp/calc/*resources/** + artifacts: + name: ${test_name} + public: true + expire_in: 1 week + paths: + - test/lisp/calc/*.log + - **core + when: always variables: target: emacs-inotify make_params: "-C test check-lisp-calc" test-lisp-calendar-inotify: stage: normal + needs: [build-image-inotify] extends: [.job-template, .test-template] rules: - changes: - lisp/calendar/*.el - test/lisp/calendar/*.el + - test/lisp/calendar/*resources/** + artifacts: + name: ${test_name} + public: true + expire_in: 1 week + paths: + - test/lisp/calendar/*.log + - **core + when: always variables: target: emacs-inotify make_params: "-C test check-lisp-calendar" test-lisp-cedet-inotify: stage: normal + needs: [build-image-inotify] extends: [.job-template, .test-template] rules: - changes: - lisp/cedet/*.el - test/lisp/cedet/*.el + - test/lisp/cedet/*resources/** + artifacts: + name: ${test_name} + public: true + expire_in: 1 week + paths: + - test/lisp/cedet/*.log + - **core + when: always variables: target: emacs-inotify make_params: "-C test check-lisp-cedet" test-lisp-cedet-semantic-inotify: stage: normal + needs: [build-image-inotify] extends: [.job-template, .test-template] rules: - changes: - lisp/cedet/semantic/*.el - test/lisp/cedet/semantic/*.el + - test/lisp/cedet/semantic/*resources/** + artifacts: + name: ${test_name} + public: true + expire_in: 1 week + paths: + - test/lisp/cedet/semantic/*.log + - **core + when: always variables: target: emacs-inotify make_params: "-C test check-lisp-cedet-semantic" test-lisp-cedet-semantic-bovine-inotify: stage: normal + needs: [build-image-inotify] extends: [.job-template, .test-template] rules: - changes: - lisp/cedet/semantic/bovine/*.el - test/lisp/cedet/semantic/bovine/*.el + - test/lisp/cedet/semantic/bovine/*resources/** + artifacts: + name: ${test_name} + public: true + expire_in: 1 week + paths: + - test/lisp/cedet/semantic/bovine/*.log + - **core + when: always variables: target: emacs-inotify make_params: "-C test check-lisp-cedet-semantic-bovine" test-lisp-cedet-srecode-inotify: stage: normal + needs: [build-image-inotify] extends: [.job-template, .test-template] rules: - changes: - lisp/cedet/srecode/*.el - test/lisp/cedet/srecode/*.el + - test/lisp/cedet/srecode/*resources/** + artifacts: + name: ${test_name} + public: true + expire_in: 1 week + paths: + - test/lisp/cedet/srecode/*.log + - **core + when: always variables: target: emacs-inotify make_params: "-C test check-lisp-cedet-srecode" test-lisp-emacs-lisp-inotify: stage: normal + needs: [build-image-inotify] extends: [.job-template, .test-template] rules: - changes: - lisp/emacs-lisp/*.el - test/lisp/emacs-lisp/*.el + - test/lisp/emacs-lisp/*resources/** + artifacts: + name: ${test_name} + public: true + expire_in: 1 week + paths: + - test/lisp/emacs-lisp/*.log + - **core + when: always variables: target: emacs-inotify make_params: "-C test check-lisp-emacs-lisp" test-lisp-emacs-lisp-eieio-tests-inotify: stage: normal + needs: [build-image-inotify] extends: [.job-template, .test-template] rules: - changes: - - lisp/emacs-lisp/eieio-tests/*.el + - lisp/emacs-lisp/eieio*.el - test/lisp/emacs-lisp/eieio-tests/*.el + - test/lisp/emacs-lisp/eieio-tests/*resources/** + artifacts: + name: ${test_name} + public: true + expire_in: 1 week + paths: + - test/lisp/emacs-lisp/eieio-tests/*.log + - **core + when: always variables: target: emacs-inotify make_params: "-C test check-lisp-emacs-lisp-eieio-tests" test-lisp-emacs-lisp-faceup-tests-inotify: stage: normal + needs: [build-image-inotify] extends: [.job-template, .test-template] rules: - changes: - - lisp/emacs-lisp/faceup-tests/*.el + - lisp/emacs-lisp/faceup*.el - test/lisp/emacs-lisp/faceup-tests/*.el + - test/lisp/emacs-lisp/faceup-tests/*resources/** + artifacts: + name: ${test_name} + public: true + expire_in: 1 week + paths: + - test/lisp/emacs-lisp/faceup-tests/*.log + - **core + when: always variables: target: emacs-inotify make_params: "-C test check-lisp-emacs-lisp-faceup-tests" test-lisp-emulation-inotify: stage: normal + needs: [build-image-inotify] extends: [.job-template, .test-template] rules: - changes: - lisp/emulation/*.el - test/lisp/emulation/*.el + - test/lisp/emulation/*resources/** + artifacts: + name: ${test_name} + public: true + expire_in: 1 week + paths: + - test/lisp/emulation/*.log + - **core + when: always variables: target: emacs-inotify make_params: "-C test check-lisp-emulation" test-lisp-erc-inotify: stage: normal + needs: [build-image-inotify] extends: [.job-template, .test-template] rules: - changes: - lisp/erc/*.el - test/lisp/erc/*.el + - test/lisp/erc/*resources/** + artifacts: + name: ${test_name} + public: true + expire_in: 1 week + paths: + - test/lisp/erc/*.log + - **core + when: always variables: target: emacs-inotify make_params: "-C test check-lisp-erc" test-lisp-eshell-inotify: stage: normal + needs: [build-image-inotify] extends: [.job-template, .test-template] rules: - changes: - lisp/eshell/*.el - test/lisp/eshell/*.el + - test/lisp/eshell/*resources/** + artifacts: + name: ${test_name} + public: true + expire_in: 1 week + paths: + - test/lisp/eshell/*.log + - **core + when: always variables: target: emacs-inotify make_params: "-C test check-lisp-eshell" test-lisp-gnus-inotify: stage: normal + needs: [build-image-inotify] extends: [.job-template, .test-template] rules: - changes: - lisp/gnus/*.el - test/lisp/gnus/*.el + - test/lisp/gnus/*resources/** + artifacts: + name: ${test_name} + public: true + expire_in: 1 week + paths: + - test/lisp/gnus/*.log + - **core + when: always variables: target: emacs-inotify make_params: "-C test check-lisp-gnus" test-lisp-image-inotify: stage: normal + needs: [build-image-inotify] extends: [.job-template, .test-template] rules: - changes: - lisp/image/*.el - test/lisp/image/*.el + - test/lisp/image/*resources/** + artifacts: + name: ${test_name} + public: true + expire_in: 1 week + paths: + - test/lisp/image/*.log + - **core + when: always variables: target: emacs-inotify make_params: "-C test check-lisp-image" test-lisp-international-inotify: stage: normal + needs: [build-image-inotify] extends: [.job-template, .test-template] rules: - changes: - lisp/international/*.el - test/lisp/international/*.el + - test/lisp/international/*resources/** + artifacts: + name: ${test_name} + public: true + expire_in: 1 week + paths: + - test/lisp/international/*.log + - **core + when: always variables: target: emacs-inotify make_params: "-C test check-lisp-international" -test-lisp-legacy-inotify: - stage: normal - extends: [.job-template, .test-template] - rules: - - changes: - - lisp/legacy/*.el - - test/lisp/legacy/*.el - variables: - target: emacs-inotify - make_params: "-C test check-lisp-legacy" - test-lisp-mail-inotify: stage: normal + needs: [build-image-inotify] extends: [.job-template, .test-template] rules: - changes: - lisp/mail/*.el - test/lisp/mail/*.el + - test/lisp/mail/*resources/** + artifacts: + name: ${test_name} + public: true + expire_in: 1 week + paths: + - test/lisp/mail/*.log + - **core + when: always variables: target: emacs-inotify make_params: "-C test check-lisp-mail" test-lisp-mh-e-inotify: stage: normal + needs: [build-image-inotify] extends: [.job-template, .test-template] rules: - changes: - lisp/mh-e/*.el - test/lisp/mh-e/*.el + - test/lisp/mh-e/*resources/** + artifacts: + name: ${test_name} + public: true + expire_in: 1 week + paths: + - test/lisp/mh-e/*.log + - **core + when: always variables: target: emacs-inotify make_params: "-C test check-lisp-mh-e" test-lisp-net-inotify: stage: normal + needs: [build-image-inotify] extends: [.job-template, .test-template] rules: - changes: - lisp/net/*.el - test/lisp/net/*.el + - test/lisp/net/*resources/** + artifacts: + name: ${test_name} + public: true + expire_in: 1 week + paths: + - test/lisp/net/*.log + - **core + when: always variables: target: emacs-inotify make_params: "-C test check-lisp-net" test-lisp-nxml-inotify: stage: normal + needs: [build-image-inotify] extends: [.job-template, .test-template] rules: - changes: - lisp/nxml/*.el - test/lisp/nxml/*.el + - test/lisp/nxml/*resources/** + artifacts: + name: ${test_name} + public: true + expire_in: 1 week + paths: + - test/lisp/nxml/*.log + - **core + when: always variables: target: emacs-inotify make_params: "-C test check-lisp-nxml" test-lisp-obsolete-inotify: stage: normal + needs: [build-image-inotify] extends: [.job-template, .test-template] rules: - changes: - lisp/obsolete/*.el - test/lisp/obsolete/*.el + - test/lisp/obsolete/*resources/** + artifacts: + name: ${test_name} + public: true + expire_in: 1 week + paths: + - test/lisp/obsolete/*.log + - **core + when: always variables: target: emacs-inotify make_params: "-C test check-lisp-obsolete" test-lisp-org-inotify: stage: normal + needs: [build-image-inotify] extends: [.job-template, .test-template] rules: - changes: - lisp/org/*.el - test/lisp/org/*.el + - test/lisp/org/*resources/** + artifacts: + name: ${test_name} + public: true + expire_in: 1 week + paths: + - test/lisp/org/*.log + - **core + when: always variables: target: emacs-inotify make_params: "-C test check-lisp-org" test-lisp-play-inotify: stage: normal + needs: [build-image-inotify] extends: [.job-template, .test-template] rules: - changes: - lisp/play/*.el - test/lisp/play/*.el + - test/lisp/play/*resources/** + artifacts: + name: ${test_name} + public: true + expire_in: 1 week + paths: + - test/lisp/play/*.log + - **core + when: always variables: target: emacs-inotify make_params: "-C test check-lisp-play" test-lisp-progmodes-inotify: stage: normal + needs: [build-image-inotify] extends: [.job-template, .test-template] rules: - changes: - lisp/progmodes/*.el - test/lisp/progmodes/*.el + - test/lisp/progmodes/*resources/** + artifacts: + name: ${test_name} + public: true + expire_in: 1 week + paths: + - test/lisp/progmodes/*.log + - **core + when: always variables: target: emacs-inotify make_params: "-C test check-lisp-progmodes" test-lisp-so-long-tests-inotify: stage: normal + needs: [build-image-inotify] extends: [.job-template, .test-template] rules: - changes: - - lisp/so-long-tests/*.el + - lisp/so-long*.el - test/lisp/so-long-tests/*.el + - test/lisp/so-long-tests/*resources/** + artifacts: + name: ${test_name} + public: true + expire_in: 1 week + paths: + - test/lisp/so-long-tests/*.log + - **core + when: always variables: target: emacs-inotify make_params: "-C test check-lisp-so-long-tests" test-lisp-term-inotify: stage: normal + needs: [build-image-inotify] extends: [.job-template, .test-template] rules: - changes: - lisp/term/*.el - test/lisp/term/*.el + - test/lisp/term/*resources/** + artifacts: + name: ${test_name} + public: true + expire_in: 1 week + paths: + - test/lisp/term/*.log + - **core + when: always variables: target: emacs-inotify make_params: "-C test check-lisp-term" test-lisp-textmodes-inotify: stage: normal + needs: [build-image-inotify] extends: [.job-template, .test-template] rules: - changes: - lisp/textmodes/*.el - test/lisp/textmodes/*.el + - test/lisp/textmodes/*resources/** + artifacts: + name: ${test_name} + public: true + expire_in: 1 week + paths: + - test/lisp/textmodes/*.log + - **core + when: always variables: target: emacs-inotify make_params: "-C test check-lisp-textmodes" test-lisp-url-inotify: stage: normal + needs: [build-image-inotify] extends: [.job-template, .test-template] rules: - changes: - lisp/url/*.el - test/lisp/url/*.el + - test/lisp/url/*resources/** + artifacts: + name: ${test_name} + public: true + expire_in: 1 week + paths: + - test/lisp/url/*.log + - **core + when: always variables: target: emacs-inotify make_params: "-C test check-lisp-url" test-lisp-vc-inotify: stage: normal + needs: [build-image-inotify] extends: [.job-template, .test-template] rules: - changes: - lisp/vc/*.el - test/lisp/vc/*.el + - test/lisp/vc/*resources/** + artifacts: + name: ${test_name} + public: true + expire_in: 1 week + paths: + - test/lisp/vc/*.log + - **core + when: always variables: target: emacs-inotify make_params: "-C test check-lisp-vc" test-misc-inotify: stage: normal + needs: [build-image-inotify] extends: [.job-template, .test-template] rules: - changes: - admin/*.el - test/misc/*.el + - test/misc/*resources/** + artifacts: + name: ${test_name} + public: true + expire_in: 1 week + paths: + - test/misc/*.log + - **core + when: always variables: target: emacs-inotify make_params: "-C test check-misc" test-src-inotify: stage: normal + needs: [build-image-inotify] extends: [.job-template, .test-template] rules: - changes: - src/*.{h,c} - test/src/*.el + - test/src/*resources/** + artifacts: + name: ${test_name} + public: true + expire_in: 1 week + paths: + - test/src/*.log + - **core + when: always variables: target: emacs-inotify make_params: "-C test check-src"