998e46d567001f6ac40b537a95ab592ead066474
[hadrian.git] / circle.yml
1 machine:
2   xcode:
3     version: 8.0
4   environment:
5     MODE: --flavour=quickest --integer-simple
6
7 dependencies:
8   override:
9     - brew update
10     - brew install ghc cabal-install python3
11     - brew link ghc cabal-install python3
12     - cabal update
13     - cabal install alex 'happy >= 1.19.4' mtl shake QuickCheck
14   cache_directories:
15     - ~/.cabal
16     - ~/.ghc
17     - /usr/local/Cellar
18
19 compile:
20   override:
21     # Fetch GHC sources into ./ghc
22     - git --version
23     - git config --global url."git://github.com/ghc/packages-".insteadOf git://github.com/ghc/packages/
24     - git clone --depth 1 --recursive git://github.com/ghc/ghc
25
26     # GHC comes with an older version of Hadrian, so we delete it
27     - rm -rf ghc/hadrian/.git
28     # move hadrian's .git into ./ghc/hadrian and perform a hard reset in order to regenerate Hadrian files
29     - mv .git ghc/hadrian
30     # NOTE: we must write them in the same line because each line
31     # in CircleCI is a separate process, thus you can't "cd" for the other lines
32     - cd ghc/hadrian; git reset --hard HEAD
33
34     # We checkout a patched Cabal.
35     # See: https://github.com/snowleopard/hadrian/issues/634
36     - cd ghc/libraries/Cabal/ && git remote add quasicomputational https://github.com/quasicomputational/cabal.git && git fetch quasicomputational && git checkout cwd-independent-check
37
38     - cd ghc; ./boot && PATH=~/.cabal/bin:$PATH ./configure
39
40     # XXX: export PATH doesn't work well either, so we use inline env
41     # Self test
42     - PATH=~/.cabal/bin:$PATH ghc/hadrian/build.sh selftest
43
44     # Build GHC
45     - PATH=~/.cabal/bin:$PATH ghc/hadrian/build.sh -j $MODE --no-progress --progress-colour=never --profile=-
46
47 test:
48   override:
49     # Test GHC binary
50     - ghc/_build/stage1/bin/ghc -e 1+2