Dockers for go, cpp
This commit is contained in:
parent
74faa30af6
commit
9326d0a6dd
|
@ -2,4 +2,4 @@
|
||||||
|
|
||||||
Testing is done in a Vagrant virtual machine
|
Testing is done in a Vagrant virtual machine
|
||||||
|
|
||||||
install vagrant, virtualbox, ansible, then do `vagrant up`. It should provison a basic machine. `vagrant ssh` to verify the machine is working as expected.
|
install vagrant, virtualbox, ansible, then do `vagrant up`. It should provison a basic machine. `vagrant ssh` to verify the machine is working as expected. `vagrant terminate` to reset machine to clean state.
|
||||||
|
|
|
@ -55,10 +55,12 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
|
||||||
# end
|
# end
|
||||||
|
|
||||||
|
|
||||||
# Ubuntu / Virtualbox workaround.
|
|
||||||
# see http://askubuntu.com/questions/238040/how-do-i-fix-name-service-for-vagrant-client
|
|
||||||
config.vm.provider "virtualbox" do |vb|
|
config.vm.provider "virtualbox" do |vb|
|
||||||
|
# Ubuntu / Virtualbox workaround.
|
||||||
|
# see http://askubuntu.com/questions/238040/how-do-i-fix-name-service-for-vagrant-client
|
||||||
vb.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]
|
vb.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]
|
||||||
|
|
||||||
|
vb.customize ["modifyvm", :id, "--memory", "1024"]
|
||||||
end
|
end
|
||||||
|
|
||||||
#
|
#
|
||||||
|
@ -68,7 +70,7 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
|
||||||
|
|
||||||
# Ansible
|
# Ansible
|
||||||
config.vm.provision "ansible" do |ansible|
|
config.vm.provision "ansible" do |ansible|
|
||||||
ansible.playbook = "host-config.yml"
|
ansible.playbook = "site.yml"
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
---
|
---
|
||||||
- name: Provision the operation system for buildslave
|
- name: Provision the operation system for tests
|
||||||
# testing
|
# testing
|
||||||
hosts: all
|
hosts: all
|
||||||
# live
|
# live
|
||||||
# hosts: poc-8.ethdev.com
|
# hosts: TDB
|
||||||
roles:
|
roles:
|
||||||
- common
|
- common
|
||||||
|
|
|
@ -9,6 +9,7 @@
|
||||||
apt: name={{ item }}
|
apt: name={{ item }}
|
||||||
with_items:
|
with_items:
|
||||||
- python-pip
|
- python-pip
|
||||||
|
- htop
|
||||||
|
|
||||||
- name: install python dependencies
|
- name: install python dependencies
|
||||||
sudo: true
|
sudo: true
|
||||||
|
|
|
@ -0,0 +1,32 @@
|
||||||
|
# adjusted from https://github.com/ethereum/cpp-ethereum/blob/develop/docker/Dockerfile
|
||||||
|
FROM ubuntu:14.04
|
||||||
|
|
||||||
|
ENV DEBIAN_FRONTEND noninteractive
|
||||||
|
RUN apt-get update
|
||||||
|
RUN apt-get upgrade -y
|
||||||
|
|
||||||
|
# Ethereum dependencies
|
||||||
|
RUN apt-get install -qy build-essential g++-4.8 git cmake libboost-all-dev libcurl4-openssl-dev wget
|
||||||
|
RUN apt-get install -qy automake unzip libgmp-dev libtool libleveldb-dev yasm libminiupnpc-dev libreadline-dev scons
|
||||||
|
RUN apt-get install -qy libjsoncpp-dev libargtable2-dev
|
||||||
|
|
||||||
|
# NCurses based GUI (not optional though for a succesful compilation, see https://github.com/ethereum/cpp-ethereum/issues/452 )
|
||||||
|
RUN apt-get install -qy libncurses5-dev
|
||||||
|
|
||||||
|
# Qt-based GUI
|
||||||
|
# RUN apt-get install -qy qtbase5-dev qt5-default qtdeclarative5-dev libqt5webkit5-dev
|
||||||
|
|
||||||
|
# Ethereum PPA
|
||||||
|
RUN apt-get install -qy software-properties-common
|
||||||
|
RUN add-apt-repository ppa:ethereum/ethereum
|
||||||
|
RUN apt-get update
|
||||||
|
RUN apt-get install -qy libcryptopp-dev libjson-rpc-cpp-dev
|
||||||
|
|
||||||
|
# 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 && make -j $(cat /proc/cpuinfo | grep processor | wc -l) && make install
|
||||||
|
RUN ldconfig
|
||||||
|
|
||||||
|
ENTRYPOINT ["/cpp-ethereum/build/test/createRandomTest"]
|
||||||
|
|
|
@ -16,7 +16,7 @@ RUN apt-get install -y git mercurial build-essential software-properties-common
|
||||||
## Build and install Go
|
## Build and install Go
|
||||||
RUN hg clone -u release https://code.google.com/p/go
|
RUN hg clone -u release https://code.google.com/p/go
|
||||||
RUN cd go && hg update go1.4
|
RUN cd go && hg update go1.4
|
||||||
RUN cd go/src && ./all.bash && go version
|
RUN cd go/src && ./make.bash && go version
|
||||||
|
|
||||||
## Install GUI dependencies
|
## Install GUI dependencies
|
||||||
RUN add-apt-repository ppa:ubuntu-sdk-team/ppa -y
|
RUN add-apt-repository ppa:ubuntu-sdk-team/ppa -y
|
||||||
|
|
|
@ -0,0 +1,55 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# create random virtual machine test
|
||||||
|
#cd ~/software/Ethereum/pyethereum (python has local dependencies so only works from within the directory)
|
||||||
|
while [ 1 ]
|
||||||
|
do
|
||||||
|
TEST="$(~/software/Ethereum/cpp-ethereum/build/test/createRandomTest)"
|
||||||
|
# echo "$TEST"
|
||||||
|
|
||||||
|
# test pyethereum
|
||||||
|
|
||||||
|
#OUTPUT_PYTHON="$(python ./tests/test_vm.py "$TEST")"
|
||||||
|
#RESULT_PYTHON=$?
|
||||||
|
|
||||||
|
# test go
|
||||||
|
OUTPUT_GO="$(ethtest "$TEST")"
|
||||||
|
RESULT_GO=$?
|
||||||
|
|
||||||
|
# test cpp-jit
|
||||||
|
#OUTPUT_CPPJIT="$(~/software/Ethereum/cpp-ethereum/build/test/checkRandomTest "$TEST")"
|
||||||
|
#RESULT_CPPJIT=$?
|
||||||
|
|
||||||
|
# go fails
|
||||||
|
if [ "$RESULT_GO" -ne 0 ]; then
|
||||||
|
echo Failed:
|
||||||
|
echo Output_GO:
|
||||||
|
echo $OUTPUT_GO
|
||||||
|
echo Test:
|
||||||
|
echo "$TEST"
|
||||||
|
echo "$TEST" > FailedTest.json
|
||||||
|
mv FailedTest.json $(date -d "today" +"%Y%m%d%H%M")GO.json # replace with scp to central server
|
||||||
|
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
|
||||||
|
|
||||||
|
# cppjit fails
|
||||||
|
#if [ "$RESULT_CPPJIT" -ne 0 ]; then
|
||||||
|
# echo Failed:
|
||||||
|
# echo Output_CPPJIT:
|
||||||
|
# echo $OUTPUT_CPPJIT
|
||||||
|
# echo Test:
|
||||||
|
# echo "$TEST"
|
||||||
|
# echo "$TEST" > FailedTest.json
|
||||||
|
# mv FailedTest.json $(date -d "today" +"%Y%m%d%H%M")CPPJIT.json
|
||||||
|
#fi
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
---
|
---
|
||||||
- name: setting up buildslave configuration
|
- name: preparing and running tests
|
||||||
# testing
|
# testing
|
||||||
hosts: all
|
hosts: all
|
||||||
# live
|
# live
|
||||||
# hosts: poc-8.ethdev.com
|
# hosts: TBD
|
||||||
|
|
||||||
# TODO use the right user for configuring, until credentials set, stay with default vagrant user
|
# TODO use the right user for configuring, until credentials set, stay with default vagrant user
|
||||||
# remote_user: buildsalve
|
# remote_user: ubuntu
|
||||||
|
|
||||||
roles:
|
roles:
|
||||||
- buildslave
|
- testrunner
|
||||||
|
|
Loading…
Reference in New Issue