bring over circleci migration
This commit is contained in:
82
.circleci/config.yml
Normal file
82
.circleci/config.yml
Normal file
@ -0,0 +1,82 @@
|
|||||||
|
version: 2
|
||||||
|
# 2.1 does not yet support local run
|
||||||
|
# unless with workaround. For simplicity just use it.
|
||||||
|
# https://github.com/CircleCI-Public/circleci-cli/issues/79
|
||||||
|
|
||||||
|
aliases:
|
||||||
|
- &defaults
|
||||||
|
docker:
|
||||||
|
- image: circleci/node:8
|
||||||
|
|
||||||
|
- &npm_install_if_necessary
|
||||||
|
run:
|
||||||
|
name: Install npm dependencies
|
||||||
|
command: |
|
||||||
|
if [ ! -d node_modules ]; then
|
||||||
|
npm ci
|
||||||
|
fi
|
||||||
|
|
||||||
|
- &cache_key_node_modules
|
||||||
|
key: v1-node_modules-{{ checksum "package-lock.json" }}
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
dependencies:
|
||||||
|
<<: *defaults
|
||||||
|
steps:
|
||||||
|
- checkout
|
||||||
|
- restore_cache:
|
||||||
|
<<: *cache_key_node_modules
|
||||||
|
- *npm_install_if_necessary
|
||||||
|
- save_cache:
|
||||||
|
paths:
|
||||||
|
- node_modules
|
||||||
|
<<: *cache_key_node_modules
|
||||||
|
|
||||||
|
lint:
|
||||||
|
<<: *defaults
|
||||||
|
steps:
|
||||||
|
- checkout
|
||||||
|
- restore_cache:
|
||||||
|
<<: *cache_key_node_modules
|
||||||
|
- *npm_install_if_necessary
|
||||||
|
- run:
|
||||||
|
name: Linter
|
||||||
|
command: npm run lint
|
||||||
|
test:
|
||||||
|
<<: *defaults
|
||||||
|
steps:
|
||||||
|
- checkout
|
||||||
|
- restore_cache:
|
||||||
|
<<: *cache_key_node_modules
|
||||||
|
- *npm_install_if_necessary
|
||||||
|
- run:
|
||||||
|
name: Unit tests
|
||||||
|
command: npm run test
|
||||||
|
coverage:
|
||||||
|
docker:
|
||||||
|
- image: circleci/node:8
|
||||||
|
steps:
|
||||||
|
- checkout
|
||||||
|
- restore_cache:
|
||||||
|
<<: *cache_key_node_modules
|
||||||
|
- *npm_install_if_necessary
|
||||||
|
- run:
|
||||||
|
name: Unit tests with coverage report
|
||||||
|
command: npm run coverage
|
||||||
|
|
||||||
|
# TODO(xinbenlv, #1839): run SOLC_NIGHTLY to be run but allow it to fail.
|
||||||
|
|
||||||
|
workflows:
|
||||||
|
version: 2
|
||||||
|
everything:
|
||||||
|
jobs:
|
||||||
|
- dependencies
|
||||||
|
- lint:
|
||||||
|
requires:
|
||||||
|
- dependencies
|
||||||
|
- test:
|
||||||
|
requires:
|
||||||
|
- dependencies
|
||||||
|
- coverage:
|
||||||
|
requires:
|
||||||
|
- dependencies
|
||||||
53
.travis.yml
53
.travis.yml
@ -1,53 +0,0 @@
|
|||||||
dist: trusty
|
|
||||||
sudo: false
|
|
||||||
group: beta
|
|
||||||
language: node_js
|
|
||||||
node_js:
|
|
||||||
- "8"
|
|
||||||
|
|
||||||
cache:
|
|
||||||
directories:
|
|
||||||
- node_modules
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
# XXX fast_finish doesn't work with stages yet. See
|
|
||||||
# https://github.com/travis-ci/travis-ci/issues/8425
|
|
||||||
# --elopio - 20180531
|
|
||||||
fast_finish: true
|
|
||||||
allow_failures:
|
|
||||||
- env: SOLC_NIGHTLY=true
|
|
||||||
include:
|
|
||||||
- stage: tests
|
|
||||||
name: "Linter"
|
|
||||||
script: npm run lint
|
|
||||||
|
|
||||||
- stage: tests
|
|
||||||
name: "Unit tests"
|
|
||||||
script: npm run test
|
|
||||||
|
|
||||||
- stage: tests
|
|
||||||
name: "Unit tests with coverage report"
|
|
||||||
script: npm run test
|
|
||||||
env: SOLIDITY_COVERAGE=true
|
|
||||||
|
|
||||||
- stage: tests
|
|
||||||
name: "Unit tests using solc nightly"
|
|
||||||
script: npm run test
|
|
||||||
env: SOLC_NIGHTLY=true
|
|
||||||
|
|
||||||
- stage: update docs
|
|
||||||
if: tag =~ ^v[0-9]+\.[0-9]+\.[0-9]+$
|
|
||||||
addons:
|
|
||||||
apt:
|
|
||||||
packages:
|
|
||||||
- curl
|
|
||||||
script:
|
|
||||||
- ./scripts/ci/trigger_docs_update "${TRAVIS_TAG}"
|
|
||||||
|
|
||||||
notifications:
|
|
||||||
slack:
|
|
||||||
rooms:
|
|
||||||
- secure: uEhwUkuwJp5pBNh+VTEytPHz3FDKsnPrKO+8MTAKv5hKi4PCRoVhLv6pklr82HUpL6pvSvJbUPA0HVebOXA+MMSxdny/BHZTh2mtw5Y78l2Ad0svDTWuV2Lus2pmhYigRhT0Wo00/SRX9+pxm0kg4EIFJSTS+uR9G76x0l9NljpEGXrqxlDxjxoHBgk8Ciru2LHaLzX/utE3jlABts4Sb1F3wc2BwFkjd6BDCRTGAPhVJwwFk41ZfnmLVbgSNUyk46Cb38oG5oXHb0FI3d3jV/k1OUhRyFfmA2fLXRk0wavibW8TG1gGJJWZ7xTCKzw/Cvup6mpehSAeQef8eekMdjpWEhF9hYRq1BvOs0384UU8NQ0O+BtdXU+X3Nyr84TMJN/iIfgN7gYX7AsvXH3jC0JfNUcIkWlJvyXdE6l2GV1hMmhL09GFEBbSpuSXRIWlOXTcYBlp5NbvE8xO8PUW+T6N5RG2XXjv1g8wCpr6Wwk1+LmRkX5trv8MFBZ2pM8p4H5da5++Ov8egLonNGK2jbx6aBLBX3tPf+g70LZEkiQ4eBfZw8VIgXIvKreisicppNuCD27gNmSEPNt0NkwiEBcTCJ9GSVAO0CU2g4ggvHDX2A+RW5XPET9bGkBXKLfFyV7Qe+MSQjXkCnW3bIRh7Wo1V31XiUiYOLuZPIiH3EQ=
|
|
||||||
on_success: change
|
|
||||||
on_failure: always
|
|
||||||
on_pull_requests: false
|
|
||||||
@ -1,3 +1,9 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
set -o errexit
|
||||||
|
|
||||||
SOLIDITY_COVERAGE=true scripts/test.sh
|
SOLIDITY_COVERAGE=true scripts/test.sh
|
||||||
|
|
||||||
|
if [ "$CI" = true ]; then
|
||||||
|
curl -s https://codecov.io/bash | bash -s -- -C "$CIRCLE_SHA1"
|
||||||
|
fi
|
||||||
|
|||||||
@ -39,12 +39,20 @@ start_ganache() {
|
|||||||
)
|
)
|
||||||
|
|
||||||
if [ "$SOLIDITY_COVERAGE" = true ]; then
|
if [ "$SOLIDITY_COVERAGE" = true ]; then
|
||||||
node_modules/.bin/testrpc-sc --gasLimit 0xfffffffffff --port "$ganache_port" "${accounts[@]}" > /dev/null &
|
npx ganache-cli-coverage --emitFreeLogs true --allowUnlimitedContractSize true --gasLimit 0xfffffffffff --port "$ganache_port" "${accounts[@]}" > /dev/null &
|
||||||
else
|
else
|
||||||
node_modules/.bin/ganache-cli --gasLimit 0xfffffffffff "${accounts[@]}" > /dev/null &
|
npx ganache-cli --gasLimit 0xfffffffffff --port "$ganache_port" "${accounts[@]}" > /dev/null &
|
||||||
fi
|
fi
|
||||||
|
|
||||||
ganache_pid=$!
|
ganache_pid=$!
|
||||||
|
|
||||||
|
echo "Waiting for ganache to launch on port "$ganache_port"..."
|
||||||
|
|
||||||
|
while ! ganache_running; do
|
||||||
|
sleep 0.1 # wait for 1/10 of the second before check again
|
||||||
|
done
|
||||||
|
|
||||||
|
echo "Ganache launched!"
|
||||||
}
|
}
|
||||||
|
|
||||||
if ganache_running; then
|
if ganache_running; then
|
||||||
@ -54,19 +62,10 @@ else
|
|||||||
start_ganache
|
start_ganache
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "$SOLC_NIGHTLY" = true ]; then
|
npx truffle version
|
||||||
echo "Downloading solc nightly"
|
|
||||||
wget -q https://raw.githubusercontent.com/ethereum/solc-bin/gh-pages/bin/soljson-nightly.js -O /tmp/soljson.js && find . -name soljson.js -exec cp /tmp/soljson.js {} \;
|
|
||||||
fi
|
|
||||||
|
|
||||||
truffle version
|
|
||||||
|
|
||||||
if [ "$SOLIDITY_COVERAGE" = true ]; then
|
if [ "$SOLIDITY_COVERAGE" = true ]; then
|
||||||
node_modules/.bin/solidity-coverage
|
npx solidity-coverage
|
||||||
|
|
||||||
if [ "$CONTINUOUS_INTEGRATION" = true ]; then
|
|
||||||
cat coverage/lcov.info | node_modules/.bin/coveralls
|
|
||||||
fi
|
|
||||||
else
|
else
|
||||||
node_modules/.bin/truffle test "$@"
|
npx truffle test "$@"
|
||||||
fi
|
fi
|
||||||
|
|||||||
Reference in New Issue
Block a user