Skip to content

Commit 6cde94f

Browse files
authored
Merge pull request #468 from maxsam4/circle-ci
Circle ci
2 parents 1cbe174 + 742cdad commit 6cde94f

File tree

8 files changed

+126
-42
lines changed

8 files changed

+126
-42
lines changed

.circleci/config.yml

Lines changed: 32 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ jobs:
77
- checkout
88
- restore_cache:
99
key: dependency-cache-{{ checksum "package.json" }}
10-
- run: yarn
10+
- run: yarn install
1111
- run: sudo npm i truffle -g
1212
- run: node --version
1313
- run: truffle version
@@ -19,11 +19,12 @@ jobs:
1919
test:
2020
docker:
2121
- image: circleci/node:8
22+
parallelism: 2
2223
steps:
2324
- checkout
2425
- restore_cache:
2526
key: dependency-cache-{{ checksum "package.json" }}
26-
- run: yarn
27+
- run: yarn install
2728
- run: sudo npm i truffle -g
2829
- run: node --version
2930
- run: truffle version
@@ -32,14 +33,18 @@ jobs:
3233
key: dependency-cache-{{ checksum "package.json" }}
3334
paths:
3435
- node_modules
36+
- store_test_results:
37+
path: test-results
38+
- store_artifacts:
39+
path: ./test-results/mocha/results.xml
3540
coverage:
3641
docker:
3742
- image: circleci/node:8
3843
steps:
3944
- checkout
4045
- restore_cache:
4146
key: dependency-cache-{{ checksum "package.json" }}
42-
- run: yarn
47+
- run: yarn install
4348
- run: sudo npm i truffle -g
4449
- run: node --version
4550
- run: truffle version
@@ -48,14 +53,16 @@ jobs:
4853
key: dependency-cache-{{ checksum "package.json" }}
4954
paths:
5055
- node_modules
56+
- store_artifacts:
57+
path: ./coverage/lcov.info
5158
docs:
5259
docker:
5360
- image: circleci/node:8
5461
steps:
5562
- checkout
5663
- restore_cache:
5764
key: dependency-cache-{{ checksum "package.json" }}
58-
- run: yarn
65+
- run: yarn install
5966
- run: sudo npm i truffle -g
6067
- run: node --version
6168
- run: truffle version
@@ -66,9 +73,26 @@ jobs:
6673
- node_modules
6774
workflows:
6875
version: 2
69-
build-test-coverage-docs:
76+
commit:
7077
jobs:
71-
- build
72-
- test
7378
- coverage
74-
- docs
79+
daily-builds:
80+
triggers:
81+
- schedule:
82+
cron: "0 0 * * *"
83+
filters:
84+
branches:
85+
only:
86+
- master
87+
- dev-2.1.0
88+
- dev-2.2.0
89+
- dev-3.0.0
90+
jobs:
91+
- coverage
92+
docs:
93+
jobs:
94+
- docs:
95+
filters:
96+
branches:
97+
only:
98+
- master

.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,4 +22,5 @@ bridge.log
2222
allFiredEvents
2323
extract/
2424
extract.py
25-
extract.zip
25+
extract.zip
26+
/test-results

.travis.yml

