ghci: Ensure that system libffi include path is searched
[ghc.git] / .gitlab-ci.yml
index 4475d07..2213d79 100644 (file)
@@ -30,6 +30,7 @@ stages:
     - /ghc-[0-9]+\.[0-9]+/
     - merge_requests
     - tags
+    - web
 
 ############################################################
 # Runner Tags
@@ -124,7 +125,8 @@ lint-changelogs:
 lint-release-changelogs:
   extends: .lint-changelogs
   only:
-    - tags
+    refs:
+      - /ghc-[0-9]+\.[0-9]+\.[0-9]+-.*/
 
 
 ############################################################
@@ -142,6 +144,7 @@ lint-release-changelogs:
     - ./boot
     - ./configure $CONFIGURE_ARGS
     - hadrian/build.cabal.sh -j`mk/detect-cpu-count.sh` --docs=no-sphinx binary-dist
+    - hadrian/build.cabal.sh -j`mk/detect-cpu-count.sh` --docs=no-sphinx test
     - mv _build/bindist/ghc*.tar.xz ghc.tar.xz
   cache:
     key: hadrian
@@ -436,6 +439,21 @@ validate-x86_64-linux-deb9-unreg:
     CONFIGURE_ARGS: --enable-unregisterised
     TEST_ENV: "x86_64-linux-deb9-unreg"
 
+release-x86_64-linux-deb9-dwarf:
+  extends: .validate-linux
+  stage: build
+  image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb9:$DOCKER_REV"
+  allow_failure: true
+  variables:
+    CONFIGURE_ARGS: "--enable-dwarf-unwind"
+    BUILD_FLAVOUR: dwarf
+    TEST_ENV: "x86_64-linux-deb9"
+  artifacts:
+    when: always
+    expire_in: 2 week
+  cache:
+    key: linux-x86_64-deb9
+
 
 #################################
 # x86_64-linux-deb8
@@ -456,6 +474,27 @@ release-x86_64-linux-deb8:
     when: always
     expire_in: 2 week
 
+#################################
+# x86_64-linux-centos7
+#################################
+
+release-x86_64-linux-centos7:
+  extends: .validate-linux
+  stage: full-build
+  image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-centos7:$DOCKER_REV"
+  variables:
+    # The sphinx release shipped with Centos 7 fails to build out documentation
+    BUILD_SPHINX_HTML: "NO"
+    BUILD_SPHINX_PDF: "NO"
+    TEST_ENV: "x86_64-linux-centos7"
+    BIN_DIST_PREP_TAR_COMP: "bindistprep/ghc-x86_64-centos7-linux.tar.xz"
+  only:
+    - tags
+  cache:
+    key: linux-x86_64-centos7
+  artifacts:
+    when: always
+    expire_in: 2 week
 
 #################################
 # x86_64-linux-fedora27
@@ -603,6 +642,8 @@ release-i386-windows:
     MSYSTEM: MINGW32
     BUILD_FLAVOUR: "perf"
     CONFIGURE_ARGS: "--target=i386-unknown-mingw32"
+    # Due to #15934
+    BUILD_PROF_LIBS: "NO"
   cache:
     key: "i386-windows-$WINDOWS_TOOLCHAIN_VERSION"
 
@@ -614,6 +655,8 @@ nightly-i386-windows:
   variables:
     MSYSTEM: MINGW32
     CONFIGURE_ARGS: "--target=i386-unknown-mingw32"
+    # Due to #15934
+    BUILD_PROF_LIBS: "NO"
   cache:
     key: "i386-windows-$WINDOWS_TOOLCHAIN_VERSION"
 
@@ -687,6 +730,11 @@ doc-tarball:
   dependencies:
     - validate-x86_64-linux-deb9
     - validate-x86_64-windows
+  variables:
+    LINUX_BINDIST: "ghc-x86_64-deb9-linux.tar.xz"
+    WINDOWS_BINDIST: "ghc-x86_64-mingw32.tar.xz"
+  # Due to Windows allow_failure
+  allow_failure: true
   artifacts:
     paths:
       - haddock.html.tar.xz
@@ -695,8 +743,17 @@ doc-tarball:
       - index.html
       - "*.pdf"
   script:
+    - |
+      if [ ! -f "$LINUX_BINDIST" ]; then
+        echo "Error: $LINUX_BINDIST does not exist. Did the Debian 9 job fail?"
+        exit 1
+      fi
+      if [ ! -f "$WINDOWS_BINDIST" ]; then
+        echo "Error: $WINDOWS_BINDIST does not exist. Did the 64-bit Windows job fail?"
+        exit 1
+      fi
     - rm -Rf docs
-    - bash -ex distrib/mkDocs/mkDocs ghc-x86_64-deb9-linux.tar.xz ghc-x86_64-mingw32.tar.xz
+    - bash -ex distrib/mkDocs/mkDocs $LINUX_BINDIST $WINDOWS_BINDIST
     - ls -lh
     - mv docs/*.tar.xz docs/index.html .
 
@@ -705,6 +762,7 @@ source-tarball:
   tags:
     - x86_64-linux
   image: ghcci/x86_64-linux-deb9:0.2
+  dependencies: []
   only:
     - tags
   artifacts:
@@ -763,6 +821,8 @@ pages:
   dependencies:
     - doc-tarball
   image: ghcci/x86_64-linux-deb9:0.2
+  # Due to Windows allow_failure
+  allow_failure: true
   tags:
     - x86_64-linux
   script: