From 2e2e36cc7220522d7b33b654543907163c973156 Mon Sep 17 00:00:00 2001 From: sveneh Date: Thu, 5 Feb 2015 12:07:12 +0100 Subject: [PATCH] updated python and go to new build requirement. added script to create dockers locally --- .gitignore | 5 +-- ansible/roles/testrunner/tasks/main.yml | 8 ++-- ansible/test-files/create-docker-images.sh | 7 ++++ ansible/test-files/docker-cppjit/Dockerfile | 4 +- ansible/test-files/docker-go/Dockerfile | 43 +++++++++++---------- ansible/test-files/docker-python/Dockerfile | 13 ++++++- 6 files changed, 48 insertions(+), 32 deletions(-) create mode 100755 ansible/test-files/create-docker-images.sh diff --git a/.gitignore b/.gitignore index 2dc08dd931..188ff005d4 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,5 @@ venv/ *~ -*.swp -*.swo +*.sw? .vagrant/ -client-tests.pem +*.pem diff --git a/ansible/roles/testrunner/tasks/main.yml b/ansible/roles/testrunner/tasks/main.yml index b93dc55a9c..41c195f245 100644 --- a/ansible/roles/testrunner/tasks/main.yml +++ b/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/ansible/test-files/create-docker-images.sh b/ansible/test-files/create-docker-images.sh new file mode 100755 index 0000000000..06728c6d72 --- /dev/null +++ b/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/ansible/test-files/docker-cppjit/Dockerfile b/ansible/test-files/docker-cppjit/Dockerfile index 7b4416cb86..738c1c5fb5 100644 --- a/ansible/test-files/docker-cppjit/Dockerfile +++ b/ansible/test-files/docker-cppjit/Dockerfile @@ -34,6 +34,9 @@ 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 @@ -41,4 +44,3 @@ RUN cd cpp-ethereum/build && cmake .. -DCMAKE_BUILD_TYPE=Release -DHEADLESS=1 -D RUN ldconfig ENTRYPOINT ["/cpp-ethereum/build/test/checkRandomTest"] - diff --git a/ansible/test-files/docker-go/Dockerfile b/ansible/test-files/docker-go/Dockerfile index 2302518f33..a5a2f0f231 100644 --- a/ansible/test-files/docker-go/Dockerfile +++ b/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/ansible/test-files/docker-python/Dockerfile b/ansible/test-files/docker-python/Dockerfile index 0265f120b1..23d9907894 100644 --- a/ansible/test-files/docker-python/Dockerfile +++ b/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 https://github.com/ethereum/pyethereum.git RUN cd pyethereum && curl https://bootstrap.pypa.io/bootstrap-buildout.py | python