Add 'tests/files/' from commit 'ce7204fa17560f6a76c7592bf5f23d29f22042d6'

git-subtree-dir: tests/files
git-subtree-mainline: 4f3f881c9b
git-subtree-split: ce7204fa17
This commit is contained in:
obscuren
2015-03-02 16:43:12 +01:00
74 changed files with 46739 additions and 0 deletions

View File

@@ -0,0 +1,4 @@
---
- name: restart sshd
sudo: true
service: name=ssh state=restarted

View File

@@ -0,0 +1,13 @@
---
- name: install package dependencies
sudo: true
apt: name={{ item }}
with_items:
- parallel
- htop
- name: checkout test repo
git:
repo: https://github.com/ethereum/tests.git
version: develop
dest: git

View File

@@ -0,0 +1,4 @@
---
- name: restart sshd
sudo: true
service: name=ssh state=restarted

View File

@@ -0,0 +1,40 @@
---
- name: update package list
sudo: true
apt: update_cache=true
- name: install docker dependencies
sudo: true
apt: name={{ item }} install_recommends=false
with_items:
# Docker has serious problems on EC2: http://www.danstutzman.com/2014/07/speed-up-docker-on-ec2
# and https://github.com/docker/docker/issues/4036
- linux-generic
- python-pip
- name: Kernel update needs a restart
sudo: true
command: shutdown -r now
async: 0
poll: 0
ignore_errors: true
- name: waiting for server to come back
local_action: wait_for host={{ inventory_hostname }} port=22
state=started
sudo: false
- name: install docker
sudo: true
# install script from https://docs.docker.com/installation/ubuntulinux/
# TODO this is not idempotent
shell: curl -sSL https://get.docker.com/ubuntu/ | sudo sh
- name: install docker python API
sudo: true
pip: name=docker-py
- name: enable docker for standard user
sudo: true
user: name={{ ansible_ssh_user }} groups=docker append=yes
notify: restart sshd

View File

@@ -0,0 +1,33 @@
---
- name: create default security group
ec2_group:
name: "{{ security_group }}"
region: "{{ region }}"
description: "{{ project_description }}"
rules:
# ssh
- proto: tcp
from_port: 22
to_port: 22
cidr_ip: "{{ ip_access_range }}"
rules_egress:
- proto: all
cidr_ip: "{{ ip_access_range }}"
- name: start ec2 instances
ec2:
group: "{{ security_group }}"
instance_type: "{{ instance_type }}"
image: "{{ image }}"
wait: true
region: "{{ region }}"
key_name: "{{ keypair }}"
instance_tags:
Name: test_runner
count_tag:
Name: test_runner
exact_count: "{{ total_no_instances }}"
# volumes:
# - device_name: /dev/xvda
# volume_size: "{{ volume_size_gb }}"

View File

@@ -0,0 +1,8 @@
---
- name: Terminate ec2 instances
local_action: ec2
state=absent
instance_ids={{ ec2_id }}
region={{ region }}
wait=true

View File

@@ -0,0 +1,21 @@
---
# default config for ec2 instances
instance_type: c4.xlarge
security_group: client-tests
# image: ami-d6e7c084
image: ami-9eaa1cf6
# region: ap-southeast-1
region: us-east-1
keypair: christoph
# keypair: client-tests
volume_size_gb: 50
# limit access to AWS to these clients in CDIR notation
ip_access_range: 0.0.0.0/0
project_description: https://github.com/ethereum/tests
total_no_instances: 1

View File

@@ -0,0 +1,34 @@
---
- name: update C++ client
docker_image:
path: /home/{{ ansible_ssh_user }}/git/ansible/test-files/docker-cppjit
name: ethereum/cppjit-testrunner
state: build
async: 1200
poll: 5
- name: update Go client
docker_image:
path: /home/{{ ansible_ssh_user }}/git/ansible/test-files/docker-go
name: ethereum/go-testrunner
state: build
async: 1200
poll: 5
- name: update Python client
docker_image:
path: /home/{{ ansible_ssh_user }}/git/ansible/test-files/docker-python
name: ethereum/python-testrunner
state: build
async: 1200
poll: 5
- name: Run infinite tests
shell: seq {{ ansible_processor_vcpus }} | parallel --max-args=0 /home/{{ ansible_ssh_user }}/git/ansible/test-files/testrunner.sh
# run for two months
async: "{{ 60 * 60 * 24 * 30 * 2 }}"
poll: 0
register: log_runner
- name: verify previous task
async_status: jid={{ log_runner.ansible_job_id }}