mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Merge pull request #3474 from ethereum/circle2
Split emscripten circle job into build and test.
This commit is contained in:
commit
69e2f497ba
85
circle.yml
85
circle.yml
@ -5,21 +5,6 @@ jobs:
|
||||
- image: trzeci/emscripten:sdk-tag-1.37.21-64bit
|
||||
steps:
|
||||
- checkout
|
||||
- run:
|
||||
name: Install external tests deps
|
||||
command: |
|
||||
apt-get -qq update
|
||||
apt-get -qy install netcat curl
|
||||
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.4/install.sh | NVM_DIR=/usr/local/nvm bash
|
||||
- run:
|
||||
name: Test external tests deps
|
||||
command: |
|
||||
export NVM_DIR="/usr/local/nvm"
|
||||
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
|
||||
nvm --version
|
||||
nvm install 6
|
||||
node --version
|
||||
npm --version
|
||||
- run:
|
||||
name: Init submodules
|
||||
command: |
|
||||
@ -40,14 +25,65 @@ jobs:
|
||||
key: *boost-cache-key
|
||||
paths:
|
||||
- boost_1_57_0
|
||||
- store_artifacts:
|
||||
path: build/libsolc/soljson.js
|
||||
destination: soljson.js
|
||||
- run: mkdir -p workspace
|
||||
- run: cp build/libsolc/soljson.js workspace/soljson.js
|
||||
- run: scripts/get_version.sh > workspace/version.txt
|
||||
- persist_to_workspace:
|
||||
root: workspace
|
||||
paths:
|
||||
- soljson.js
|
||||
- version.txt
|
||||
test_emscripten_solcjs:
|
||||
docker:
|
||||
- image: trzeci/emscripten:sdk-tag-1.37.21-64bit
|
||||
steps:
|
||||
- checkout
|
||||
- attach_workspace:
|
||||
at: /tmp/workspace
|
||||
- run:
|
||||
name: Test
|
||||
name: Install external tests deps
|
||||
command: |
|
||||
apt-get -qq update
|
||||
apt-get -qy install netcat curl
|
||||
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.4/install.sh | NVM_DIR=/usr/local/nvm bash
|
||||
export NVM_DIR="/usr/local/nvm"
|
||||
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
|
||||
nvm --version
|
||||
nvm install 6
|
||||
node --version
|
||||
npm --version
|
||||
- run:
|
||||
name: Test solcjs
|
||||
command: |
|
||||
. /usr/local/nvm/nvm.sh
|
||||
scripts/test_emscripten.sh
|
||||
- store_artifacts:
|
||||
path: build/solc/soljson.js
|
||||
destination: soljson.js
|
||||
test/solcjsTests.sh /tmp/workspace/soljson.js $(cat /tmp/workspace/version.txt)
|
||||
test_emscripten_external:
|
||||
docker:
|
||||
- image: trzeci/emscripten:sdk-tag-1.37.21-64bit
|
||||
steps:
|
||||
- checkout
|
||||
- attach_workspace:
|
||||
at: /tmp/workspace
|
||||
- run:
|
||||
name: Install external tests deps
|
||||
command: |
|
||||
apt-get -qq update
|
||||
apt-get -qy install netcat curl
|
||||
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.4/install.sh | NVM_DIR=/usr/local/nvm bash
|
||||
export NVM_DIR="/usr/local/nvm"
|
||||
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
|
||||
nvm --version
|
||||
nvm install 6
|
||||
node --version
|
||||
npm --version
|
||||
- run:
|
||||
name: External tests
|
||||
command: |
|
||||
. /usr/local/nvm/nvm.sh
|
||||
test/externalTests.sh /tmp/workspace/soljson.js
|
||||
build_x86:
|
||||
docker:
|
||||
- image: buildpack-deps:artful
|
||||
@ -90,10 +126,19 @@ jobs:
|
||||
command: build/test/soltest --logger=JUNIT,test_suite,test_results/opt.xml -- --optimize --no-ipc
|
||||
- store_test_results:
|
||||
path: test_results/
|
||||
- store_artifacts:
|
||||
path: build/solc/solc
|
||||
destination: solc
|
||||
|
||||
workflows:
|
||||
version: 2
|
||||
build_all:
|
||||
jobs:
|
||||
- build_emscripten
|
||||
- test_emscripten_solcjs:
|
||||
requires:
|
||||
- build_emscripten
|
||||
- test_emscripten_external:
|
||||
requires:
|
||||
- build_emscripten
|
||||
- build_x86
|
||||
|
@ -30,32 +30,9 @@ set -e
|
||||
|
||||
REPO_ROOT=$(cd $(dirname "$0")/.. && pwd)
|
||||
SOLJSON="$REPO_ROOT/build/libsolc/soljson.js"
|
||||
VERSION=$("$REPO_ROOT"/scripts/get_version.sh)
|
||||
|
||||
DIR=$(mktemp -d)
|
||||
(
|
||||
echo "Preparing solc-js..."
|
||||
git clone --depth 1 https://github.com/ethereum/solc-js "$DIR"
|
||||
cd "$DIR"
|
||||
# disable "prepublish" script which downloads the latest version
|
||||
# (we will replace it anyway and it is often incorrectly cached
|
||||
# on travis)
|
||||
npm config set script.prepublish ''
|
||||
npm install
|
||||
|
||||
# Replace soljson with current build
|
||||
echo "Replacing soljson.js"
|
||||
rm -f soljson.js
|
||||
cp "$SOLJSON" soljson.js
|
||||
|
||||
# Update version (needed for some tests)
|
||||
VERSION=$("$REPO_ROOT/scripts/get_version.sh")
|
||||
echo "Updating package.json to version $VERSION"
|
||||
npm version --no-git-tag-version $VERSION
|
||||
|
||||
echo "Running solc-js tests..."
|
||||
npm run test
|
||||
)
|
||||
rm -rf "$DIR"
|
||||
|
||||
echo "Running solcjs tests...."
|
||||
"$REPO_ROOT/test/solcjsTests.sh" "$SOLJSON" "$VERSION"
|
||||
echo "Running external tests...."
|
||||
"$REPO_ROOT/test/externalTests.sh" "$SOLJSON"
|
||||
|
63
test/solcjsTests.sh
Executable file
63
test/solcjsTests.sh
Executable file
@ -0,0 +1,63 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
# Bash script to execute the Solidity tests.
|
||||
#
|
||||
# The documentation for solidity is hosted at:
|
||||
#
|
||||
# https://solidity.readthedocs.org
|
||||
#
|
||||
# ------------------------------------------------------------------------------
|
||||
# This file is part of solidity.
|
||||
#
|
||||
# solidity is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# solidity is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with solidity. If not, see <http://www.gnu.org/licenses/>
|
||||
#
|
||||
# (c) 2017 solidity contributors.
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
set -e
|
||||
|
||||
if [ ! -f "$1" -o -z "$2" ]
|
||||
then
|
||||
echo "Usage: $0 <path to soljson.js> <version>"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
SOLJSON="$1"
|
||||
VERSION="$2"
|
||||
|
||||
DIR=$(mktemp -d)
|
||||
(
|
||||
echo "Preparing solc-js..."
|
||||
git clone --depth 1 https://github.com/ethereum/solc-js "$DIR"
|
||||
cd "$DIR"
|
||||
# disable "prepublish" script which downloads the latest version
|
||||
# (we will replace it anyway and it is often incorrectly cached
|
||||
# on travis)
|
||||
npm config set script.prepublish ''
|
||||
npm install
|
||||
|
||||
# Replace soljson with current build
|
||||
echo "Replacing soljson.js"
|
||||
rm -f soljson.js
|
||||
cp "$SOLJSON" soljson.js
|
||||
|
||||
# Update version (needed for some tests)
|
||||
echo "Updating package.json to version $VERSION"
|
||||
npm version --no-git-tag-version $VERSION
|
||||
|
||||
echo "Running solc-js tests..."
|
||||
npm run test
|
||||
)
|
||||
rm -rf "$DIR"
|
Loading…
Reference in New Issue
Block a user