emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

master 9f06977: Continue adaptions of emba files


From: Michael Albinus
Subject: master 9f06977: Continue adaptions of emba files
Date: Sat, 20 Nov 2021 04:07:57 -0500 (EST)

branch: master
commit 9f06977782ef58fa40bed69368ab92a080f035ec
Author: Michael Albinus <michael.albinus@gmx.de>
Commit: Michael Albinus <michael.albinus@gmx.de>

    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.
---
 .gitlab-ci.yml                                     |   2 +-
 .../infra/{gitlab-ci.yml => default-gitlab-ci.yml} | 129 +-------------
 test/infra/gitlab-ci.yml                           | 194 +--------------------
 test/infra/test-jobs-generator.sh                  |  10 +-
 4 files changed, 15 insertions(+), 320 deletions(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 3138f41..402c17d 100644
--- a/.gitlab-ci.yml
+++ b/.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
diff --git a/test/infra/gitlab-ci.yml b/test/infra/default-gitlab-ci.yml
similarity index 68%
copy from test/infra/gitlab-ci.yml
copy to test/infra/default-gitlab-ci.yml
index abc7bdd..f6fadee 100644
--- a/test/infra/gitlab-ci.yml
+++ b/test/infra/default-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
@@ -211,133 +211,6 @@ default:
         - test/src/comp-tests.el
   timeout: 8 hours
 
-stages:
-  - build-images
-  - generator
-  - trigger
-#  - fast
-  - normal
-  - platform-images
-  - platforms
-  - native-comp-images
-  - native-comp
-  - slow
-
-build-image-inotify:
-  stage: build-images
-  extends: [.job-template, .build-template]
-  variables:
-    target: emacs-inotify
-
-# test-fast-inotify:
-#   stage: fast
-#   extends: [.job-template, .test-template]
-#   variables:
-#     target: emacs-inotify
-#     make_params: "-C test check"
-
-test-jobs-generator:
-  stage: generator
-  script:
-    - pwd
-    - 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
-
-# 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
-  needs: [build-image-filenotify-gio]
-  extends: [.job-template, .test-template, .filenotify-gio-template]
-  variables:
-    target: emacs-filenotify-gio
-    make_params: "-k -C test autorevert-tests.log filenotify-tests.log"
-
-test-gnustep:
-  # This tests the GNUstep build process.
-  stage: platforms
-  needs: [build-image-gnustep]
-  extends: [.job-template, .gnustep-template]
-  variables:
-    target: emacs-gnustep
-    make_params: install
-
-build-native-comp-speed0:
-  stage: native-comp-images
-  extends: [.job-template, .build-template, .native-comp-template]
-  variables:
-    target: emacs-native-comp-speed0
-
-build-native-comp-speed1:
-  stage: native-comp-images
-  extends: [.job-template, .build-template, .native-comp-template]
-  variables:
-    target: emacs-native-comp-speed1
-
-build-native-comp-speed2:
-  stage: native-comp-images
-  extends: [.job-template, .build-template, .native-comp-template]
-  variables:
-    target: emacs-native-comp-speed2
-
-test-native-comp-speed0:
-  stage: native-comp
-  needs: [build-native-comp-speed0]
-  extends: [.job-template, .test-template, .native-comp-template]
-  variables:
-    target: emacs-native-comp-speed0
-    make_params: "-C test check SELECTOR='(not (tag :unstable))'"
-
-test-all-inotify:
-  # This tests also file monitor libraries inotify and inotifywatch.
-  stage: slow
-  needs: [build-image-inotify]
-  extends: [.job-template, .test-template]
-  rules:
-    # Note there's no "changes" section, so this always runs on a schedule.
-    - if: '$CI_PIPELINE_SOURCE == "web"'
-    - if: '$CI_PIPELINE_SOURCE == "schedule"'
-  variables:
-    target: emacs-inotify
-    make_params: check-expensive
-    # Two hours.
-    EMACS_TEST_TIMEOUT: 7200
-
 # Local Variables:
 # add-log-current-defun-header-regexp: "^\\([-_.[:alnum:]]+\\)[ \t]*:"
 # End:
diff --git a/test/infra/gitlab-ci.yml b/test/infra/gitlab-ci.yml
index abc7bdd..738e709 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 
- [...]
-  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
diff --git a/test/infra/test-jobs-generator.sh 
b/test/infra/test-jobs-generator.sh
index 96b61be..49f491e 100755
--- a/test/infra/test-jobs-generator.sh
+++ b/test/infra/test-jobs-generator.sh
@@ -20,7 +20,7 @@
 # GNU Emacs support for the gitlab-ci.yml template generation.
 
 # The presence of this file does not imply any FSF/GNU endorsement of
-# GitLab or any other particular tool.  Also, it is intended for
+# any particular service that uses that protocol.  Also, it is intended for
 # evaluation purposes, thus possibly temporary.
 
 # Maintainer: Michael Albinus <michael.albinus@gmx.de>
@@ -53,9 +53,15 @@ for subdir in $SUBDIRS; do
     esac
 
     cat <<EOF
+stages:
+  - normal
+
+EOF
+
+    cat <<EOF
 test${target##check}-inotify:
   stage: normal
-  # extends: [.job-template, .test-template]
+  extends: [.job-template, .test-template]
   rules:
     - changes: $changes
   variables:



reply via email to

[Prev in Thread] Current Thread [Next in Thread]