Lines changed: 1 addition & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -4,24 +4,11 @@ node_js:
44
cache:
55
directories:
66
- node_modules
7-
matrix:
8-
fast_finish: true
9-
allow_failures:
10-
- env: 'TASK=docs'
117
jobs:
128
include:
13-
- stage: Tests and Coverage
14-
after_install: wget -O node_modules/solidity-coverage/lib/app.js https://raw.githubusercontent.com/maxsam4/solidity-coverage/relative-path/lib/app.js
9+
- stage: test
1510
before_script: truffle version
1611
script: npm run test
17-
- stage: Docs
18-
env: 'TASK=docs'
19-
before_install:
20-
- echo -ne '\n' | sudo apt-add-repository -y ppa:hvr/z3
21-
- sudo apt-get -y update
22-
- sudo apt-get -y install libz3-dev
23-
before_script: wget -O node_modules/solidity-docgen/lib/index.js https://raw.githubusercontent.com/maxsam4/solidity-docgen/buffer-size/lib/index.js
24-
script: npm run docs
2512
notifications:
2613
slack:
2714
secure: W4FZSabLrzF74f317hutolEHnlq2GBlQxU6b85L5XymrjgLEhlgE16c5Qz7Emoyt6le6PXL+sfG2ujJc3XYys/6hppgrHSAasuJnKCdQNpmMZ9BNyMs6WGkmB3enIf3K/FLXb26AQdwpQdIXuOeJUTf879u+YoiZV0eZH8d3+fsIOyovq9N6X5pKOpDM9iT8gGB4t7fie7xf51s+iUaHxyO9G7jDginZ4rBXHcU7mxCub9z+Z1H8+kCTnPWaF+KKVEXx4Z0nI3+urboD7E4OIP02LwrThQls2CppA3X0EoesTcdvj/HLErY/JvsXIFiFEEHZzB1Wi+k2TiOeLcYwEuHIVij+HPxxlJNX/j8uy01Uk8s4rd+0EhvfdKHJqUKqxH4YN2npcKfHEss7bU3y7dUinXQfYShW5ZewHdvc7pnnxBTfhvmdi64HdNrXAPq+s1rhciH7MmnU+tsm4lhrpr+FBuHzUMA9fOCr7b0SQytZEgWpiUls88gdbh3yG8TjyZxmZJGx09cwEP0q7VoH0UwFh7mIu5XmYdd5tWUhavTiO7YV8cUPn7MvwMsTltB3YBpF/fB26L7ka8zBhCsjm9prW6SVYU/dyO3m91VeZtO/zJFHRDA6Q58JGVW2rgzO39z193qC1EGRXqTie96VwAAtNg8+hRb+bI/CWDVzSPc=

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,7 @@
8787
"ethereum-bridge": "^0.6.1",
8888
"ethereumjs-abi": "^0.6.5",
8989
"ganache-cli": "^6.1.8",
90+
"mocha-junit-reporter": "^1.18.0",
9091
"prettier": "^1.14.3",
9192
"sol-merger": "^0.1.2",
9293
"solidity-coverage": "^0.5.11",

scripts/coverage.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,4 @@
22

33
rm -rf flat
44

5-
TRAVIS_PULL_REQUEST=true scripts/test.sh
5+
COVERAGE=true scripts/test.sh

scripts/test.sh

Lines changed: 19 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -19,11 +19,7 @@ cleanup() {
1919
fi
2020
}
2121

22-
if ! [ -z "${TRAVIS_PULL_REQUEST+x}" ] && [ "$TRAVIS_PULL_REQUEST" != false ]; then
23-
testrpc_port=8545
24-
else
25-
testrpc_port=8545
26-
fi
22+
testrpc_port=8545
2723

2824
testrpc_running() {
2925
nc -z localhost "$testrpc_port"
@@ -60,20 +56,19 @@ start_testrpc() {
6056
--account="0x2bdd21761a483f71054e14f5b827213567971c676928d9a1808cbfa4b7501209,1000000000000000000000000"
6157
)
6258

63-
if ! [ -z "${TRAVIS_PULL_REQUEST+x}" ] && [ "$TRAVIS_PULL_REQUEST" != false ]; then
59+
if [ "$COVERAGE" = true ]; then
6460
node_modules/.bin/testrpc-sc --gasLimit 0xfffffffffff --port "$testrpc_port" "${accounts[@]}" > /dev/null &
6561
else
6662
node_modules/.bin/ganache-cli --gasLimit 8000000 "${accounts[@]}" > /dev/null &
6763
fi
6864

69-
7065
testrpc_pid=$!
7166
}
7267

7368
if testrpc_running; then
7469
echo "Using existing testrpc instance"
75-
# Do not start ethereum bridge unless it is a cron job from travis
76-
if [ "$TRAVIS_EVENT_TYPE" = "cron" ]; then
70+
# Do not start ethereum bridge unless it is a cron job
71+
if [ "$CIRCLE_CI_CRON" = true ]; then
7772
bridge_running
7873
if bridge_running; then
7974
echo "Using existing ethereum-bridge instance"
@@ -85,24 +80,32 @@ if testrpc_running; then
8580
else
8681
echo "Starting our own testrpc instance"
8782
start_testrpc
88-
# Do not start ethereum bridge unless it is a cron job from travis
89-
if [ "$TRAVIS_EVENT_TYPE" = "cron" ]; then
83+
# Do not start ethereum bridge unless it is a cron job
84+
if [ "$CIRCLE_CI_CRON" = true ]; then
9085
echo "Starting our own ethereum-bridge instance"
9186
sleep 10
9287
start_bridge
9388
fi
9489
fi
9590

