From 9646cc951f61e78ccb9d9cb93ec92009198f4397 Mon Sep 17 00:00:00 2001 From: Francisco Giordano Date: Thu, 2 May 2019 14:58:07 -0300 Subject: [PATCH] Fix solc-nightly job (#1732) * update truffle to 5.0.14 * fix setup to test with solc-nightly * switch to npx in script/test.sh * please the linter * rename build to prepack * move download of nightly build to a compile script * make compile script executable --- package-lock.json | 115 ++----------------------------- package.json | 7 +- scripts/compile.sh | 7 ++ scripts/{build.sh => prepack.sh} | 0 scripts/test.sh | 17 ++--- truffle-config.js | 15 +++- 6 files changed, 34 insertions(+), 127 deletions(-) create mode 100755 scripts/compile.sh rename scripts/{build.sh => prepack.sh} (100%) diff --git a/package-lock.json b/package-lock.json index 802e3ec25..3b5c72961 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11708,114 +11708,11 @@ "yargs": "^11.0.0" }, "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "camelcase": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", - "dev": true - }, - "cliui": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", - "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", - "dev": true, - "requires": { - "string-width": "^2.1.1", - "strip-ansi": "^4.0.0", - "wrap-ansi": "^2.0.0" - } - }, - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "requires": { - "locate-path": "^2.0.0" - } - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "os-locale": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", - "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", - "dev": true, - "requires": { - "execa": "^0.7.0", - "lcid": "^1.0.0", - "mem": "^1.1.0" - } - }, "semver": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.6.0.tgz", - "integrity": "sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg==", + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz", + "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==", "dev": true - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, - "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - } - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - } - }, - "which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", - "dev": true - }, - "yargs": { - "version": "11.1.0", - "resolved": "http://registry.npmjs.org/yargs/-/yargs-11.1.0.tgz", - "integrity": "sha512-NwW69J42EsCSanF8kyn5upxvjp5ds+t3+udGBeTbFnERA+lF541DDpMawzo4z6W/QrzNM18D+BPMiOBibnFV5A==", - "dev": true, - "requires": { - "cliui": "^4.0.0", - "decamelize": "^1.1.1", - "find-up": "^2.1.0", - "get-caller-file": "^1.0.1", - "os-locale": "^2.0.0", - "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", - "set-blocking": "^2.0.0", - "string-width": "^2.0.0", - "which-module": "^2.0.0", - "y18n": "^3.2.1", - "yargs-parser": "^9.0.2" - } - }, - "yargs-parser": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-9.0.2.tgz", - "integrity": "sha1-nM9qQ0YP5O1Aqbto9I1DuKaMwHc=", - "dev": true, - "requires": { - "camelcase": "^4.1.0" - } } } }, @@ -13121,9 +13018,9 @@ "dev": true }, "truffle": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/truffle/-/truffle-5.0.0.tgz", - "integrity": "sha512-la0TJu+E59Ut62i6cGY0sugeubglDqH5w49a7IrpxZ1nnsDqv6qWB3ibiyYiCp/jr+iI0bLtcr3DKkfQjVDd+g==", + "version": "5.0.14", + "resolved": "https://registry.npmjs.org/truffle/-/truffle-5.0.14.tgz", + "integrity": "sha512-Mlf4S58NMyR8YZFvQLAzA+7eCaDZw6ZSa92NWXDQjy1RbUfpl08/VPa06KLT+LosQuOPZr/NSH9f0u2qxfo/Qw==", "dev": true, "requires": { "app-module-path": "^2.2.0", diff --git a/package.json b/package.json index 47930de8a..00ec06010 100644 --- a/package.json +++ b/package.json @@ -8,8 +8,7 @@ "test/behaviors" ], "scripts": { - "build": "scripts/build.sh", - "compile": "truffle compile", + "compile": "scripts/compile.sh", "console": "truffle console", "coverage": "scripts/coverage.sh", "docsite": "scripts/docsite.sh", @@ -19,7 +18,7 @@ "lint:js": "eslint .", "lint:js:fix": "eslint . --fix", "lint:sol": "solhint --max-warnings 0 \"contracts/**/*.sol\"", - "prepack": "npm run build", + "prepack": "npm run prepack", "release": "scripts/release/release.sh", "version": "scripts/release/update-changelog-release-date.js && scripts/release/update-ethpm-version.js", "test": "npm run compile && scripts/test.sh" @@ -60,6 +59,6 @@ "solhint": "^1.5.0", "solidity-coverage": "github:rotcivegaf/solidity-coverage#5875f5b7bc74d447f3312c9c0e9fc7814b482477", "solidity-docgen": "^0.2.0-alpha.0", - "truffle": "^5.0.0" + "truffle": "^5.0.14" } } diff --git a/scripts/compile.sh b/scripts/compile.sh new file mode 100755 index 000000000..804d2ed77 --- /dev/null +++ b/scripts/compile.sh @@ -0,0 +1,7 @@ +#!/usr/bin/env sh + +if [ "$SOLC_NIGHTLY" = true ]; then + docker pull ethereum/solc:nightly +fi + +truffle compile diff --git a/scripts/build.sh b/scripts/prepack.sh similarity index 100% rename from scripts/build.sh rename to scripts/prepack.sh diff --git a/scripts/test.sh b/scripts/test.sh index a68c0ad7e..fa8c631b5 100755 --- a/scripts/test.sh +++ b/scripts/test.sh @@ -39,9 +39,9 @@ start_ganache() { ) if [ "$SOLIDITY_COVERAGE" = true ]; then - node_modules/.bin/ganache-cli-coverage --emitFreeLogs true --allowUnlimitedContractSize true --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 - node_modules/.bin/ganache-cli --gasLimit 0xfffffffffff --port "$ganache_port" "${accounts[@]}" > /dev/null & + npx ganache-cli --gasLimit 0xfffffffffff --port "$ganache_port" "${accounts[@]}" > /dev/null & fi ganache_pid=$! @@ -62,19 +62,14 @@ else start_ganache fi -if [ "$SOLC_NIGHTLY" = true ]; then - 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 +npx truffle version 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 + cat coverage/lcov.info | npx coveralls fi else - node_modules/.bin/truffle test "$@" + npx truffle test "$@" fi diff --git a/truffle-config.js b/truffle-config.js index de5297491..3f7e50542 100644 --- a/truffle-config.js +++ b/truffle-config.js @@ -1,5 +1,16 @@ require('chai/register-should'); +const solcStable = { + version: '0.5.7', +}; + +const solcNightly = { + version: 'nightly', + docker: true, +}; + +const useSolcNightly = process.env.SOLC_NIGHTLY === 'true'; + module.exports = { networks: { development: { @@ -17,8 +28,6 @@ module.exports = { }, compilers: { - solc: { - version: '0.5.7', - }, + solc: useSolcNightly ? solcNightly : solcStable, }, };