aboutsummaryrefslogtreecommitdiffstats
path: root/circle.yml
blob: f20543843b7934078dc1ca413c9523bdad8cb140 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
version: 2
jobs:
  build_emscripten:
    docker:
      - image: trzeci/emscripten:sdk-tag-1.37.21-64bit
    steps:
      - checkout
      - run:
          name: Init submodules
          command: |
            git submodule update --init
      - restore_cache:
          name: Restore Boost build
          key: &boost-cache-key emscripten-boost-{{ checksum "scripts/travis-emscripten/install_deps.sh" }}{{ checksum "scripts/travis-emscripten/build_emscripten.sh" }}
      - run:
          name: Bootstrap Boost
          command: |
            scripts/travis-emscripten/install_deps.sh
      - run:
          name: Build
          command: |
            scripts/travis-emscripten/build_emscripten.sh
      - save_cache:
          name: Save Boost build
          key: *boost-cache-key
          paths:
            - boost_1_57_0
      - store_artifacts:
          path: build/libsolc/soljson.js
          destination: soljson.js
      - run: mkdir -p workspace
      - run: cp build/libsolc/soljson.js workspace/soljson.js
      - persist_to_workspace:
          root: workspace
          paths:
            - soljson.js
  test_emscripten:
    docker:
      - image: trzeci/emscripten:sdk-tag-1.37.21-64bit
    steps:
      - checkout
      - attach_workspace:
          at: /tmp/workspace
      - run: mkdir -p build/libsolc/
      - run: cp /tmp/workspace/soljson.js build/libsolc/soljson.js
      - run: cp /tmp/workspace/soljson.js soljson.js
      - run:
          name: Install external tests deps
          command: |
            apt-get -qq update
            apt-get -qy install netcat curl
            curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.4/install.sh | NVM_DIR=/usr/local/nvm bash
      - run:
          name: Test external tests deps
          command: |
            export NVM_DIR="/usr/local/nvm"
            [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # This loads nvm
            nvm --version
            nvm install 6
            node --version
            npm --version
      - run:
          name: Test
          command: |
            . /usr/local/nvm/nvm.sh
            scripts/test_emscripten.sh
  build_x86:
    docker:
      - image: buildpack-deps:artful
    steps:
      - checkout
      - run:
          name: Install build dependencies
          command: |
            apt-get -qq update
            apt-get -qy install ccache cmake libboost-all-dev libz3-dev
      - run:
          name: Init submodules
          command: |
            git submodule update --init
      - run:
          name: Store commit hash and prerelease
          command: |
            date -u +"nightly.%Y.%-m.%-d" > prerelease.txt
            echo -n "$CIRCLE_SHA1" > commit_hash.txt
      - restore_cache:
          key: ccache-{{ arch }}-{{ .Branch }}
          key: ccache-{{ arch }}
          key: ccache
      - run:
          name: Build
          command: ./scripts/build.sh RelWithDebInfo
      - save_cache:
          key: ccache-{{ arch }}-{{ .Branch }}
          paths:
            - ~/.ccache
      - run:
          name: Commandline tests
          command: test/cmdlineTests.sh
      - run: mkdir -p test_results
      - run:
          name: Test without optimizer (exclude IPC tests)
          command: build/test/soltest --logger=JUNIT,test_suite,test_results/no_opt.xml  -- --no-ipc
      - run:
          name: Test with optimizer (exclude IPC tests)
          command: build/test/soltest --logger=JUNIT,test_suite,test_results/opt.xml -- --optimize --no-ipc
      - store_test_results:
          path: test_results/
      - store_artifacts:
          path: build/solc/solc
          destination: solc

workflows:
  version: 2
  build_all:
    jobs:
      - build_emscripten
      - test_emscripten:
          requires:
            - build_emscripten
      - build_x86