Add CircleCI script (#364)
authorZhen Zhang <izgzhen@gmail.com>
Mon, 17 Jul 2017 17:05:45 +0000 (01:05 +0800)
committerAndrey Mokhov <andrey.mokhov@gmail.com>
Mon, 17 Jul 2017 17:05:45 +0000 (18:05 +0100)
circle.yml [new file with mode: 0644]

diff --git a/circle.yml b/circle.yml
new file mode 100644 (file)
index 0000000..457add7
--- /dev/null
@@ -0,0 +1,41 @@
+machine:
+  xcode:
+    version: 8.0
+  environment:
+    MODE: --flavour=quickest --integer-simple
+
+dependencies:
+  override:
+    - brew update
+    - brew install ghc cabal-install
+    - cabal update
+    - cabal install alex happy ansi-terminal mtl shake quickcheck
+  cache_directories:
+    - $HOME/.cabal
+    - $HOME/.ghc
+
+compile:
+  override:
+    # Fetch GHC sources into ./ghc
+    - git --version
+    - git config --global url."git://github.com/ghc/packages-".insteadOf git://github.com/ghc/packages/
+    - git clone --depth 1 --recursive git://github.com/ghc/ghc
+
+    - mkdir ghc/hadrian
+    # move hadrian's .git into ./ghc/hadrian and perform a hard reset in order to regenerate Hadrian files
+    - mv .git ghc/hadrian
+    # NOTE: we must write them in the same line because each line
+    # in CircleCI is a separate process, thus you can't "cd" for the other lines
+    - cd ghc/hadrian; git reset --hard HEAD
+
+    # XXX: export PATH doesn't work well either, so we use inline env
+    # Self test
+    - PATH=$HOME/.cabal/bin:$PATH ghc/hadrian/build.sh selftest
+
+    # Build GHC
+    - PATH=$HOME/.cabal/bin:$PATH ghc/hadrian/build.sh -j $MODE --verbose --no-progress --progress-colour=never --progress-info=brief --profile=-
+
+test:
+  override:
+    # Test GHC binary
+    - ghc/inplace/bin/ghc-stage2 -e 1+2