aboutsummaryrefslogtreecommitdiffstats
path: root/tests/files/ansible/roles
diff options
context:
space:
mode:
authorobscuren <geffobscura@gmail.com>2015-03-02 23:43:12 +0800
committerobscuren <geffobscura@gmail.com>2015-03-02 23:43:12 +0800
commit0823254c3bc2560f8e0dd6f19d05f471f8af94f4 (patch)
tree56188e6c00336c34971839a90ece54a576483606 /tests/files/ansible/roles
parent4f3f881c9be0b590e6e28fda295257e8d15d5f02 (diff)
parentce7204fa17560f6a76c7592bf5f23d29f22042d6 (diff)
downloadgo-tangerine-0823254c3bc2560f8e0dd6f19d05f471f8af94f4.tar
go-tangerine-0823254c3bc2560f8e0dd6f19d05f471f8af94f4.tar.gz
go-tangerine-0823254c3bc2560f8e0dd6f19d05f471f8af94f4.tar.bz2
go-tangerine-0823254c3bc2560f8e0dd6f19d05f471f8af94f4.tar.lz
go-tangerine-0823254c3bc2560f8e0dd6f19d05f471f8af94f4.tar.xz
go-tangerine-0823254c3bc2560f8e0dd6f19d05f471f8af94f4.tar.zst
go-tangerine-0823254c3bc2560f8e0dd6f19d05f471f8af94f4.zip
Add 'tests/files/' from commit 'ce7204fa17560f6a76c7592bf5f23d29f22042d6'
git-subtree-dir: tests/files git-subtree-mainline: 4f3f881c9be0b590e6e28fda295257e8d15d5f02 git-subtree-split: ce7204fa17560f6a76c7592bf5f23d29f22042d6
Diffstat (limited to 'tests/files/ansible/roles')
-rw-r--r--tests/files/ansible/roles/common/handlers/main.yml4
-rw-r--r--tests/files/ansible/roles/common/tasks/main.yml13
-rw-r--r--tests/files/ansible/roles/docker/handlers/main.yml4
-rw-r--r--tests/files/ansible/roles/docker/tasks/main.yml40
-rw-r--r--tests/files/ansible/roles/ec2/tasks/setup.yml33
-rw-r--r--tests/files/ansible/roles/ec2/tasks/terminate.yml8
-rw-r--r--tests/files/ansible/roles/ec2/vars/main.yml21
-rw-r--r--tests/files/ansible/roles/testrunner/tasks/main.yml34
8 files changed, 157 insertions, 0 deletions
diff --git a/tests/files/ansible/roles/common/handlers/main.yml b/tests/files/ansible/roles/common/handlers/main.yml
new file mode 100644
index 000000000..767fc7ba6
--- /dev/null
+++ b/tests/files/ansible/roles/common/handlers/main.yml
@@ -0,0 +1,4 @@
+---
+- name: restart sshd
+ sudo: true
+ service: name=ssh state=restarted
diff --git a/tests/files/ansible/roles/common/tasks/main.yml b/tests/files/ansible/roles/common/tasks/main.yml
new file mode 100644
index 000000000..6c0c7a119
--- /dev/null
+++ b/tests/files/ansible/roles/common/tasks/main.yml
@@ -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
diff --git a/tests/files/ansible/roles/docker/handlers/main.yml b/tests/files/ansible/roles/docker/handlers/main.yml
new file mode 100644
index 000000000..767fc7ba6
--- /dev/null
+++ b/tests/files/ansible/roles/docker/handlers/main.yml
@@ -0,0 +1,4 @@
+---
+- name: restart sshd
+ sudo: true
+ service: name=ssh state=restarted
diff --git a/tests/files/ansible/roles/docker/tasks/main.yml b/tests/files/ansible/roles/docker/tasks/main.yml
new file mode 100644
index 000000000..c434b34a5
--- /dev/null
+++ b/tests/files/ansible/roles/docker/tasks/main.yml
@@ -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
diff --git a/tests/files/ansible/roles/ec2/tasks/setup.yml b/tests/files/ansible/roles/ec2/tasks/setup.yml
new file mode 100644
index 000000000..0876d8d2d
--- /dev/null
+++ b/tests/files/ansible/roles/ec2/tasks/setup.yml
@@ -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 }}"
diff --git a/tests/files/ansible/roles/ec2/tasks/terminate.yml b/tests/files/ansible/roles/ec2/tasks/terminate.yml
new file mode 100644
index 000000000..e3d3df672
--- /dev/null
+++ b/tests/files/ansible/roles/ec2/tasks/terminate.yml
@@ -0,0 +1,8 @@
+---
+- name: Terminate ec2 instances
+ local_action: ec2
+ state=absent
+ instance_ids={{ ec2_id }}
+ region={{ region }}
+ wait=true
+
diff --git a/tests/files/ansible/roles/ec2/vars/main.yml b/tests/files/ansible/roles/ec2/vars/main.yml
new file mode 100644
index 000000000..ea260c927
--- /dev/null
+++ b/tests/files/ansible/roles/ec2/vars/main.yml
@@ -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
diff --git a/tests/files/ansible/roles/testrunner/tasks/main.yml b/tests/files/ansible/roles/testrunner/tasks/main.yml
new file mode 100644
index 000000000..41c195f24
--- /dev/null
+++ b/tests/files/ansible/roles/testrunner/tasks/main.yml
@@ -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 }}