run-selenium: run selenium on a node
This runs selenium from a container on a node, and exposes port 4444 so you can issue commands to it. This is used in the follow-on I56cda99790d3c172e10b664e57abeca10efc5566 to take some screenshots of gerrit. Change-Id: Idcbcd9a8f33bd86b5f3e546dd563792212e0751b
This commit is contained in:
parent
4d41c1002c
commit
be085e564e
6
playbooks/roles/run-selenium/README.rst
Normal file
6
playbooks/roles/run-selenium/README.rst
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
run-selenium
|
||||||
|
|
||||||
|
Run a selenium container that listens on port 4444 on a host.
|
||||||
|
|
||||||
|
This is intended only for use during gate testing to capture
|
||||||
|
screenshots from a local service. Usually used from testinfra jobs.
|
5
playbooks/roles/run-selenium/tasks/main.yaml
Normal file
5
playbooks/roles/run-selenium/tasks/main.yaml
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
- name: Run selenium container
|
||||||
|
shell:
|
||||||
|
executable: /bin/sh
|
||||||
|
cmd: |
|
||||||
|
docker run -d --network="host" -v /dev/shm:/dev/shm selenium/standalone-firefox:4.0.0-beta-1-prerelease-20201202
|
@ -41,7 +41,11 @@
|
|||||||
bastion_ipv4: "{{ nodepool['public_ipv4'] }}"
|
bastion_ipv4: "{{ nodepool['public_ipv4'] }}"
|
||||||
bastion_ipv6: "{{ nodepool['public_ipv6'] }}"
|
bastion_ipv6: "{{ nodepool['public_ipv6'] }}"
|
||||||
bastion_public_key: "{{ lookup('file', zuul.executor.work_root + '/' + zuul.build + '_id_rsa.pub') }}"
|
bastion_public_key: "{{ lookup('file', zuul.executor.work_root + '/' + zuul.build + '_id_rsa.pub') }}"
|
||||||
iptables_test_public_tcp_ports: [19885]
|
iptables_test_public_tcp_ports:
|
||||||
|
# Zuul web console
|
||||||
|
- 19885
|
||||||
|
# selenium
|
||||||
|
- 4444
|
||||||
template:
|
template:
|
||||||
src: "templates/{{ item }}.j2"
|
src: "templates/{{ item }}.j2"
|
||||||
dest: "/etc/ansible/hosts/{{ item }}"
|
dest: "/etc/ansible/hosts/{{ item }}"
|
||||||
@ -107,6 +111,19 @@
|
|||||||
content: "{{ testinfra_extra_data | default('') | to_nice_yaml(indent=2) }}"
|
content: "{{ testinfra_extra_data | default('') | to_nice_yaml(indent=2) }}"
|
||||||
dest: '/home/zuul/testinfra_extra_data_fixture.yaml'
|
dest: '/home/zuul/testinfra_extra_data_fixture.yaml'
|
||||||
|
|
||||||
|
- name: Make screenshots directory
|
||||||
|
file:
|
||||||
|
path: '/var/log/screenshots'
|
||||||
|
state: directory
|
||||||
|
|
||||||
|
- name: Return screenshots artifact
|
||||||
|
zuul_return:
|
||||||
|
data:
|
||||||
|
zuul:
|
||||||
|
artifacts:
|
||||||
|
- name: Screenshots
|
||||||
|
url: "bridge.openstack.org/screenshots"
|
||||||
|
|
||||||
- name: Run and collect testinfra
|
- name: Run and collect testinfra
|
||||||
block:
|
block:
|
||||||
- name: Run testinfra to validate configuration
|
- name: Run testinfra to validate configuration
|
||||||
|
1
tox.ini
1
tox.ini
@ -41,6 +41,7 @@ deps =
|
|||||||
ansible-base # see install-ansible/tasks/main.yaml
|
ansible-base # see install-ansible/tasks/main.yaml
|
||||||
pytest-html # MPL-2.0
|
pytest-html # MPL-2.0
|
||||||
pytest-testinfra>=6.0.0
|
pytest-testinfra>=6.0.0
|
||||||
|
selenium
|
||||||
|
|
||||||
# This environment assumes a gate-hosts.yaml file has been written.
|
# This environment assumes a gate-hosts.yaml file has been written.
|
||||||
passenv =
|
passenv =
|
||||||
|
@ -25,6 +25,7 @@
|
|||||||
'{{ zuul.project.src_dir }}/junit.xml': logs
|
'{{ zuul.project.src_dir }}/junit.xml': logs
|
||||||
'{{ zuul.project.src_dir }}/test-results.html': logs
|
'{{ zuul.project.src_dir }}/test-results.html': logs
|
||||||
'{{ zuul.project.src_dir }}/inventory/base/gate-hosts.yaml': logs
|
'{{ zuul.project.src_dir }}/inventory/base/gate-hosts.yaml': logs
|
||||||
|
'/var/log/screenshots': logs
|
||||||
|
|
||||||
# Note: the following two jobs implement the variant-based multiple
|
# Note: the following two jobs implement the variant-based multiple
|
||||||
# inheritance trick. Both of these variants will always apply,
|
# inheritance trick. Both of these variants will always apply,
|
||||||
|
Loading…
Reference in New Issue
Block a user