aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorErik Kundt <bitshift@posteo.org>2018-04-26 19:38:20 +0800
committerErik Kundt <bitshift@posteo.org>2018-05-01 09:23:07 +0800
commit743a714f21c76c0c2a026b4ceb61c7cf94130540 (patch)
treeb577935452f00396280d5521d86300aad8ea24fb
parent5cce2e552baf1f7431c99500da74cb929360c3b8 (diff)
downloaddexon-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.yml111
-rwxr-xr-xscripts/tests.sh29
2 files changed, 107 insertions, 33 deletions
diff --git a/circle.yml b/circle.yml
index f97b619a..49418c4b 100644
--- a/circle.yml
+++ b/circle.yml
@@ -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