[Git][ghc/ghc][wip/fix-multi-repl] ci: Add job to test hadrian-multi command

Matthew Pickering (@mpickering) gitlab at gitlab.haskell.org
Tue Dec 6 14:27:49 UTC 2022



Matthew Pickering pushed to branch wip/fix-multi-repl at Glasgow Haskell Compiler / GHC


Commits:
aa5bb698 by Matthew Pickering at 2022-12-06T14:27:43+00:00
ci: Add job to test hadrian-multi command

I am not sure this job is good because it requires booting HEAD with
HEAD, but it should be fine.

- - - - -


3 changed files:

- .gitlab-ci.yml
- configure.ac
- hadrian/ghci-multi-cabal.in


Changes:

=====================================
.gitlab-ci.yml
=====================================
@@ -376,6 +376,57 @@ hadrian-ghc-in-ghci:
     paths:
       - cabal-cache
 
+############################################################
+# Hadrian Multi-Repl
+############################################################
+
+hadrian-multi:
+  stage: testing
+  needs:
+    - job: x86_64-linux-fedora33-release
+      optional: true
+    - job: nightly-x86_64-linux-fedora33-release
+      optional: true
+    - job: release-x86_64-linux-fedora33-release
+      optional: true
+  dependencies: null
+  image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-fedora33:$DOCKER_REV"
+  before_script:
+    # workaround for docker permissions
+    - sudo chown ghc:ghc -R .
+  variables:
+    GHC_FLAGS: -Werror
+    CONFIGURE_ARGS: --enable-bootstrap-with-devel-snapshot
+  tags:
+    - x86_64-linux
+  script:
+    - export BOOT_HC=$GHC
+    - root=$(pwd)/ghc
+    - ls
+    - |
+      mkdir tmp
+      tar -xf ghc-x86_64-linux-fedora33-release.tar.xz -C tmp
+      pushd tmp/ghc-*/
+      ./configure --prefix=$root
+      make install
+      popd
+      rm -Rf tmp
+    - export HC=$root/bin/ghc
+    # This GHC means, use this GHC to configure with
+    - export GHC=$root/bin/ghc
+    - .gitlab/ci.sh setup
+    - .gitlab/ci.sh configure
+    # Now GHC means, use this GHC for hadrian
+    - export GHC=$BOOT_HC
+    # Load hadrian-multi then immediately exit and check the modules loaded
+    - echo ":q" | hadrian/ghci-multi -j`mk/detect-cpu-count.sh`| tail -n2 | grep "Ok,"
+  after_script:
+    - .gitlab/ci.sh save_cache
+  cache:
+    key: hadrian-ghci-$CACHE_REV
+    paths:
+      - cabal-cache
+
 ############################################################
 # stack-hadrian-build
 ############################################################


=====================================
configure.ac
=====================================
@@ -1201,6 +1201,7 @@ AC_CONFIG_FILES(
 [ mk/project.mk
   hadrian/cfg/system.config
   hadrian/ghci-cabal
+  hadrian/ghci-cabal-multi
   hadrian/ghci-stack
   docs/users_guide/ghc_config.py
   distrib/configure.ac


=====================================
hadrian/ghci-multi-cabal.in
=====================================
@@ -1,7 +1,7 @@
 #!/usr/bin/env sh
 
-GHC=@WithGhc@
-if [[ $(printf "9.4.0\n%s\n" $($GHC --numeric-version) | sort -uV | head -n 1) != "9.4.0" ]]; then echo "Multi-repl needs at least GHC-9.4.1"; exit 1; fi
+RUN_GHC=@WithGhc@
+if [[ $(printf "9.4.0\n%s\n" $($RUN_GHC --numeric-version) | sort -uV | head -n 1) != "9.4.0" ]]; then echo "Multi-repl needs at least GHC-9.4.1"; exit 1; fi
 
 # This file is generated by configure from ghci-multi.in
 
@@ -10,4 +10,4 @@ export TOOL_OUTPUT=.hadrian_ghci_multi/ghci_args
 # Replace newlines with spaces, as these otherwise break the ghci invocation on windows.
 CABFLAGS=-v0 "hadrian/build-cabal" multi:ghc --build-root=.hadrian_ghci_multi --flavour=ghc-in-ghci $HADRIAN_ARGS
 GHC_FLAGS="$GHC_FLAGS $(cat $TOOL_OUTPUT | tr '\n\r' ' ')"
-$GHC --interactive $GHC_FLAGS $@ -fno-code -fwrite-interface -O0 +RTS -A128m
+$RUN_GHC --interactive $GHC_FLAGS $@ -fno-code -fwrite-interface -O0 +RTS -A128m



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

-- 
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/commit/aa5bb698b0c331444b02536b7451f6ba15ceced9
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/20221206/c79e12b8/attachment-0001.html>


More information about the ghc-commits mailing list