[Git][ghc/ghc][wip/backports-8.8] gitlab-ci: Introduce DWARF release jobs for Deb10 and Fedora 27

Ben Gamari gitlab at gitlab.haskell.org
Sun Jun 21 01:30:33 UTC 2020



Ben Gamari pushed to branch wip/backports-8.8 at Glasgow Haskell Compiler / GHC


Commits:
686f6b1a by Ben Gamari at 2020-06-20T21:30:26-04:00
gitlab-ci: Introduce DWARF release jobs for Deb10 and Fedora 27

(cherry picked from commit 481e31740672a37c5b3a8924bba7e15c4080bc2e)

- - - - -


1 changed file:

- .gitlab-ci.yml


Changes:

=====================================
.gitlab-ci.yml
=====================================
@@ -25,11 +25,12 @@ stages:
   - deploy     # push documentation
 
 .only-default: &only-default
-  only:
-    - master
-    - /ghc-[0-9]+\.[0-9]+/
-    - merge_requests
-    - tags
+  rules:
+    - if: $CI_MERGE_REQUEST_ID
+    - if: $CI_COMMIT_TAG
+    - if: '$CI_COMMIT_BRANCH == "master"'
+    - if: '$CI_COMMIT_BRANCH =~ /ghc-[0.9]+\.[0-9]+/'
+    - if: '$CI_PIPELINE_SOURCE == "web"'
 
 ############################################################
 # Runner Tags
@@ -42,6 +43,20 @@ stages:
 #         x86_64-linux to ensure low-latency availability.
 #
 
+.nightly: &nightly
+  rules:
+    - if: $NIGHTLY
+
+.release: &release
+  variables:
+    BUILD_FLAVOUR: "perf"
+    FLAVOUR: "perf"
+  artifacts:
+    when: always
+    expire_in: 1 year
+  rules:
+    - if: '$RELEASE == "yes"'
+
 
 ############################################################
 # Linting
@@ -62,9 +77,8 @@ ghc-linters:
   dependencies: []
   tags:
     - lint
-  only:
-    refs:
-      - merge_requests
+  rules:
+    - if: $CI_MERGE_REQUEST_ID
 
 # We allow the submodule checker to fail when run on merge requests (to
 # accomodate, e.g., haddock changes not yet upstream) but not on `master` or
@@ -80,18 +94,16 @@ ghc-linters:
 
 lint-submods:
   extends: .lint-submods
-  only:
-    refs:
-      - master
-      - /ghc-[0-9]+\.[0-9]+/
-      - wip/marge_bot_batch_merge_job
+  rules:
+    - if: '$CI_MERGE_REQUEST_LABELS =~ /.*marge_bot_batch_merge_job.*/'
+      allow_failure: false
+    - allow_failure: true
 
 lint-submods-mr:
   extends: .lint-submods
   allow_failure: true
-  only:
-    refs:
-      - merge_requests
+  rules:
+    - if: $CI_MERGE_REQUEST_ID
 
 .lint-changelogs:
   stage: lint
@@ -105,15 +117,13 @@ lint-submods-mr:
 lint-changelogs:
   extends: .lint-changelogs
   allow_failure: true
-  only:
-    refs:
-      - /ghc-[0-9]+\.[0-9]+/
+  rules:
+    - if: '$CI_COMMIT_BRANCH =~ /ghc-[0.9]+\.[0-9]+/'
 
 lint-release-changelogs:
   extends: .lint-changelogs
-  only:
-    refs:
-      - /ghc-[0-9]+\.[0-9]+\.[0-9]+-.*-release/
+  rules:
+    - if: '$CI_COMMIT_BRANCH =~ /ghc-[0.9]+\.[0-9]+/'
 
 
 ############################################################
@@ -281,14 +291,12 @@ validate-aarch64-linux-deb9:
     expire_in: 2 week
 
 nightly-aarch64-linux-deb9:
+  <<: *nightly
   extends: .build-aarch64-linux-deb9
   artifacts:
     expire_in: 2 year
   variables:
     TEST_TYPE: slowtest
-  only:
-    variables:
-      - $NIGHTLY
 
 #################################
 # i386-linux-deb9
@@ -311,15 +319,27 @@ validate-i386-linux-deb9:
     expire_in: 2 week
 
 nightly-i386-linux-deb9:
