diff options
author | Michael Albinus <michael.albinus@gmx.de> | 2021-11-20 10:07:48 +0100 |
---|---|---|
committer | Michael Albinus <michael.albinus@gmx.de> | 2021-11-20 10:07:48 +0100 |
commit | 9f06977782ef58fa40bed69368ab92a080f035ec (patch) | |
tree | d36d888fc5ee668acf7f35a735bd2aa85f97ee22 /test/infra/gitlab-ci.yml | |
parent | 88458f7354e904a50ed1389869266437ba084533 (diff) | |
download | emacs-9f06977782ef58fa40bed69368ab92a080f035ec.tar.gz |
Continue adaptions of emba files
* test/infra/default-gitlab-ci.yml: New file, derived from
gitlab-ci.yml.
* test/infra/gitlab-ci.yml (top, test-jobs-pipeline):
Include default-gitlab-ci.yml.
(stages): Remove normal.
* test/infra/test-jobs-generator.sh: Generate also stages entry.
Diffstat (limited to 'test/infra/gitlab-ci.yml')
-rw-r--r-- | test/infra/gitlab-ci.yml | 194 |
1 files changed, 5 insertions, 189 deletions
diff --git a/test/infra/gitlab-ci.yml b/test/infra/gitlab-ci.yml index abc7bddbf73..738e709c6b3 100644 --- a/test/infra/gitlab-ci.yml +++ b/test/infra/gitlab-ci.yml @@ -15,7 +15,7 @@ # 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 +# 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 @@ -24,199 +24,15 @@ # 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 +# Include defaults. +include: '/test/infra/default-gitlab-ci.yml' stages: - build-images - generator - trigger # - fast - - normal +# - normal - platform-images - platforms - native-comp-images @@ -239,7 +55,6 @@ build-image-inotify: test-jobs-generator: stage: generator script: - - pwd - test/infra/test-jobs-generator.sh > test-jobs.yml artifacts: paths: @@ -249,6 +64,7 @@ test-jobs-pipeline: stage: trigger trigger: include: + - local: '/test/infra/default-gitlab-ci.yml' - artifact: test-jobs.yml job: test-jobs-generator strategy: depend |