[Git][ghc/ghc][wip/T18234] 2 commits: gitlab-ci: Make names more consistent

Ben Gamari gitlab at gitlab.haskell.org
Wed May 27 22:12:34 UTC 2020



Ben Gamari pushed to branch wip/T18234 at Glasgow Haskell Compiler / GHC


Commits:
c5ce6d56 by Ben Gamari at 2020-05-27T18:12:22-04:00
gitlab-ci: Make names more consistent

- - - - -
17d0b228 by Ben Gamari at 2020-05-27T18:12:25-04:00
gitlab-ci: Introduce a nightly cross-compilation job

This adds a job to test cross-compilation from x86-64 to AArch64 with
Hadrian.

Fixes #18234.

- - - - -


2 changed files:

- .gitlab-ci.yml
- .gitlab/ci.sh


Changes:

=====================================
.gitlab-ci.yml
=====================================
@@ -2,7 +2,7 @@ variables:
   GIT_SSL_NO_VERIFY: "1"
 
   # Commit of ghc/ci-images repository from which to pull Docker images
-  DOCKER_REV: 6223fe0b5942f4fa35bdec92c74566cf195bfb42
+  DOCKER_REV: ba119705df5222fe74208a85019cb980e2c4318f
 
   # Sequential version number capturing the versions of all tools fetched by
   # .gitlab/ci.sh.
@@ -178,7 +178,7 @@ lint-release-changelogs:
 # Validation via Pipelines (hadrian)
 ############################################################
 
-.validate-hadrian:
+.build-hadrian:
   variables:
     FLAVOUR: "validate"
   script:
@@ -198,11 +198,8 @@ lint-release-changelogs:
       - ghc.tar.xz
       - junit.xml
 
-.validate-linux-hadrian:
-  extends: .validate-hadrian
-  image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb9:$DOCKER_REV"
-  variables:
-    TEST_ENV: "x86_64-linux-deb9-hadrian"
+.build-linux-hadrian:
+  extends: .build-hadrian
   before_script:
     # workaround for docker permissions
     - sudo chown ghc:ghc -R .
@@ -212,20 +209,53 @@ lint-release-changelogs:
     - "git fetch https://gitlab.haskell.org/ghc/ghc-performance-notes.git refs/notes/perf:refs/notes/perf || true"
   after_script:
     - .gitlab/ci.sh clean
+
+.build-x86_64-linux-deb9-hadrian:
+  extends: .build-linux-hadrian
+  image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb9:$DOCKER_REV"
   tags:
     - x86_64-linux
 
 validate-x86_64-linux-deb9-hadrian:
-  extends: .validate-linux-hadrian
+  extends: .build-x86_64-linux-deb9-hadrian
   stage: build
+  variables:
+    TEST_ENV: "x86_64-linux-deb9-hadrian"
 
 validate-x86_64-linux-deb9-unreg-hadrian:
-  extends: .validate-linux-hadrian
+  extends: .build-x86_64-linux-deb9-hadrian
   stage: full-build
   variables:
     CONFIGURE_ARGS: --enable-unregisterised
     TEST_ENV: "x86_64-linux-deb9-unreg-hadrian"
 
+.build-x86_64-linux-deb10-hadrian:
+  extends: .build-hadrian
+  image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb10:$DOCKER_REV"
+  before_script:
+    # workaround for docker permissions
+    - sudo chown ghc:ghc -R .
+    - git submodule sync --recursive
+    - git submodule update --init --recursive
+    - git checkout .gitmodules
+    - "git fetch https://gitlab.haskell.org/ghc/ghc-performance-notes.git refs/notes/perf:refs/notes/perf || true"
+  after_script:
+    - .gitlab/ci.sh clean
+  tags:
+    - x86_64-linux
+
+nightly-x86_64-linux-deb10-hadrian-cross-aarch64:
+  #<<: *nightly
+  stage: build
+  extends: .build-x86_64-linux-deb10-hadrian
+  variables:
+    CROSS_TARGET: "aarch64-linux-gnu"
+
+
+############################################################
+# GHC-in-GHCi (Hadrian)
+############################################################
+
 hadrian-ghc-in-ghci:
   stage: quick-build
   image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb9:$DOCKER_REV"
@@ -327,7 +357,7 @@ release-x86_64-freebsd:
   stage: full-build
 
 .build-x86_64-freebsd-hadrian:
-  extends: .validate-hadrian
+  extends: .build-hadrian
   stage: full-build
   tags:
     - x86_64-freebsd
@@ -678,7 +708,7 @@ release-x86_64-linux-deb8:
 #################################
 
 .build-x86_64-linux-alpine-hadrian:
-  extends: .validate-linux-hadrian
+  extends: .build-linux-hadrian
   stage: full-build
   image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-alpine:$DOCKER_REV"
   # There are currently a few failing tests


=====================================
.gitlab/ci.sh
=====================================
@@ -80,6 +80,7 @@ Modes:
 
 Environment variables:
 
+  CROSS_TARGET      Triple of cross-compilation target.
   MSYSTEM           (Windows-only) Which platform to build form (MINGW64 or MINGW32).
 
 Environment variables determining build configuration of Make system:
@@ -114,11 +115,11 @@ EOF
 function mingw_init() {
   case "$MSYSTEM" in
     MINGW32)
-      triple="i386-unknown-mingw32"
+      target_triple="i386-unknown-mingw32"
       boot_triple="i386-unknown-mingw32" # triple of bootstrap GHC
       ;;
     MINGW64)
-      triple="x86_64-unknown-mingw32"
+      target_triple="x86_64-unknown-mingw32"
       boot_triple="x86_64-unknown-mingw32" # triple of bootstrap GHC
       ;;
     *)
@@ -375,8 +376,8 @@ function configure() {
   end_section "booting"
 
   local target_args=""
-  if [[ -n "$triple" ]]; then
-    target_args="--target=$triple"
+  if [[ -n "$target_triple" ]]; then
+    target_args="--target=$target_triple"
   fi
 
   start_section "configuring"
@@ -415,6 +416,11 @@ function push_perf_notes() {
 }
 
 function test_make() {
+  if [ -n "$CROSS_TARGET" ]; then
+    info "Can't test cross-compiled build."
+    return
+  fi
+
   run "$MAKE" test_bindist TEST_PREP=YES
   run "$MAKE" V=0 test \
     THREADS="$cores" \
@@ -432,6 +438,11 @@ function build_hadrian() {
 }
 
 function test_hadrian() {
+  if [ -n "$CROSS_TARGET" ]; then
+    info "Can't test cross-compiled build."
+    return
+  fi
+
   cd _build/bindist/ghc-*/
   run ./configure --prefix="$TOP"/_build/install
   run "$MAKE" install
@@ -486,6 +497,11 @@ case "$(uname)" in
   *) fail "uname $(uname) is not supported" ;;
 esac
 
+if [ -n "$CROSS_TARGET" ]; then
+  info "Cross-compiling for $CROSS_TARGET..."
+  target_triple="$CROSS_TARGET"
+fi
+
 set_toolchain_paths
 
 case $1 in



View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/e5a0d8a5536c0db649642044a33c0d73e6c28e62...17d0b228d440439aa03a02dae708ae5b559510fd

-- 
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/e5a0d8a5536c0db649642044a33c0d73e6c28e62...17d0b228d440439aa03a02dae708ae5b559510fd
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/20200527/4f4a00ce/attachment-0001.html>


More information about the ghc-commits mailing list