diff options
Diffstat (limited to 'tests/files/ansible')
6 files changed, 66 insertions, 48 deletions
diff --git a/tests/files/ansible/roles/testrunner/tasks/main.yml b/tests/files/ansible/roles/testrunner/tasks/main.yml index b93dc55a9..41c195f24 100644 --- a/tests/files/ansible/roles/testrunner/tasks/main.yml +++ b/tests/files/ansible/roles/testrunner/tasks/main.yml @@ -2,25 +2,23 @@ - name: update C++ client docker_image: path: /home/{{ ansible_ssh_user }}/git/ansible/test-files/docker-cppjit - name: cppjit + name: ethereum/cppjit-testrunner state: build -# command: docker build -t cpp /home/{{ ansible_ssh_user }}/git/ansible/test-files/docker-cpp async: 1200 poll: 5 - name: update Go client docker_image: path: /home/{{ ansible_ssh_user }}/git/ansible/test-files/docker-go - name: go + name: ethereum/go-testrunner state: build -# command: docker build -t go /home/{{ ansible_ssh_user }}/git/ansible/test-files/docker-go async: 1200 poll: 5 - name: update Python client docker_image: path: /home/{{ ansible_ssh_user }}/git/ansible/test-files/docker-python - name: python + name: ethereum/python-testrunner state: build async: 1200 poll: 5 diff --git a/tests/files/ansible/test-files/create-docker-images.sh b/tests/files/ansible/test-files/create-docker-images.sh new file mode 100755 index 000000000..06728c6d7 --- /dev/null +++ b/tests/files/ansible/test-files/create-docker-images.sh @@ -0,0 +1,7 @@ +#!/bin/bash -x + +# creates the necessary docker images to run testrunner.sh locally + +docker build --tag="ethereum/cppjit-testrunner" docker-cppjit +docker build --tag="ethereum/python-testrunner" docker-python +docker build --tag="ethereum/go-testrunner" docker-go diff --git a/tests/files/ansible/test-files/docker-cppjit/Dockerfile b/tests/files/ansible/test-files/docker-cppjit/Dockerfile index 7b4416cb8..b9b9b68ba 100644 --- a/tests/files/ansible/test-files/docker-cppjit/Dockerfile +++ b/tests/files/ansible/test-files/docker-cppjit/Dockerfile @@ -34,11 +34,13 @@ RUN add-apt-repository ppa:ethereum/ethereum RUN apt-get update RUN apt-get install -qy libcryptopp-dev libjson-rpc-cpp-dev +# this is a workaround, to make sure that docker's cache is invalidated whenever the git repo changes +ADD https://api.github.com/repos/ethereum/cpp-ethereum/git/refs/heads/develop unused.txt + # Build Ethereum (HEADLESS) RUN git clone --depth=1 --branch develop https://github.com/ethereum/cpp-ethereum RUN mkdir -p cpp-ethereum/build -RUN cd cpp-ethereum/build && cmake .. -DCMAKE_BUILD_TYPE=Release -DHEADLESS=1 -DEVMJIT=1 && make -j $(cat /proc/cpuinfo | grep processor | wc -l) && make install +RUN cd cpp-ethereum/build && cmake .. -DCMAKE_BUILD_TYPE=Debug -DVMTRACE=1 -DPARANOIA=1 -DEVMJIT=1 && make -j $(cat /proc/cpuinfo | grep processor | wc -l) && make install RUN ldconfig ENTRYPOINT ["/cpp-ethereum/build/test/checkRandomTest"] - diff --git a/tests/files/ansible/test-files/docker-go/Dockerfile b/tests/files/ansible/test-files/docker-go/Dockerfile index 2302518f3..a5a2f0f23 100644 --- a/tests/files/ansible/test-files/docker-go/Dockerfile +++ b/tests/files/ansible/test-files/docker-go/Dockerfile @@ -4,43 +4,44 @@ FROM ubuntu:14.04 ## Environment setup ENV HOME /root ENV GOPATH /root/go -ENV PATH /go/bin:/root/go/bin:/usr/local/go/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games +ENV PATH /golang/bin:/root/go/bin:/usr/local/go/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games +ENV PKG_CONFIG_PATH /opt/qt54/lib/pkgconfig RUN mkdir -p /root/go ENV DEBIAN_FRONTEND noninteractive ## Install base dependencies RUN apt-get update && apt-get upgrade -y -RUN apt-get install -y git mercurial build-essential software-properties-common pkg-config libgmp3-dev libreadline6-dev libpcre3-dev libpcre++-dev +RUN apt-get install -y git mercurial build-essential software-properties-common pkg-config libgmp3-dev libreadline6-dev libpcre3-dev libpcre++-dev mesa-common-dev libglu1-mesa-dev -## Build and install Go -RUN hg clone -u release https://code.google.com/p/go -RUN cd go && hg update go1.4 -RUN cd go/src && ./make.bash && go version - -## Install GUI dependencies -RUN add-apt-repository ppa:ubuntu-sdk-team/ppa -y +## Install Qt5.4 dependencies from PPA +RUN add-apt-repository ppa:beineri/opt-qt54-trusty -y RUN apt-get update -y -RUN apt-get install -y qtbase5-private-dev qtdeclarative5-private-dev libqt5opengl5-dev +RUN apt-get install -y qt54quickcontrols qt54webengine + +## Build and install latest Go +RUN git clone https://go.googlesource.com/go golang +RUN cd golang && git checkout go1.4.1 +RUN cd golang/src && ./make.bash && go version -## Fetch and install serpent-go -RUN go get -v -d github.com/ethereum/serpent-go -WORKDIR $GOPATH/src/github.com/ethereum/serpent-go -# RUN git checkout master -RUN git submodule update --init +## Fetch and install QML +RUN go get -u -v -d github.com/obscuren/qml +WORKDIR $GOPATH/src/github.com/obscuren/qml +RUN git checkout v1 RUN go install -v -# Fetch and install go-ethereum -RUN go get -v -d github.com/ethereum/go-ethereum/... +# this is a workaround, to make sure that docker's cache is invalidated whenever the git repo changes +ADD https://api.github.com/repos/ethereum/go-ethereum/git/refs/heads/develop unused.txt + +## Fetch and install go-ethereum +RUN go get -u -v -d github.com/ethereum/go-ethereum/... WORKDIR $GOPATH/src/github.com/ethereum/go-ethereum RUN git checkout develop - RUN git pull + + RUN ETH_DEPS=$(go list -f '{{.Imports}} {{.TestImports}} {{.XTestImports}}' github.com/ethereum/go-ethereum/... | sed -e 's/\[//g' | sed -e 's/\]//g' | sed -e 's/C //g'); if [ "$ETH_DEPS" ]; then go get $ETH_DEPS; fi RUN go install -v ./cmd/ethtest -# Run JSON RPC ENTRYPOINT ["ethtest"] -EXPOSE 8080 - diff --git a/tests/files/ansible/test-files/docker-python/Dockerfile b/tests/files/ansible/test-files/docker-python/Dockerfile index 0265f120b..e83faf3d6 100644 --- a/tests/files/ansible/test-files/docker-python/Dockerfile +++ b/tests/files/ansible/test-files/docker-python/Dockerfile @@ -1,6 +1,15 @@ -FROM sveneh/pyethereum-base +FROM ubuntu:14.04 -RUN git clone --branch master https://github.com/ethereum/pyethereum.git +ENV DEBIAN_FRONTEND noninteractive +RUN apt-get update +RUN apt-get upgrade -y + +RUN apt-get install -qy curl git python2.7 python-pip python-dev + +# this is a workaround, to make sure that docker's cache is invalidated whenever the git repo changes +ADD https://api.github.com/repos/ethereum/pyethereum/git/refs/heads/develop unused.txt + +RUN git clone --branch develop --recursive https://github.com/ethereum/pyethereum.git RUN cd pyethereum && curl https://bootstrap.pypa.io/bootstrap-buildout.py | python @@ -9,6 +18,6 @@ RUN cd pyethereum && bin/buildout #default port for incoming requests EXPOSE 30303 -WORKDIR /pyethereum/bin +WORKDIR /pyethereum -ENTRYPOINT ["./python", "../tests/test_vm.py"] +ENTRYPOINT ["bin/python", "tests/test_vm.py"] diff --git a/tests/files/ansible/test-files/testrunner.sh b/tests/files/ansible/test-files/testrunner.sh index 5d7779109..30a813e12 100755 --- a/tests/files/ansible/test-files/testrunner.sh +++ b/tests/files/ansible/test-files/testrunner.sh @@ -1,23 +1,24 @@ #!/bin/bash # create random virtual machine test -#cd ~/software/Ethereum/pyethereum (python has local dependencies so only works from within the directory) -cd ~ + +mkdir --parents ~/testout +cd ~/testout while [ 1 ] do - TEST="$(docker run --rm --entrypoint="/cpp-ethereum/build/test/createRandomTest" cppjit)" + TEST="$(docker run --rm --entrypoint=\"/cpp-ethereum/build/test/createRandomTest\" ethereum/cppjit-testrunner)" # echo "$TEST" # test pyethereum - #OUTPUT_PYTHON="$(python ./tests/test_vm.py "$TEST")" - #RESULT_PYTHON=$? + OUTPUT_PYTHON="$(docker run --rm ethereum/python-testrunner "$TEST")" + RESULT_PYTHON=$? # test go - OUTPUT_GO="$(docker run --rm go "$TEST")" + OUTPUT_GO="$(docker run --rm ethereum/go-testrunner "$TEST")" RESULT_GO=$? # test cpp-jit - OUTPUT_CPPJIT="$(docker run --rm cppjit "$TEST")" + OUTPUT_CPPJIT="$(docker run --rm ethereum/cppjit-testrunner "$TEST")" RESULT_CPPJIT=$? # go fails @@ -32,15 +33,15 @@ do fi # python fails - #if [ "$RESULT_PYTHON" -ne 0 ]; then - # echo Failed: - # echo Output_PYTHON: - # echo $OUTPUT_PYTHON - # echo Test: - # echo "$TEST" - # echo "$TEST" > FailedTest.json - # mv FailedTest.json $(date -d "today" +"%Y%m%d%H%M")PYTHON.json - #fi + if [ "$RESULT_PYTHON" -ne 0 ]; then + echo Failed: + echo Output_PYTHON: + echo $OUTPUT_PYTHON + echo Test: + echo "$TEST" + echo "$TEST" > FailedTest.json + mv FailedTest.json $(date -d "today" +"%Y%m%d%H%M")PYTHON.json + fi # cppjit fails if [ "$RESULT_CPPJIT" -ne 0 ]; then |