1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-01-06 11:50:51 -08:00

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.
This commit is contained in:
Michael Albinus 2021-11-22 16:33:16 +01:00
parent 55f84a12ec
commit 196196c739
4 changed files with 375 additions and 54 deletions

View file

@ -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
<https://emba.gnu.org/help/ci/yaml/README.md>.
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

View file

@ -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)

View file

@ -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

View file

@ -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"