[WIP] Support run GHC's test from hadrian. (#495)
[hadrian.git] / appveyor.yml
index ffca700..32fc436 100644 (file)
@@ -1,4 +1,4 @@
-clone_folder: "c:\\ghc\\hadrian"
+clone_folder: "c:\\new-hadrian"
 environment:
   global:
     STACK_ROOT: "c:\\sr"
@@ -11,26 +11,31 @@ install:
     - curl -ostack.zip -LsS --insecure https://www.stackage.org/stack/windows-x86_64
     - 7z x stack.zip stack.exe
 
+    # Note: AppVeyor has already cloned Hadrian into c:\new-hadrian
     # Fetch GHC sources into c:\ghc
-    # Note: Appveyor has already cloned Hadrian into c:\ghc\hadrian, so it's tricky
     - cd ..
-    - git init
-    - git remote add origin git://git.haskell.org/ghc.git
-    - git pull --recurse-submodules origin master
-    - git submodule update --init --recursive
+    - git clone --recursive git://git.haskell.org/ghc.git
+    # GHC comes with an older version of Hadrian, so we delete it
+    - rm -rf ghc\hadrian
+    # Copy new Hadrian into ./ghc/hadrian
+    - cp -r new-hadrian ghc\hadrian
+
+    # Install Alex and Happy
+    - set PATH=C:\Users\appveyor\AppData\Roaming\local\bin;%PATH%
+    - ghc\hadrian\stack install --install-ghc alex happy > nul
 
     # Install all Hadrian and GHC build dependencies
-    - cd hadrian
-    - stack setup
-    - stack exec -- pacman -S autoconf automake-wrapper make patch tar --noconfirm
+    - cd ghc\hadrian
+    - stack setup > nul
+    - appveyor-retry stack exec -- pacman -S autoconf automake-wrapper make patch python tar --noconfirm
 
 build_script:
-    # Build Hadrian
-    - stack build
-    # Run internal Hadrian tests
-    - stack exec hadrian -- selftest
+    # Build Hadrian and run internal Hadrian tests
+    - build -c selftest
+
     # Build GHC
-    - echo "" | stack --no-terminal exec hadrian -- --lint --directory ".." -j --verbose --no-progress --progress-colour=never --profile=- --flavour=quickest
+    - build -j -c --flavour=quickest --no-progress --progress-colour=never --profile=-
+
     # Test GHC binary
     - cd ..
     - inplace\bin\ghc-stage2 -e 1+2