diff options
author | Erik Kundt <bitshift@posteo.org> | 2018-04-26 19:38:20 +0800 |
---|---|---|
committer | Erik Kundt <bitshift@posteo.org> | 2018-05-01 09:23:07 +0800 |
commit | 743a714f21c76c0c2a026b4ceb61c7cf94130540 (patch) | |
tree | b577935452f00396280d5521d86300aad8ea24fb | |
parent | 5cce2e552baf1f7431c99500da74cb929360c3b8 (diff) | |
download | dexon-solidity-743a714f21c76c0c2a026b4ceb61c7cf94130540.tar dexon-solidity-743a714f21c76c0c2a026b4ceb61c7cf94130540.tar.gz dexon-solidity-743a714f21c76c0c2a026b4ceb61c7cf94130540.tar.bz2 dexon-solidity-743a714f21c76c0c2a026b4ceb61c7cf94130540.tar.lz dexon-solidity-743a714f21c76c0c2a026b4ceb61c7cf94130540.tar.xz dexon-solidity-743a714f21c76c0c2a026b4ceb61c7cf94130540.tar.zst dexon-solidity-743a714f21c76c0c2a026b4ceb61c7cf94130540.zip |
Adds CircleCI config for macOS.
Does not run ipc and smt tests.
-rw-r--r-- | circle.yml | 111 | ||||
-rwxr-xr-x | scripts/tests.sh | 29 |
2 files changed, 107 insertions, 33 deletions
@@ -4,6 +4,32 @@ defaults: filters: tags: only: /.*/ + - run_prerelease: &run_prerelease + name: Store commit hash and prerelease + command: | + if [ "$CIRCLE_BRANCH" = release -o -n "$CIRCLE_TAG" ]; then echo -n > prerelease.txt; else date -u +"nightly.%Y.%-m.%-d" > prerelease.txt; fi + echo -n "$CIRCLE_SHA1" > commit_hash.txt + - run_build: &run_build + name: Build + command: | + mkdir -p build + cd build + cmake .. -DCMAKE_BUILD_TYPE=RelWithDebInfo + make -j4 + - run_tests: &run_tests + name: Tests + command: scripts/tests.sh --junit_report test_results + environment: + TERM: dumb + - build_artifacts: &build_artifacts + path: build/solc/solc + destination: solc + - test_artifacts: &test_artifacts + root: build + paths: + - solc/solc + - test/soltest + - test/tools/solfuzzer version: 2 jobs: @@ -87,7 +113,7 @@ jobs: command: | . /usr/local/nvm/nvm.sh test/externalTests.sh /tmp/workspace/soljson.js || test/externalTests.sh /tmp/workspace/soljson.js - build_x86: + build_x86_linux: docker: - image: buildpack-deps:artful steps: @@ -98,28 +124,38 @@ jobs: apt-get -qq update apt-get -qy install cmake libboost-regex-dev libboost-filesystem-dev libboost-test-dev libboost-system-dev libboost-program-options-dev libz3-dev - run: - name: Store commit hash and prerelease - command: | - if [ "$CIRCLE_BRANCH" = release -o -n "$CIRCLE_TAG" ]; then echo -n > prerelease.txt; else date -u +"nightly.%Y.%-m.%-d" > prerelease.txt; fi - echo -n "$CIRCLE_SHA1" > commit_hash.txt + <<: *run_prerelease - run: - name: Build + <<: *run_build + - store_artifacts: + <<: *build_artifacts + - persist_to_workspace: + <<: *test_artifacts + + build_x86_mac: + macos: + xcode: "9.0" + steps: + - checkout + - run: + name: Install build dependencies command: | - mkdir -p build - cd build - cmake .. -DCMAKE_BUILD_TYPE=RelWithDebInfo - make -j4 + brew update + brew upgrade + brew unlink python + brew install z3 + brew install boost + brew install cmake + - run: + <<: *run_prerelease + - run: + <<: *run_build - store_artifacts: - path: build/solc/solc - destination: solc + <<: *build_artifacts - persist_to_workspace: - root: build - paths: - - solc/solc - - test/soltest - - test/tools/solfuzzer + <<: *test_artifacts - test_x86: + test_x86_linux: docker: - image: buildpack-deps:artful steps: @@ -133,8 +169,27 @@ jobs: apt-get -qy install libz3-dev libleveldb1v5 - run: mkdir -p test_results - run: - name: Tests - command: scripts/tests.sh --junit_report test_results + <<: *run_tests + - store_test_results: + path: test_results/ + + test_x86_mac: + macos: + xcode: "9.0" + steps: + - checkout + - attach_workspace: + at: build + - run: + name: Install dependencies + command: | + brew update + brew upgrade + brew unlink python + brew install z3 + - run: mkdir -p test_results + - run: + <<: *run_tests - store_test_results: path: test_results/ @@ -149,10 +204,7 @@ jobs: apt-get -qq update apt-get -qy install python-sphinx - run: - name: Store commit hash and prerelease - command: | - if [ "$CIRCLE_BRANCH" = release -o -n "$CIRCLE_TAG" ]; then echo -n > prerelease.txt; else date -u +"nightly.%Y.%-m.%-d" > prerelease.txt; fi - echo -n "$CIRCLE_SHA1" > commit_hash.txt + <<: *run_prerelease - run: name: Build documentation command: ./scripts/docs.sh @@ -173,9 +225,14 @@ workflows: <<: *build_on_tags requires: - build_emscripten - - build_x86: *build_on_tags - - test_x86: + - build_x86_linux: *build_on_tags + - build_x86_mac: *build_on_tags + - test_x86_linux: + <<: *build_on_tags + requires: + - build_x86_linux + - test_x86_mac: <<: *build_on_tags requires: - - build_x86 + - build_x86_mac - docs: *build_on_tags diff --git a/scripts/tests.sh b/scripts/tests.sh index 38073bf3..d63c1fe4 100755 --- a/scripts/tests.sh +++ b/scripts/tests.sh @@ -30,6 +30,17 @@ set -e REPO_ROOT="$(dirname "$0")"/.. +IPC_ENABLED=true +if [[ "$OSTYPE" == "darwin"* ]] +then + SMT_FLAGS="--no-smt" + if [ "$CIRCLECI" ] + then + IPC_ENABLED=false + IPC_FLAGS="--no-ipc" + fi +fi + if [ "$1" = --junit_report ] then if [ -z "$2" ] @@ -98,8 +109,11 @@ function run_eth() sleep 2 } -download_eth -ETH_PID=$(run_eth /tmp/test) +if [ "$IPC_ENABLED" = true ]; +then + download_eth + ETH_PID=$(run_eth /tmp/test) +fi progress="--show-progress" if [ "$CIRCLECI" ] @@ -131,7 +145,7 @@ do log=--logger=JUNIT,test_suite,$log_directory/noopt_$vm.xml $testargs_no_opt fi fi - "$REPO_ROOT"/build/test/soltest $progress $log -- --testpath "$REPO_ROOT"/test "$optimize" --evm-version "$vm" --ipcpath /tmp/test/geth.ipc + "$REPO_ROOT"/build/test/soltest $progress $log -- --testpath "$REPO_ROOT"/test "$optimize" --evm-version "$vm" $SMT_FLAGS $IPC_FLAGS --ipcpath /tmp/test/geth.ipc done done @@ -141,6 +155,9 @@ then exit 1 fi -pkill "$ETH_PID" || true -sleep 4 -pgrep "$ETH_PID" && pkill -9 "$ETH_PID" || true +if [ "$IPC_ENABLED" = true ] +then + pkill "$ETH_PID" || true + sleep 4 + pgrep "$ETH_PID" && pkill -9 "$ETH_PID" || true +fi |