96-
if ! [ -z "${TRAVIS_PULL_REQUEST+x}" ] && [ "$TRAVIS_PULL_REQUEST" != false ]; then
91+
if [ "$COVERAGE" = true ]; then
9792
curl -o node_modules/solidity-coverage/lib/app.js https://raw.githubusercontent.com/maxsam4/solidity-coverage/relative-path/lib/app.js
9893
node_modules/.bin/solidity-coverage
99-
if [ "$CONTINUOUS_INTEGRATION" = true ]; then
94+
if [ "$CIRCLECI" = true ]; then
10095
cat coverage/lcov.info | node_modules/.bin/coveralls
10196
fi
10297
else
103-
# Do not run a_poly_oracle,js tests unless it is a cron job from travis
104-
if [ "$TRAVIS_EVENT_TYPE" = "cron" ]; then
105-
node_modules/.bin/truffle test `ls test/*.js`
98+
if [ "$CIRCLECI" = true ]; then # using mocha junit reporter for parallelism in CircleCI
99+
mkdir test-results
100+
mkdir test-results/mocha
101+
rm truffle-config.js
102+
mv truffle-ci.js truffle-config.js
103+
# only run poly oracle and upgrade tests if cron job by CI
104+
if [ "$CIRCLE_CI_CRON" = true ]; then
105+
node_modules/.bin/truffle test `ls test/*.js | circleci tests split --split-by=timings`
106+
else
107+
node_modules/.bin/truffle test `find test/*.js ! -name a_poly_oracle.js -and ! -name s_v130_to_v140_upgrade.js | circleci tests split --split-by=timings`
108+
fi
106109
else
107110
node_modules/.bin/truffle test `find test/*.js ! -name a_poly_oracle.js -and ! -name s_v130_to_v140_upgrade.js`
108111
fi

truffle-ci.js

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
require('babel-register');
2+
require('babel-polyfill');
3+
4+
module.exports = {
5+
networks: {
6+
development: {
7+
host: 'localhost',
8+
port: 8545,
9+
network_id: '*', // Match any network id
10+
gas: 7900000,
11+
},
12+
coverage: {
13+
host: "localhost",
14+
network_id: "*",
15+
port: 8545, // <-- If you change this, also set the port option in .solcover.js.
16+
gas: 0xfffffffffff, // <-- Use this high gas value
17+
gasPrice: 0x01 // <-- Use this low gas price
18+
}
19+
},
20+
solc: {
21+
optimizer: {
22+
enabled: true,
23+
runs: 200,
24+
},
25+
},
26+
mocha: {
27+
enableTimeouts: false,
28+
reporter: "mocha-junit-reporter",
29+
reporterOptions: {
30+
mochaFile: './test-results/mocha/results.xml'
31+
}
32+
}
33+
};

yarn.lock

Lines changed: 37 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1331,6 +1331,11 @@ chardet@^0.4.0:
13311331
version "0.4.2"
13321332
resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.4.2.tgz#b5473b33dc97c424e5d98dc87d55d4d8a29c8bf2"
13331333

1334+
charenc@~0.0.1:
1335+
version "0.0.2"
1336+
resolved "https://registry.yarnpkg.com/charenc/-/charenc-0.0.2.tgz#c0a1d2f3a7092e03774bfa83f14c0fc5790a8667"
1337+
integrity sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc=
1338+
13341339
checkpoint-store@^1.1.0:
13351340
version "1.1.0"
13361341
resolved "https://registry.yarnpkg.com/checkpoint-store/-/checkpoint-store-1.1.0.tgz#04e4cb516b91433893581e6d4601a78e9552ea06"
@@ -1656,6 +1661,11 @@ cross-spawn@^5.0.1, cross-spawn@^5.1.0:
16561661
shebang-command "^1.2.0"
16571662
which "^1.2.9"
16581663

