diff --git a/substrate/.gitignore b/substrate/.gitignore index 44aa658e92..a7e0f6be3d 100644 --- a/substrate/.gitignore +++ b/substrate/.gitignore @@ -1,6 +1,7 @@ /target/ **/*.rs.bk *.swp +.wasm-binaries polkadot/runtime/wasm/target/ substrate/executor/wasm/target/ substrate/test-runtime/wasm/target/ diff --git a/substrate/.travis.yml b/substrate/.travis.yml index 0bcb209d84..33a20d3d62 100644 --- a/substrate/.travis.yml +++ b/substrate/.travis.yml @@ -14,3 +14,4 @@ matrix: script: - cargo check --all - cargo test --all + - ./publish-wasm.sh diff --git a/substrate/publish-wasm.sh b/substrate/publish-wasm.sh new file mode 100755 index 0000000000..cc4238a374 --- /dev/null +++ b/substrate/publish-wasm.sh @@ -0,0 +1,73 @@ +#!/bin/bash + +set -e + +REPO="github.com/paritytech/polkadot-wasm-bin.git" +REPO_AUTH="${GH_TOKEN}:@${REPO}" +SRCS=( "polkadot/runtime/wasm" "substrate/executor/wasm" "substrate/test-runtime/wasm" ) +DST=".wasm-binaries" +TARGET="wasm32-unknown-unknown" +UTCDATE=`date -u "+%Y%m%d.%H%M%S"` + +pushd . + +echo "*** Initilising WASM build environment" +cd polkadot/runtime/wasm +./init.sh || true +cd ../../.. + +for SRC in "${SRCS[@]}" +do + echo "*** Building wasm binaries in $SRC" + cd $SRC + ./build.sh + cd ../../.. +done + +if [ "$TRAVIS_PULL_REQUEST" != "false" -o "$TRAVIS_BRANCH" != "master" ]; then + popd + echo "*** Skipping wasm binary publish" + exit 0 +fi + +echo "*** Cloning repo" +rm -rf $DST +git clone https://$REPO $DST +cd $DST +rm -rf $TARGET +mkdir -p $TARGET + +echo "*** Setting up GH config" +git config push.default simple +git config merge.ours.driver true +git config user.email "admin@parity.io" +git config user.name "CI Build" +git remote set-url origin https://$REPO_AUTH > /dev/null 2>&1 + +for SRC in "${SRCS[@]}" +do + echo "*** Copying wasm binaries from $SRC" + cp ../$SRC/target/$TARGET/release/*.wasm $TARGET +done + +if [ -f "package.json" ]; then + echo "*** Updating package.json" + sed -i '.bak' "s/\"version\": \"[0-9.]*\"/\"version\": \"$UTCDATE\"/g" package.json + rm -rf package.json.bak +fi + +echo "*** Adding to git" +echo "$UTCDATE" > README.md +git add --all . +git commit -m "$UTCDATE" + +echo "*** Pushing upstream" +git push --quiet origin HEAD:refs/heads/master > /dev/null 2>&1 + +echo "*** Cleanup" +cd .. +rm -rf $DST +popd + +echo "*** Completed" +exit 0