mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2025-01-08 15:35:02 +00:00
Reorganize emba control files
Using dynamic job generation in GitLab does not work sufficiently. So we generate the jobs in the Emacs sources. * configure.ac (SUBDIR_MAKEFILES): Add test/infra/Makefile. * test/Makefile.in (subdirs, generate-test-jobs): New targets. * test/infra/Makefile.in: * test/infra/test-jobs.yml: New files. * test/infra/default-gitlab-ci.yml: * test/infra/test-jobs-generator.sh: Remove. * test/infra/gitlab-ci.yml: Insert contents of default-gitlab-ci.yml. (stages): Remove generator and trigger. Add normal. (test-jobs-generator, test-jobs-pipeline): Remove jobs. (top): Include test-jobs.yml.
This commit is contained in:
parent
6d90444ba0
commit
75d294cd4a
@ -6309,6 +6309,13 @@ if test -f "$srcdir/$opt_makefile.in"; then
|
||||
dnl ", [], [opt_makefile='$opt_makefile']" and it should work.
|
||||
AC_CONFIG_FILES([test/Makefile])
|
||||
fi
|
||||
opt_makefile=test/infra/Makefile
|
||||
if test -f "$srcdir/$opt_makefile.in"; then
|
||||
SUBDIR_MAKEFILES="$SUBDIR_MAKEFILES $opt_makefile"
|
||||
dnl Again, it's best not to use a variable. Though you can add
|
||||
dnl ", [], [opt_makefile='$opt_makefile']" and it should work.
|
||||
AC_CONFIG_FILES([test/infra/Makefile])
|
||||
fi
|
||||
|
||||
|
||||
dnl The admin/ directory used to be excluded from tarfiles.
|
||||
|
@ -371,7 +371,13 @@ check-declare:
|
||||
$(emacs) -l check-declare \
|
||||
--eval '(check-declare-directory "$(srcdir)")'
|
||||
|
||||
.PHONY: subdir-targets
|
||||
.PHONY: subdirs subdir-targets generate-test-jobs
|
||||
|
||||
subdirs:
|
||||
@echo $(SUBDIRS)
|
||||
|
||||
subdir-targets:
|
||||
@echo $(SUBDIR_TARGETS)
|
||||
|
||||
generate-test-jobs:
|
||||
@$(MAKE) -C infra generate-test-jobs SUBDIRS="$(SUBDIRS)"
|
||||
|
86
test/infra/Makefile.in
Normal file
86
test/infra/Makefile.in
Normal file
@ -0,0 +1,86 @@
|
||||
### test/infra/Makefile. Generated from Makefile.in by configure.
|
||||
|
||||
# Copyright (C) 2021 Free Software Foundation, Inc.
|
||||
|
||||
# This file is part of GNU Emacs.
|
||||
|
||||
# GNU Emacs is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
|
||||
# GNU Emacs is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
### Commentary:
|
||||
|
||||
## Generate the test-jobs.yml file for emba.
|
||||
|
||||
### Code:
|
||||
|
||||
SHELL = @SHELL@
|
||||
|
||||
top_builddir = @top_builddir@
|
||||
|
||||
-include ${top_builddir}/src/verbose.mk
|
||||
|
||||
## Get the tests for only a specific directory.
|
||||
SUBDIRS ?= $(shell make -s -C .. subdirs)
|
||||
SUBDIR_TARGETS =
|
||||
FILE = test-jobs.yml
|
||||
|
||||
define subdir_template
|
||||
$(eval target = check-$(subst /,-,$(1)))
|
||||
SUBDIR_TARGETS += $(target)
|
||||
|
||||
$(eval
|
||||
ifeq ($(findstring src, $(1)), src)
|
||||
define changes
|
||||
@echo " - $(1)/*.{h,c}" >>$(FILE)
|
||||
@echo " - test/$(1)/*.el" >>$(FILE)
|
||||
endef
|
||||
else ifeq ($(findstring misc, $(1)), misc)
|
||||
define changes
|
||||
@echo " - admin/*.el" >>$(FILE)
|
||||
@echo " - test/$(1)/*.el" >>$(FILE)
|
||||
endef
|
||||
else
|
||||
define changes
|
||||
@echo " - $(1)/*.el" >>$(FILE)
|
||||
@echo " - test/$(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)
|
||||
endef
|
||||
|
||||
$(foreach subdir, $(SUBDIRS), $(eval $(call subdir_template,$(subdir))))
|
||||
|
||||
all: generate-test-jobs
|
||||
|
||||
.PHONY: generate-test-jobs $(FILE)
|
||||
|
||||
generate-test-jobs: clean $(FILE) $(SUBDIR_TARGETS)
|
||||
|
||||
$(FILE):
|
||||
$(AM_V_GEN)
|
||||
|
||||
clean:
|
||||
@rm -f $(FILE)
|
@ -1,216 +0,0 @@
|
||||
# Copyright (C) 2017-2021 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is part of GNU Emacs.
|
||||
#
|
||||
# GNU Emacs is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# GNU Emacs is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
# GNU Emacs support for the GitLab protocol for CI.
|
||||
|
||||
# The presence of this file does not imply any FSF/GNU endorsement of
|
||||
# any particular service that uses that protocol. Also, it is intended for
|
||||
# evaluation purposes, thus possibly temporary.
|
||||
|
||||
# Maintainer: Ted Zlatanov <tzz@lifelogs.com>
|
||||
# URL: https://emba.gnu.org/emacs/emacs
|
||||
|
||||
# Never run merge request pipelines, they usually duplicate push pipelines
|
||||
# see https://docs.gitlab.com/ee/ci/yaml/README.html#common-if-clauses-for-rules
|
||||
|
||||
# Rules: always run tags and branches named master*, emacs*, feature*, fix*
|
||||
# Test that it triggers by pushing a tag: `git tag mytag; git push origin mytag`
|
||||
# Test that it triggers by pushing to: feature/emba, feature1, master, master-2, fix/emba, emacs-299, fix-2
|
||||
# Test that it doesn't trigger by pushing to: scratch-2, scratch/emba, oldbranch, dev
|
||||
workflow:
|
||||
rules:
|
||||
- if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
|
||||
when: never
|
||||
- if: '$CI_COMMIT_TAG'
|
||||
when: always
|
||||
- if: '$CI_COMMIT_BRANCH !~ /^(master|emacs|feature|fix)/'
|
||||
when: never
|
||||
- when: always
|
||||
|
||||
variables:
|
||||
GIT_STRATEGY: fetch
|
||||
EMACS_EMBA_CI: 1
|
||||
# Three hours, see below.
|
||||
EMACS_TEST_TIMEOUT: 10800
|
||||
EMACS_TEST_VERBOSE: 1
|
||||
# Use TLS https://docs.gitlab.com/ee/ci/docker/using_docker_build.html#tls-enabled
|
||||
# DOCKER_HOST: tcp://docker:2376
|
||||
# DOCKER_TLS_CERTDIR: "/certs"
|
||||
# Put the configuration for each run in a separate directory to
|
||||
# avoid conflicts.
|
||||
DOCKER_CONFIG: "/.docker-config-${CI_COMMIT_SHA}"
|
||||
DOCKER_BUILDKIT: 1
|
||||
# We don't use ${CI_COMMIT_SHA} to be able to do one bootstrap
|
||||
# across multiple builds.
|
||||
BUILD_TAG: ${CI_COMMIT_REF_SLUG}
|
||||
# Disable if you don't need it, it can be a security risk.
|
||||
CI_DEBUG_TRACE: "true"
|
||||
|
||||
default:
|
||||
image: docker:19.03.12
|
||||
timeout: 3 hours
|
||||
before_script:
|
||||
- docker info
|
||||
- echo "docker registry is ${CI_REGISTRY}"
|
||||
- docker login -u ${CI_REGISTRY_USER} -p ${CI_REGISTRY_PASSWORD} ${CI_REGISTRY}
|
||||
|
||||
.job-template:
|
||||
variables:
|
||||
test_name: ${CI_JOB_NAME}-${CI_COMMIT_SHORT_SHA}
|
||||
rules:
|
||||
- changes:
|
||||
- "**Makefile.in"
|
||||
- .gitlab-ci.yml
|
||||
- aclocal.m4
|
||||
- autogen.sh
|
||||
- configure.ac
|
||||
- lib/*.{h,c}
|
||||
- lisp/**.el
|
||||
- src/*.{h,c}
|
||||
- test/infra/*
|
||||
- test/lib-src/*.el
|
||||
- test/lisp/**.el
|
||||
- test/misc/*.el
|
||||
- test/src/*.el
|
||||
- changes:
|
||||
# gfilemonitor, kqueue
|
||||
- src/gfilenotify.c
|
||||
- src/kqueue.c
|
||||
# MS Windows
|
||||
- "**w32*"
|
||||
# GNUstep
|
||||
- lisp/term/ns-win.el
|
||||
- src/ns*.{h,m}
|
||||
- src/macfont.{h,m}
|
||||
when: never
|
||||
# These will be cached across builds.
|
||||
cache:
|
||||
key: ${CI_COMMIT_SHA}
|
||||
paths: []
|
||||
policy: pull-push
|
||||
# These will be saved for followup builds.
|
||||
artifacts:
|
||||
expire_in: 24 hrs
|
||||
paths: []
|
||||
# Using the variables for each job.
|
||||
script:
|
||||
- docker pull ${CI_REGISTRY_IMAGE}:${target}-${BUILD_TAG}
|
||||
# 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_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 -c "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}"'
|
||||
after_script:
|
||||
# - docker ps -a
|
||||
# - printenv
|
||||
# - test -n "$(docker ps -aq -f name=${test_name})" && ( docker export ${test_name} | tar -tvf - )
|
||||
- test -n "$(docker ps -aq -f name=${test_name})" && docker cp ${test_name}:checkout/test ${test_name}
|
||||
- test -n "$(docker ps -aq -f name=${test_name})" && docker rm ${test_name}
|
||||
# - ls -alR ${test_name}
|
||||
|
||||
.build-template:
|
||||
needs: []
|
||||
rules:
|
||||
- if: '$CI_PIPELINE_SOURCE == "web"'
|
||||
when: always
|
||||
- changes:
|
||||
- "**Makefile.in"
|
||||
- .gitlab-ci.yml
|
||||
- aclocal.m4
|
||||
- autogen.sh
|
||||
- configure.ac
|
||||
- lib/*.{h,c}
|
||||
- lisp/emacs-lisp/*.el
|
||||
- src/*.{h,c}
|
||||
- test/infra/*
|
||||
- changes:
|
||||
# gfilemonitor, kqueue
|
||||
- src/gfilenotify.c
|
||||
- src/kqueue.c
|
||||
# MS Windows
|
||||
- "**w32*"
|
||||
# GNUstep
|
||||
- lisp/term/ns-win.el
|
||||
- src/ns*.{h,m}
|
||||
- src/macfont.{h,m}
|
||||
when: never
|
||||
script:
|
||||
- docker build --pull --target ${target} -t ${CI_REGISTRY_IMAGE}:${target}-${BUILD_TAG} -f test/infra/Dockerfile.emba .
|
||||
- docker push ${CI_REGISTRY_IMAGE}:${target}-${BUILD_TAG}
|
||||
|
||||
.test-template:
|
||||
# Do not run fast and normal test jobs when scheduled.
|
||||
rules:
|
||||
- if: '$CI_JOB_STAGE =~ "fast|normal" && $CI_PIPELINE_SOURCE == "schedule"'
|
||||
when: never
|
||||
- when: always
|
||||
artifacts:
|
||||
name: ${test_name}
|
||||
public: true
|
||||
expire_in: 1 week
|
||||
paths:
|
||||
- ${test_name}/**/*.log
|
||||
- ${test_name}/**/core
|
||||
- ${test_name}/core
|
||||
when: always
|
||||
|
||||
.gnustep-template:
|
||||
rules:
|
||||
- if: '$CI_PIPELINE_SOURCE == "web"'
|
||||
- if: '$CI_PIPELINE_SOURCE == "schedule"'
|
||||
changes:
|
||||
- "**Makefile.in"
|
||||
- .gitlab-ci.yml
|
||||
- configure.ac
|
||||
- src/ns*.{h,m}
|
||||
- src/macfont.{h,m}
|
||||
- lisp/term/ns-win.el
|
||||
- nextstep/**
|
||||
- test/infra/*
|
||||
|
||||
.filenotify-gio-template:
|
||||
rules:
|
||||
- if: '$CI_PIPELINE_SOURCE == "web"'
|
||||
- if: '$CI_PIPELINE_SOURCE == "schedule"'
|
||||
changes:
|
||||
- "**Makefile.in"
|
||||
- .gitlab-ci.yml
|
||||
- lisp/autorevert.el
|
||||
- lisp/filenotify.el
|
||||
- lisp/net/tramp-sh.el
|
||||
- src/gfilenotify.c
|
||||
- test/infra/*
|
||||
- test/lisp/autorevert-tests.el
|
||||
- test/lisp/filenotify-tests.el
|
||||
|
||||
.native-comp-template:
|
||||
rules:
|
||||
- if: '$CI_PIPELINE_SOURCE == "web"'
|
||||
- if: '$CI_PIPELINE_SOURCE == "schedule"'
|
||||
changes:
|
||||
- "**Makefile.in"
|
||||
- .gitlab-ci.yml
|
||||
- lisp/emacs-lisp/comp.el
|
||||
- lisp/emacs-lisp/comp-cstr.el
|
||||
- src/comp.{h,m}
|
||||
- test/infra/*
|
||||
- test/src/comp-resources/*.el
|
||||
- test/src/comp-tests.el
|
||||
timeout: 8 hours
|
||||
|
||||
# Local Variables:
|
||||
# add-log-current-defun-header-regexp: "^\\([-_.[:alnum:]]+\\)[ \t]*:"
|
||||
# End:
|
@ -24,15 +24,197 @@
|
||||
# Maintainer: Ted Zlatanov <tzz@lifelogs.com>
|
||||
# URL: https://emba.gnu.org/emacs/emacs
|
||||
|
||||
# Include defaults.
|
||||
include: '/test/infra/default-gitlab-ci.yml'
|
||||
# Never run merge request pipelines, they usually duplicate push pipelines
|
||||
# see https://docs.gitlab.com/ee/ci/yaml/README.html#common-if-clauses-for-rules
|
||||
|
||||
# Rules: always run tags and branches named master*, emacs*, feature*, fix*
|
||||
# Test that it triggers by pushing a tag: `git tag mytag; git push origin mytag`
|
||||
# Test that it triggers by pushing to: feature/emba, feature1, master, master-2, fix/emba, emacs-299, fix-2
|
||||
# Test that it doesn't trigger by pushing to: scratch-2, scratch/emba, oldbranch, dev
|
||||
workflow:
|
||||
rules:
|
||||
- if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
|
||||
when: never
|
||||
- if: '$CI_COMMIT_TAG'
|
||||
when: always
|
||||
- if: '$CI_COMMIT_BRANCH !~ /^(master|emacs|feature|fix)/'
|
||||
when: never
|
||||
- when: always
|
||||
|
||||
variables:
|
||||
GIT_STRATEGY: fetch
|
||||
EMACS_EMBA_CI: 1
|
||||
# Three hours, see below.
|
||||
EMACS_TEST_TIMEOUT: 10800
|
||||
EMACS_TEST_VERBOSE: 1
|
||||
# Use TLS https://docs.gitlab.com/ee/ci/docker/using_docker_build.html#tls-enabled
|
||||
# DOCKER_HOST: tcp://docker:2376
|
||||
# DOCKER_TLS_CERTDIR: "/certs"
|
||||
# Put the configuration for each run in a separate directory to
|
||||
# avoid conflicts.
|
||||
DOCKER_CONFIG: "/.docker-config-${CI_COMMIT_SHA}"
|
||||
DOCKER_BUILDKIT: 1
|
||||
# We don't use ${CI_COMMIT_SHA} to be able to do one bootstrap
|
||||
# across multiple builds.
|
||||
BUILD_TAG: ${CI_COMMIT_REF_SLUG}
|
||||
# Disable if you don't need it, it can be a security risk.
|
||||
# CI_DEBUG_TRACE: "true"
|
||||
|
||||
default:
|
||||
image: docker:19.03.12
|
||||
timeout: 3 hours
|
||||
before_script:
|
||||
- docker info
|
||||
- echo "docker registry is ${CI_REGISTRY}"
|
||||
- docker login -u ${CI_REGISTRY_USER} -p ${CI_REGISTRY_PASSWORD} ${CI_REGISTRY}
|
||||
|
||||
.job-template:
|
||||
variables:
|
||||
test_name: ${CI_JOB_NAME}-${CI_COMMIT_SHORT_SHA}
|
||||
rules:
|
||||
- changes:
|
||||
- "**Makefile.in"
|
||||
- .gitlab-ci.yml
|
||||
- aclocal.m4
|
||||
- autogen.sh
|
||||
- configure.ac
|
||||
- lib/*.{h,c}
|
||||
- lisp/**.el
|
||||
- src/*.{h,c}
|
||||
- test/infra/*
|
||||
- test/lib-src/*.el
|
||||
- test/lisp/**.el
|
||||
- test/misc/*.el
|
||||
- test/src/*.el
|
||||
- changes:
|
||||
# gfilemonitor, kqueue
|
||||
- src/gfilenotify.c
|
||||
- src/kqueue.c
|
||||
# MS Windows
|
||||
- "**w32*"
|
||||
# GNUstep
|
||||
- lisp/term/ns-win.el
|
||||
- src/ns*.{h,m}
|
||||
- src/macfont.{h,m}
|
||||
when: never
|
||||
# These will be cached across builds.
|
||||
cache:
|
||||
key: ${CI_COMMIT_SHA}
|
||||
paths: []
|
||||
policy: pull-push
|
||||
# These will be saved for followup builds.
|
||||
artifacts:
|
||||
expire_in: 24 hrs
|
||||
paths: []
|
||||
# Using the variables for each job.
|
||||
script:
|
||||
- docker pull ${CI_REGISTRY_IMAGE}:${target}-${BUILD_TAG}
|
||||
# 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_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 -c "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}"'
|
||||
after_script:
|
||||
# - docker ps -a
|
||||
# - printenv
|
||||
# - test -n "$(docker ps -aq -f name=${test_name})" && ( docker export ${test_name} | tar -tvf - )
|
||||
- test -n "$(docker ps -aq -f name=${test_name})" && docker cp ${test_name}:checkout/test ${test_name}
|
||||
- test -n "$(docker ps -aq -f name=${test_name})" && docker rm ${test_name}
|
||||
# - ls -alR ${test_name}
|
||||
|
||||
.build-template:
|
||||
needs: []
|
||||
rules:
|
||||
- if: '$CI_PIPELINE_SOURCE == "web"'
|
||||
when: always
|
||||
- changes:
|
||||
- "**Makefile.in"
|
||||
- .gitlab-ci.yml
|
||||
- aclocal.m4
|
||||
- autogen.sh
|
||||
- configure.ac
|
||||
- lib/*.{h,c}
|
||||
- lisp/emacs-lisp/*.el
|
||||
- src/*.{h,c}
|
||||
- test/infra/*
|
||||
- changes:
|
||||
# gfilemonitor, kqueue
|
||||
- src/gfilenotify.c
|
||||
- src/kqueue.c
|
||||
# MS Windows
|
||||
- "**w32*"
|
||||
# GNUstep
|
||||
- lisp/term/ns-win.el
|
||||
- src/ns*.{h,m}
|
||||
- src/macfont.{h,m}
|
||||
when: never
|
||||
script:
|
||||
- docker build --pull --target ${target} -t ${CI_REGISTRY_IMAGE}:${target}-${BUILD_TAG} -f test/infra/Dockerfile.emba .
|
||||
- docker push ${CI_REGISTRY_IMAGE}:${target}-${BUILD_TAG}
|
||||
|
||||
.test-template:
|
||||
# Do not run fast and normal test jobs when scheduled.
|
||||
rules:
|
||||
- if: '$CI_JOB_STAGE =~ "fast|normal" && $CI_PIPELINE_SOURCE == "schedule"'
|
||||
when: never
|
||||
- when: always
|
||||
artifacts:
|
||||
name: ${test_name}
|
||||
public: true
|
||||
expire_in: 1 week
|
||||
paths:
|
||||
- ${test_name}/**/*.log
|
||||
- ${test_name}/**/core
|
||||
- ${test_name}/core
|
||||
when: always
|
||||
|
||||
.gnustep-template:
|
||||
rules:
|
||||
- if: '$CI_PIPELINE_SOURCE == "web"'
|
||||
- if: '$CI_PIPELINE_SOURCE == "schedule"'
|
||||
changes:
|
||||
- "**Makefile.in"
|
||||
- .gitlab-ci.yml
|
||||
- configure.ac
|
||||
- src/ns*.{h,m}
|
||||
- src/macfont.{h,m}
|
||||
- lisp/term/ns-win.el
|
||||
- nextstep/**
|
||||
- test/infra/*
|
||||
|
||||
.filenotify-gio-template:
|
||||
rules:
|
||||
- if: '$CI_PIPELINE_SOURCE == "web"'
|
||||
- if: '$CI_PIPELINE_SOURCE == "schedule"'
|
||||
changes:
|
||||
- "**Makefile.in"
|
||||
- .gitlab-ci.yml
|
||||
- lisp/autorevert.el
|
||||
- lisp/filenotify.el
|
||||
- lisp/net/tramp-sh.el
|
||||
- src/gfilenotify.c
|
||||
- test/infra/*
|
||||
- test/lisp/autorevert-tests.el
|
||||
- test/lisp/filenotify-tests.el
|
||||
|
||||
.native-comp-template:
|
||||
rules:
|
||||
- if: '$CI_PIPELINE_SOURCE == "web"'
|
||||
- if: '$CI_PIPELINE_SOURCE == "schedule"'
|
||||
changes:
|
||||
- "**Makefile.in"
|
||||
- .gitlab-ci.yml
|
||||
- lisp/emacs-lisp/comp.el
|
||||
- lisp/emacs-lisp/comp-cstr.el
|
||||
- src/comp.{h,m}
|
||||
- test/infra/*
|
||||
- test/src/comp-resources/*.el
|
||||
- test/src/comp-tests.el
|
||||
timeout: 8 hours
|
||||
|
||||
stages:
|
||||
- build-images
|
||||
- generator
|
||||
- trigger
|
||||
# - fast
|
||||
# - normal
|
||||
- normal
|
||||
- platform-images
|
||||
- platforms
|
||||
- native-comp-images
|
||||
@ -52,21 +234,7 @@ build-image-inotify:
|
||||
# target: emacs-inotify
|
||||
# make_params: "-C test check"
|
||||
|
||||
test-jobs-generator:
|
||||
stage: generator
|
||||
script:
|
||||
- test/infra/test-jobs-generator.sh > test-jobs.yml
|
||||
artifacts:
|
||||
paths:
|
||||
- test-jobs.yml
|
||||
|
||||
test-jobs-pipeline:
|
||||
stage: trigger
|
||||
trigger:
|
||||
include:
|
||||
- artifact: test-jobs.yml
|
||||
job: test-jobs-generator
|
||||
strategy: depend
|
||||
include: '/test/infra/test-jobs.yml'
|
||||
|
||||
# test-lisp-inotify:
|
||||
# stage: normal
|
||||
|
@ -1,75 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
# Copyright (C) 2021 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is part of GNU Emacs.
|
||||
#
|
||||
# GNU Emacs is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# GNU Emacs is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
# GNU Emacs support for the gitlab-ci.yml template generation.
|
||||
|
||||
# The presence of this file does not imply any FSF/GNU endorsement of
|
||||
# any particular service that uses that protocol. Also, it is intended for
|
||||
# evaluation purposes, thus possibly temporary.
|
||||
|
||||
# Maintainer: Michael Albinus <michael.albinus@gmx.de>
|
||||
# URL: https://emba.gnu.org/emacs/emacs
|
||||
|
||||
cd test
|
||||
SUBDIRS=\
|
||||
$(find lib-src lisp misc src -type d \
|
||||
! \( -path "*resources*" -o -path "*auto-save-list" \) -print | sort -)
|
||||
|
||||
for subdir in $SUBDIRS; do
|
||||
target=check-$(echo $subdir | tr '/' '-')
|
||||
|
||||
case $target in
|
||||
check*-src)
|
||||
changes="
|
||||
- $subdir/*.{h,c}
|
||||
- test/$subdir/*.el"
|
||||
;;
|
||||
check-misc)
|
||||
changes="
|
||||
- admin/*.el
|
||||
- test/$subdir/*.el"
|
||||
;;
|
||||
*)
|
||||
changes="
|
||||
- $subdir/*.el
|
||||
- test/$subdir/*.el"
|
||||
;;
|
||||
esac
|
||||
|
||||
cat <<EOF
|
||||
include:
|
||||
- local: '/test/infra/default-gitlab-ci.yml'
|
||||
|
||||
stages:
|
||||
- test
|
||||
|
||||
EOF
|
||||
|
||||
cat <<EOF
|
||||
test${target##check}-inotify:
|
||||
stage: test
|
||||
extends: [.job-template, .test-template]
|
||||
rules:
|
||||
- changes: $changes
|
||||
variables:
|
||||
target: emacs-inotify
|
||||
make_params: "-C test $target"
|
||||
|
||||
EOF
|
||||
done
|
362
test/infra/test-jobs.yml
Normal file
362
test/infra/test-jobs.yml
Normal file
@ -0,0 +1,362 @@
|
||||
test-lib-src-inotify:
|
||||
stage: normal
|
||||
extends: [.job-template, .test-template]
|
||||
rules:
|
||||
- changes:
|
||||
- lib-src/*.{h,c}
|
||||
- test/lib-src/*.el
|
||||
variables:
|
||||
target: emacs-inotify
|
||||
make_params: "-C test check-lib-src"
|
||||
|
||||
test-lisp-inotify:
|
||||
stage: normal
|
||||
extends: [.job-template, .test-template]
|
||||
rules:
|
||||
- changes:
|
||||
- lisp/*.el
|
||||
- test/lisp/*.el
|
||||
variables:
|
||||
target: emacs-inotify
|
||||
make_params: "-C test check-lisp"
|
||||
|
||||
test-lisp-calc-inotify:
|
||||
stage: normal
|
||||
extends: [.job-template, .test-template]
|
||||
rules:
|
||||
- changes:
|
||||
- lisp/calc/*.el
|
||||
- test/lisp/calc/*.el
|
||||
variables:
|
||||
target: emacs-inotify
|
||||
make_params: "-C test check-lisp-calc"
|
||||
|
||||
test-lisp-calendar-inotify:
|
||||
stage: normal
|
||||
extends: [.job-template, .test-template]
|
||||
rules:
|
||||
- changes:
|
||||
- lisp/calendar/*.el
|
||||
- test/lisp/calendar/*.el
|
||||
variables:
|
||||
target: emacs-inotify
|
||||
make_params: "-C test check-lisp-calendar"
|
||||
|
||||
test-lisp-cedet-inotify:
|
||||
stage: normal
|
||||
extends: [.job-template, .test-template]
|
||||
rules:
|
||||
- changes:
|
||||
- lisp/cedet/*.el
|
||||
- test/lisp/cedet/*.el
|
||||
variables:
|
||||
target: emacs-inotify
|
||||
make_params: "-C test check-lisp-cedet"
|
||||
|
||||
test-lisp-cedet-semantic-inotify:
|
||||
stage: normal
|
||||
extends: [.job-template, .test-template]
|
||||
rules:
|
||||
- changes:
|
||||
- lisp/cedet/semantic/*.el
|
||||
- test/lisp/cedet/semantic/*.el
|
||||
variables:
|
||||
target: emacs-inotify
|
||||
make_params: "-C test check-lisp-cedet-semantic"
|
||||
|
||||
test-lisp-cedet-semantic-bovine-inotify:
|
||||
stage: normal
|
||||
extends: [.job-template, .test-template]
|
||||
rules:
|
||||
- changes:
|
||||
- lisp/cedet/semantic/bovine/*.el
|
||||
- test/lisp/cedet/semantic/bovine/*.el
|
||||
variables:
|
||||
target: emacs-inotify
|
||||
make_params: "-C test check-lisp-cedet-semantic-bovine"
|
||||
|
||||
test-lisp-cedet-srecode-inotify:
|
||||
stage: normal
|
||||
extends: [.job-template, .test-template]
|
||||
rules:
|
||||
- changes:
|
||||
- lisp/cedet/srecode/*.el
|
||||
- test/lisp/cedet/srecode/*.el
|
||||
variables:
|
||||
target: emacs-inotify
|
||||
make_params: "-C test check-lisp-cedet-srecode"
|
||||
|
||||
test-lisp-emacs-lisp-inotify:
|
||||
stage: normal
|
||||
extends: [.job-template, .test-template]
|
||||
rules:
|
||||
- changes:
|
||||
- lisp/emacs-lisp/*.el
|
||||
- test/lisp/emacs-lisp/*.el
|
||||
variables:
|
||||
target: emacs-inotify
|
||||
make_params: "-C test check-lisp-emacs-lisp"
|
||||
|
||||
test-lisp-emacs-lisp-eieio-tests-inotify:
|
||||
stage: normal
|
||||
extends: [.job-template, .test-template]
|
||||
rules:
|
||||
- changes:
|
||||
- lisp/emacs-lisp/eieio-tests/*.el
|
||||
- test/lisp/emacs-lisp/eieio-tests/*.el
|
||||
variables:
|
||||
target: emacs-inotify
|
||||
make_params: "-C test check-lisp-emacs-lisp-eieio-tests"
|
||||
|
||||
test-lisp-emacs-lisp-faceup-tests-inotify:
|
||||
stage: normal
|
||||
extends: [.job-template, .test-template]
|
||||
rules:
|
||||
- changes:
|
||||
- lisp/emacs-lisp/faceup-tests/*.el
|
||||
- test/lisp/emacs-lisp/faceup-tests/*.el
|
||||
variables:
|
||||
target: emacs-inotify
|
||||
make_params: "-C test check-lisp-emacs-lisp-faceup-tests"
|
||||
|
||||
test-lisp-emulation-inotify:
|
||||
stage: normal
|
||||
extends: [.job-template, .test-template]
|
||||
rules:
|
||||
- changes:
|
||||
- lisp/emulation/*.el
|
||||
- test/lisp/emulation/*.el
|
||||
variables:
|
||||
target: emacs-inotify
|
||||
make_params: "-C test check-lisp-emulation"
|
||||
|
||||
test-lisp-erc-inotify:
|
||||
stage: normal
|
||||
extends: [.job-template, .test-template]
|
||||
rules:
|
||||
- changes:
|
||||
- lisp/erc/*.el
|
||||
- test/lisp/erc/*.el
|
||||
variables:
|
||||
target: emacs-inotify
|
||||
make_params: "-C test check-lisp-erc"
|
||||
|
||||
test-lisp-eshell-inotify:
|
||||
stage: normal
|
||||
extends: [.job-template, .test-template]
|
||||
rules:
|
||||
- changes:
|
||||
- lisp/eshell/*.el
|
||||
- test/lisp/eshell/*.el
|
||||
variables:
|
||||
target: emacs-inotify
|
||||
make_params: "-C test check-lisp-eshell"
|
||||
|
||||
test-lisp-gnus-inotify:
|
||||
stage: normal
|
||||
extends: [.job-template, .test-template]
|
||||
rules:
|
||||
- changes:
|
||||
- lisp/gnus/*.el
|
||||
- test/lisp/gnus/*.el
|
||||
variables:
|
||||
target: emacs-inotify
|
||||
make_params: "-C test check-lisp-gnus"
|
||||
|
||||
test-lisp-image-inotify:
|
||||
stage: normal
|
||||
extends: [.job-template, .test-template]
|
||||
rules:
|
||||
- changes:
|
||||
- lisp/image/*.el
|
||||
- test/lisp/image/*.el
|
||||
variables:
|
||||
target: emacs-inotify
|
||||
make_params: "-C test check-lisp-image"
|
||||
|
||||
test-lisp-international-inotify:
|
||||
stage: normal
|
||||
extends: [.job-template, .test-template]
|
||||
rules:
|
||||
- changes:
|
||||
- lisp/international/*.el
|
||||
- test/lisp/international/*.el
|
||||
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
|
||||
extends: [.job-template, .test-template]
|
||||
rules:
|
||||
- changes:
|
||||
- lisp/mail/*.el
|
||||
- test/lisp/mail/*.el
|
||||
variables:
|
||||
target: emacs-inotify
|
||||
make_params: "-C test check-lisp-mail"
|
||||
|
||||
test-lisp-mh-e-inotify:
|
||||
stage: normal
|
||||
extends: [.job-template, .test-template]
|
||||
rules:
|
||||
- changes:
|
||||
- lisp/mh-e/*.el
|
||||
- test/lisp/mh-e/*.el
|
||||
variables:
|
||||
target: emacs-inotify
|
||||
make_params: "-C test check-lisp-mh-e"
|
||||
|
||||
test-lisp-net-inotify:
|
||||
stage: normal
|
||||
extends: [.job-template, .test-template]
|
||||
rules:
|
||||
- changes:
|
||||
- lisp/net/*.el
|
||||
- test/lisp/net/*.el
|
||||
variables:
|
||||
target: emacs-inotify
|
||||
make_params: "-C test check-lisp-net"
|
||||
|
||||
test-lisp-nxml-inotify:
|
||||
stage: normal
|
||||
extends: [.job-template, .test-template]
|
||||
rules:
|
||||
- changes:
|
||||
- lisp/nxml/*.el
|
||||
- test/lisp/nxml/*.el
|
||||
variables:
|
||||
target: emacs-inotify
|
||||
make_params: "-C test check-lisp-nxml"
|
||||
|
||||
test-lisp-obsolete-inotify:
|
||||
stage: normal
|
||||
extends: [.job-template, .test-template]
|
||||
rules:
|
||||
- changes:
|
||||
- lisp/obsolete/*.el
|
||||
- test/lisp/obsolete/*.el
|
||||
variables:
|
||||
target: emacs-inotify
|
||||
make_params: "-C test check-lisp-obsolete"
|
||||
|
||||
test-lisp-org-inotify:
|
||||
stage: normal
|
||||
extends: [.job-template, .test-template]
|
||||
rules:
|
||||
- changes:
|
||||
- lisp/org/*.el
|
||||
- test/lisp/org/*.el
|
||||
variables:
|
||||
target: emacs-inotify
|
||||
make_params: "-C test check-lisp-org"
|
||||
|
||||
test-lisp-play-inotify:
|
||||
stage: normal
|
||||
extends: [.job-template, .test-template]
|
||||
rules:
|
||||
- changes:
|
||||
- lisp/play/*.el
|
||||
- test/lisp/play/*.el
|
||||
variables:
|
||||
target: emacs-inotify
|
||||
make_params: "-C test check-lisp-play"
|
||||
|
||||
test-lisp-progmodes-inotify:
|
||||
stage: normal
|
||||
extends: [.job-template, .test-template]
|
||||
rules:
|
||||
- changes:
|
||||
- lisp/progmodes/*.el
|
||||
- test/lisp/progmodes/*.el
|
||||
variables:
|
||||
target: emacs-inotify
|
||||
make_params: "-C test check-lisp-progmodes"
|
||||
|
||||
test-lisp-so-long-tests-inotify:
|
||||
stage: normal
|
||||
extends: [.job-template, .test-template]
|
||||
rules:
|
||||
- changes:
|
||||
- lisp/so-long-tests/*.el
|
||||
- test/lisp/so-long-tests/*.el
|
||||
variables:
|
||||
target: emacs-inotify
|
||||
make_params: "-C test check-lisp-so-long-tests"
|
||||
|
||||
test-lisp-term-inotify:
|
||||
stage: normal
|
||||
extends: [.job-template, .test-template]
|
||||
rules:
|
||||
- changes:
|
||||
- lisp/term/*.el
|
||||
- test/lisp/term/*.el
|
||||
variables:
|
||||
target: emacs-inotify
|
||||
make_params: "-C test check-lisp-term"
|
||||
|
||||
test-lisp-textmodes-inotify:
|
||||
stage: normal
|
||||
extends: [.job-template, .test-template]
|
||||
rules:
|
||||
- changes:
|
||||
- lisp/textmodes/*.el
|
||||
- test/lisp/textmodes/*.el
|
||||
variables:
|
||||
target: emacs-inotify
|
||||
make_params: "-C test check-lisp-textmodes"
|
||||
|
||||
test-lisp-url-inotify:
|
||||
stage: normal
|
||||
extends: [.job-template, .test-template]
|
||||
rules:
|
||||
- changes:
|
||||
- lisp/url/*.el
|
||||
- test/lisp/url/*.el
|
||||
variables:
|
||||
target: emacs-inotify
|
||||
make_params: "-C test check-lisp-url"
|
||||
|
||||
test-lisp-vc-inotify:
|
||||
stage: normal
|
||||
extends: [.job-template, .test-template]
|
||||
rules:
|
||||
- changes:
|
||||
- lisp/vc/*.el
|
||||
- test/lisp/vc/*.el
|
||||
variables:
|
||||
target: emacs-inotify
|
||||
make_params: "-C test check-lisp-vc"
|
||||
|
||||
test-misc-inotify:
|
||||
stage: normal
|
||||
extends: [.job-template, .test-template]
|
||||
rules:
|
||||
- changes:
|
||||
- admin/*.el
|
||||
- test/misc/*.el
|
||||
variables:
|
||||
target: emacs-inotify
|
||||
make_params: "-C test check-misc"
|
||||
|
||||
test-src-inotify:
|
||||
stage: normal
|
||||
extends: [.job-template, .test-template]
|
||||
rules:
|
||||
- changes:
|
||||
- src/*.{h,c}
|
||||
- test/src/*.el
|
||||
variables:
|
||||
target: emacs-inotify
|
||||
make_params: "-C test check-src"
|
Loading…
Reference in New Issue
Block a user