+  <<: *nightly
   extends: .build-i386-linux-deb9
   variables:
     TEST_TYPE: slowtest
   artifacts:
     when: always
     expire_in: 2 week
-  only:
-    variables:
-      - $NIGHTLY
+
+#################################
+# x86_64-linux-deb10
+#################################
+
+.build-x86_64-linux-deb10:
+  extends: .validate-linux
+  stage: full-build
+  image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb10:$DOCKER_REV"
+  variables:
+    TEST_ENV: "x86_64-linux-deb10"
+    BIN_DIST_PREP_TAR_COMP: "./ghc-x86_64-deb10-linux.tar.xz"
+  cache:
+    key: linux-x86_64-deb10
 
 #################################
 # x86_64-linux-deb9
@@ -342,14 +362,12 @@ validate-x86_64-linux-deb9:
     expire_in: 2 week
 
 nightly-x86_64-linux-deb9:
+  <<: *nightly
   extends: .build-x86_64-linux-deb9
   artifacts:
     expire_in: 2 year
   variables:
     TEST_TYPE: slowtest
-  only:
-    variables:
-      - $NIGHTLY
 
 # N.B. Has DEBUG assertions enabled in stage2
 validate-x86_64-linux-deb9-debug:
@@ -377,6 +395,7 @@ validate-x86_64-linux-deb9-integer-simple:
     BIN_DIST_PREP_TAR_COMP: "bindistprep/ghc-x86_64-deb9-linux-integer-simple.tar.xz"
 
 nightly-x86_64-linux-deb9-integer-simple:
+  <<: *nightly
   extends: .build-x86_64-linux-deb9
   stage: full-build
   variables:
@@ -385,9 +404,6 @@ nightly-x86_64-linux-deb9-integer-simple:
     TEST_TYPE: slowtest
   artifacts:
     expire_in: 2 year
-  only:
-    variables:
-      - $NIGHTLY
 
 validate-x86_64-linux-deb9-unreg:
   extends: .build-x86_64-linux-deb9
@@ -413,11 +429,21 @@ release-x86_64-linux-deb9-dwarf:
     key: linux-x86_64-deb9
 
 
+release-x86_64-linux-deb10-dwarf:
+  <<: *release
+  extends: .build-x86_64-linux-deb10
+  variables:
+    CONFIGURE_ARGS: "--enable-dwarf-unwind"
+    BUILD_FLAVOUR: dwarf
+    TEST_ENV: "x86_64-linux-deb10-dwarf"
+    BIN_DIST_PREP_TAR_COMP: "ghc-x86_64-deb10-linux-dwarf.tar.xz"
+
 #################################
 # x86_64-linux-deb8
 #################################
 
 release-x86_64-linux-deb8:
+  <<: *release
   extends: .validate-linux
   stage: full-build
   image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb8:$DOCKER_REV"
@@ -426,8 +452,6 @@ release-x86_64-linux-deb8:
     BIN_DIST_PREP_TAR_COMP: "bindistprep/ghc-x86_64-deb8-linux.tar.xz"
     # Disable sphinx PDF output as our Debian image doesn't have the requisite packages
     BUILD_SPHINX_PDF: "NO"
-  only:
-    - tags
   cache:
     key: linux-x86_64-deb8
   artifacts:
@@ -439,6 +463,7 @@ release-x86_64-linux-deb8:
 #################################
 
 release-x86_64-linux-centos7:
+  <<: *release
   extends: .validate-linux
   stage: full-build
   image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-centos7:$DOCKER_REV"
@@ -451,8 +476,6 @@ release-x86_64-linux-centos7:
     TEST_ENV: "x86_64-linux-centos7"
     BIN_DIST_PREP_TAR_COMP: "bindistprep/ghc-x86_64-centos7-linux.tar.xz"
   allow_failure: true
-  only:
-    - tags
   cache:
     key: linux-x86_64-centos7
   artifacts:
@@ -463,7 +486,7 @@ release-x86_64-linux-centos7:
 # x86_64-linux-fedora27
 #################################
 
-validate-x86_64-linux-fedora27:
+.build-x86_64-linux-fedora27:
   extends: .validate-linux
   stage: full-build
   image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-fedora27:$DOCKER_REV"
