From 46be8bcda83b8a51823845acb36cd18f27fff9cc Mon Sep 17 00:00:00 2001 From: Bob Summerwill Date: Mon, 1 Aug 2016 22:04:56 -0700 Subject: Constraint Emscripten publish step to Ubuntu runs. More detailed comments for public step and for unit-test retry logic. Reordered caching steps alphabetically. --- .travis.yml | 42 +++++++++++++++++++++++++----------------- scripts/release_emscripten.sh | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 58 insertions(+), 17 deletions(-) create mode 100755 scripts/release_emscripten.sh diff --git a/.travis.yml b/.travis.yml index 2ec5bf46..1ee16333 100644 --- a/.travis.yml +++ b/.travis.yml @@ -68,12 +68,11 @@ git: cache: ccache: true directories: + - cryptopp + - boost_1_57_0 - build - build-emscripten - - boost_1_57_0 - jsoncpp - - cryptopp - install: - ./scripts/install_deps.sh @@ -87,13 +86,34 @@ before_script: && ./scripts/release.sh $ZIP_SUFFIX script: # There are a variety of reliability issues with the Solidity unit-tests at the time of - # writing, so we're actually running them 3 times in a row, to try to flush all of these - # issues out as quickly as possible. See https://github.com/ethereum/solidity/issues/769 + # writing (especially on macOS), so within TravisCI we will try to run the unit-tests + # up to 3 times before giving up and declaring the tests as broken. + # + # We should aim to remove this "retry logic" as soon as we can, because it is a + # band-aid for issues which need solving at their root. Some of those issues will be + # in Solidity's RPC setup and some will be in 'eth'. It seems unlikely that Solidity + # itself is broken from the failure messages which we are seeing. + # + # More details on known issues at https://github.com/ethereum/solidity/issues/769 - cd $TRAVIS_BUILD_DIR && (./scripts/tests.sh || ./scripts/tests.sh || ./scripts/tests.sh) env: global: - ENCRYPTION_LABEL="296c219a3f41" +# This is the deploy target for the Emscripten build. +# It publishes the JS file which was compiled as part of the earlier 'build_emscripten.sh' +# step to https://github.com/ethereum/solc-bin/tree/gh-pages/bin. +# Both the build and deploy steps for Emscripten are only run within the Ubuntu +# configurations (not for macOS). That is controlled by conditionals within the bash +# scripts because TravisCI doesn't provide much in the way of conditional logic. + +deploy: + provider: script + script: scripts/release_emscripten.sh + skip_cleanup: true + on: + branch: develop + # This is the deploy target for the native build (Linux and macOS) # which generates development ZIPs per commit. We are in agreement # that this is probably noisy overkill, so will want to renable this @@ -110,15 +130,3 @@ env: # repo: ethereum/solidity # branch: develop -# This is the deploy target for the Emscripten build, which publishes -# generated JS for particular Solidity commits into -# https://github.com/ethereum/solc-bin/tree/gh-pages/bin -# Disabled, but can be renamed when we have the "standalone" changes -# published back into the 'develop' branch. -# -deploy: - provider: script - script: scripts/travis-emscripten/publish_binary.sh - skip_cleanup: true - on: - branch: develop diff --git a/scripts/release_emscripten.sh b/scripts/release_emscripten.sh new file mode 100755 index 00000000..8db9a049 --- /dev/null +++ b/scripts/release_emscripten.sh @@ -0,0 +1,33 @@ +#!/usr/bin/env bash + +#------------------------------------------------------------------------------ +# Bash script which calls the Emscripten "publish binary" script on Ubuntu +# and does nothing on macOS. We should probably merge these two scripts in +# the near future. +# +# 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 +# +# (c) 2016 solidity contributors. +#------------------------------------------------------------------------------ + +if [[ "$OSTYPE" != "darwin"* ]]; then + ./scripts/travis-emscripten/publish_binary.sh +fi -- cgit