1664+
crypt@~0.0.1:
1665+
version "0.0.2"
1666+
resolved "https://registry.yarnpkg.com/crypt/-/crypt-0.0.2.tgz#88d7ff7ec0dfb86f713dc87bbb42d044d3e6c41b"
1667+
integrity sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs=
1668+
16591669
crypto-browserify@3.12.0, crypto-browserify@^3.11.0:
16601670
version "3.12.0"
16611671
resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec"
@@ -3444,7 +3454,7 @@ is-binary-path@^1.0.0:
34443454
dependencies:
34453455
binary-extensions "^1.0.0"
34463456

3447-
is-buffer@^1.1.5:
3457+
is-buffer@^1.1.5, is-buffer@~1.1.1:
34483458
version "1.1.6"
34493459
resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be"
34503460

@@ -4100,6 +4110,15 @@ md5.js@^1.3.4:
41004110
inherits "^2.0.1"
41014111
safe-buffer "^5.1.2"
41024112

4113+
md5@^2.1.0:
4114+
version "2.2.1"
4115+
resolved "https://registry.yarnpkg.com/md5/-/md5-2.2.1.tgz#53ab38d5fe3c8891ba465329ea23fac0540126f9"
4116+
integrity sha1-U6s41f48iJG6RlMp6iP6wFQBJvk=
4117+
dependencies:
4118+
charenc "~0.0.1"
4119+
crypt "~0.0.1"
4120+
is-buffer "~1.1.1"
4121+
41034122
media-typer@0.3.0:
41044123
version "0.3.0"
41054124
resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748"
@@ -4299,12 +4318,23 @@ mkdirp-promise@^5.0.1:
42994318
dependencies:
43004319
mkdirp "*"
43014320

4302-
mkdirp@*, mkdirp@0.5.1, mkdirp@0.5.x, mkdirp@0.x.x, "mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0:
4321+
mkdirp@*, mkdirp@0.5.1, mkdirp@0.5.x, mkdirp@0.x.x, "mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0, mkdirp@~0.5.1:
43034322
version "0.5.1"
43044323
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903"
43054324
dependencies:
43064325
minimist "0.0.8"
43074326

4327+
mocha-junit-reporter@^1.18.0:
4328+
version "1.18.0"
4329+
resolved "https://registry.yarnpkg.com/mocha-junit-reporter/-/mocha-junit-reporter-1.18.0.tgz#9209a3fba30025ae3ae5e6bfe7f9c5bc3c2e8ee2"
4330+
integrity sha512-y3XuqKa2+HRYtg0wYyhW/XsLm2Ps+pqf9HaTAt7+MVUAKFJaNAHOrNseTZo9KCxjfIbxUWwckP5qCDDPUmjSWA==
4331+
dependencies:
4332+
debug "^2.2.0"
4333+
md5 "^2.1.0"
4334+
mkdirp "~0.5.1"
4335+
strip-ansi "^4.0.0"
4336+
xml "^1.0.0"
4337+
43084338
mocha@^4.0.1, mocha@^4.1.0:
43094339
version "4.1.0"
43104340
resolved "https://registry.yarnpkg.com/mocha/-/mocha-4.1.0.tgz#7d86cfbcf35cb829e2754c32e17355ec05338794"
@@ -7047,6 +7077,11 @@ xhr@^2.0.4, xhr@^2.2.0, xhr@^2.3.3:
70477077
parse-headers "^2.0.0"
70487078
xtend "^4.0.0"
70497079

7080+
xml@^1.0.0:
7081+
version "1.0.1"
7082+
resolved "https://registry.yarnpkg.com/xml/-/xml-1.0.1.tgz#78ba72020029c5bc87b8a81a3cfcd74b4a2fc1e5"
7083+
integrity sha1-eLpyAgApxbyHuKgaPPzXS0ovweU=
7084+
70507085
xmlhttprequest@*, xmlhttprequest@1.8.0:
70517086
version "1.8.0"
70527087
resolved "https://registry.yarnpkg.com/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz#67fe075c5c24fef39f9d65f5f7b7fe75171968fc"

0 commit comments

Comments
 (0)