@@ -472,12 +495,28 @@ validate-x86_64-linux-fedora27:
     BIN_DIST_PREP_TAR_COMP: "bindistprep/ghc-x86_64-fedora27-linux.tar.xz"
   cache:
     key: linux-x86_64-fedora27
+
+validate-x86_64-linux-fedora27:
+  extends: .build-x86_64-linux-fedora27
   artifacts:
     when: always
     # These are used for head.hackage jobs therefore we keep them around for
     # longer.
     expire_in: 8 week
 
+release-x86_64-linux-fedora27:
+  <<: *release
+  extends: .build-x86_64-linux-fedora27
+
+release-x86_64-linux-fedora27-dwarf:
+  <<: *release
+  extends: .build-x86_64-linux-fedora27
+  variables:
+    CONFIGURE_ARGS: "--enable-dwarf-unwind"
+    BUILD_FLAVOUR: dwarf
+    TEST_ENV: "x86_64-linux-fedora27-dwarf"
+    BIN_DIST_PREP_TAR_COMP: "ghc-x86_64-fedora27-linux-dwarf.tar.xz"
+
 ############################################################
 # Validation via Pipelines (Windows)
 ############################################################
@@ -546,12 +585,10 @@ validate-x86_64-windows-hadrian:
     key: "x86_64-windows-hadrian-$WINDOWS_TOOLCHAIN_VERSION"
 
 nightly-i386-windows-hadrian:
+  <<: *nightly
   extends: .build-windows-hadrian
   variables:
     MSYSTEM: MINGW32
-  only:
-    variables:
-      - $NIGHTLY
   cache:
     key: "i386-windows-hadrian-$WINDOWS_TOOLCHAIN_VERSION"
 
@@ -597,18 +634,16 @@ validate-x86_64-windows:
 
 # Normal Windows validate builds are profiled; that won't do for releases.
 release-x86_64-windows:
+  <<: *release
   extends: validate-x86_64-windows
   variables:
     MSYSTEM: MINGW64
     BUILD_FLAVOUR: "perf"
     CONFIGURE_ARGS: "--target=x86_64-unknown-mingw32"
-  only:
-    - tags
 
 release-i386-windows:
+  <<: *release
   extends: .build-windows-make
-  only:
-    - tags
   variables:
     MSYSTEM: MINGW32
     BUILD_FLAVOUR: "perf"
@@ -619,10 +654,8 @@ release-i386-windows:
     key: "i386-windows-$WINDOWS_TOOLCHAIN_VERSION"
 
 nightly-i386-windows:
+  <<: *nightly
   extends: .build-windows-make
-  only:
-    variables:
-      - $NIGHTLY
   variables:
     MSYSTEM: MINGW32
     CONFIGURE_ARGS: "--target=i386-unknown-mingw32"
@@ -653,7 +686,6 @@ cleanup-windows:
   stage: cleanup
   tags:
     - x86_64-windows
-  when: always
   dependencies: []
   before_script:
     - echo "Time to clean up"
@@ -676,7 +708,6 @@ cleanup-darwin:
   stage: cleanup
   tags:
     - x86_64-darwin
-  when: always
   dependencies: []
   before_script:
     - echo "Time to clean up"
@@ -694,13 +725,12 @@ cleanup-darwin:
 ############################################################
 
 source-tarball:
+  <<: *release
   stage: packaging
   tags:
     - x86_64-linux
   image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb9:$DOCKER_REV"
   dependencies: []
-  only:
-    - tags
   artifacts:
     paths:
       - ghc-*.tar.xz
@@ -744,13 +774,10 @@ hackage:
 
 hackage-label:
   extends: .hackage
-  only:
-    variables:
-      - $CI_MERGE_REQUEST_LABELS =~ /.*user-facing.*/
+  rules:
+    - if: '$CI_MERGE_REQUEST_LABELS =~ /.*user-facing.*/'
 
 nightly-hackage:
+  <<: *nightly
   extends: .hackage
-  only:
-    variables:
-      - $NIGHTLY
 



View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/commit/686f6b1abe8554a993e3b7af40968c936caf7f00

-- 
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/commit/686f6b1abe8554a993e3b7af40968c936caf7f00
You're receiving this email because of your account on gitlab.haskell.org.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/ghc-commits/attachments/20200620/f99cd5f8/attachment-0001.html>


More information about the ghc-commits mailing list