WIP: Import playbooks from feature/zuulv3 development

Note, move roles into openstack-zuul-roles.

Change-Id: Ib776cdce10b1f05501c46f6cf359723960f1bc71
Depends-On: I11da723df8823091f25e2a630e80ee4270d99a9b
Signed-off-by: Paul Belanger <pabelanger@redhat.com>
This commit is contained in:
Paul Belanger 2017-05-03 12:05:14 -04:00
parent f72dc58cc2
commit cc1e66fd42
No known key found for this signature in database
GPG Key ID: 611A80832067AF38
27 changed files with 200 additions and 1 deletions

View File

@ -1,5 +1,51 @@
- job:
name: base
pre-run: base/pre
post-run: base/post
success-url: http://zuulv3-dev.openstack.org/logs/{build.uuid}/
failure-url: http://zuulv3-dev.openstack.org/logs/{build.uuid}/
timeout: 1800
vars:
zuul_workspace_root: /home/zuul
nodes:
- name: ubuntu-xenial
image: ubuntu-xenial
- job:
name: tox
parent: base
pre-run: tox/pre
post-run: tox/post
- job:
name: tox-cover
parent: tox
run: tox/cover
voting: false
- job:
name: tox-docs
parent: tox
run: tox/docs
- job:
name: tox-linters
parent: tox
run: tox/linters
- job:
name: tox-py27
parent: tox
run: tox/py27
- job:
name: tox-tarball
parent: tox
run: tox/tarball
post-run: tox/tarball-post
- project:
name: openstack-infra/openstack-zuul-jobs
check:
jobs:
- noop
- tox-linters

13
playbooks/base/post.yaml Normal file
View File

@ -0,0 +1,13 @@
- hosts: all
tasks:
- name: Collect console log.
synchronize:
dest: "{{ zuul.executor.log_root }}"
mode: pull
src: "/tmp/console.log"
- name: Publish logs.
copy:
dest: "/opt/zuul-logs/{{ zuul.uuid}}"
src: "{{ zuul.executor.log_root }}/"
delegate_to: 127.0.0.1

3
playbooks/base/pre.yaml Normal file
View File

@ -0,0 +1,3 @@
- hosts: all
roles:
- prepare-workspace

1
playbooks/base/roles Symbolic link
View File

@ -0,0 +1 @@
../roles/

View File

@ -0,0 +1,13 @@
---
- name: Check if projects tools/test-setup.sh exists.
stat:
path: "{{ zuul_workspace_root }}/src/{{ zuul.project }}/tools/test-setup.sh"
register: p
- name: Run tools/test-setup.sh.
shell: tools/test-setup.sh
args:
chdir: "{{ zuul_workspace_root }}/src/{{ zuul.project }}"
when:
- p.stat.exists
- p.stat.executable

View File

@ -0,0 +1,22 @@
- name: Ensure console.log does not exist.
file:
path: /tmp/console.log
state: absent
- name: Start zuul_console daemon.
zuul_console:
path: /tmp/console.log
port: 19885
- name: Create workspace directory.
file:
path: "{{ zuul_workspace_root }}"
owner: zuul
group: zuul
state: directory
- name: Synchronize src repos to workspace directory.
synchronize:
dest: "{{ zuul_workspace_root }}"
src: "{{ zuul.executor.src_root }}"
no_log: true

View File

@ -0,0 +1,8 @@
- name: Remove sudo access for zuul user.
become: yes
file:
path: /etc/sudoers.d/zuul-sudo
state: absent
- name: Prove that general sudo access is actually revoked.
shell: ! sudo -n true

View File

@ -0,0 +1,5 @@
---
- name: Run install-distro-packages.sh
shell: /usr/local/jenkins/slave_scripts/install-distro-packages.sh
args:
chdir: "{{ zuul_workspace_root }}/src/{{ zuul.project }}"

View File

@ -0,0 +1,2 @@
---
run_cover_envlist: cover

View File

@ -0,0 +1,4 @@
- name: Execute run-cover.sh.
shell: "/usr/local/jenkins/slave_scripts/run-cover.sh {{ run_cover_envlist }}"
args:
chdir: "{{ zuul_workspace_root }}/src/{{ zuul.project }}"

View File

@ -0,0 +1,2 @@
---
run_docs_envlist: venv

View File

@ -0,0 +1,4 @@
- name: Execute run-docs.sh.
shell: "/usr/local/jenkins/slave_scripts/run-docs.sh {{ run_docs_envlist }}"
args:
chdir: "{{ zuul_workspace_root }}/src/{{ zuul.project }}"

View File

@ -0,0 +1,2 @@
---
run_tarball_envlist: venv

View File

@ -0,0 +1,4 @@
- name: Execute run-tarball.sh.
shell: "/usr/local/jenkins/slave_scripts/run-tarball.sh {{ run_tarball_envlist }}"
args:
chdir: "{{ zuul_workspace_root }}/src/{{ zuul.project }}"

View File

@ -0,0 +1,2 @@
---
run_tox_envlist:

View File

@ -0,0 +1,4 @@
- name: Run tox
shell: "/usr/local/jenkins/slave_scripts/run-tox.sh {{ run_tox_envlist }}"
args:
chdir: "{{ zuul_workspace_root }}/src/{{ zuul.project }}"

View File

@ -0,0 +1,2 @@
---
run_wheel_envlist: venv

View File

@ -0,0 +1,4 @@
- name: Execute run-wheel.sh.
shell: "/usr/local/jenkins/slave_scripts/run-wheel.sh {{ run_wheel_envlist }}"
args:
chdir: "{{ zuul_workspace_root }}/src/{{ zuul.project }}"

5
playbooks/tox/cover.yaml Normal file
View File

@ -0,0 +1,5 @@
- hosts: all
roles:
- extra-test-setup
- revoke-sudo
- run-cover

4
playbooks/tox/docs.yaml Normal file
View File

@ -0,0 +1,4 @@
- hosts: all
roles:
- revoke-sudo
- run-docs

View File

@ -0,0 +1,6 @@
- hosts: all
vars:
run_tox_envlist: pep8
roles:
- revoke-sudo
- run-tox

17
playbooks/tox/post.yaml Normal file
View File

@ -0,0 +1,17 @@
- hosts: all
tasks:
- name: Find tox directories to synchrionize.
find:
file_type: directory
paths: "{{ zuul_workspace_root }}/src/{{ zuul.project }}/.tox"
# NOTE(pabelanger): The .tox/log folder is empty, ignore it.
patterns: ^(?!log).*$
use_regex: yes
register: result
- name: Collect tox logs.
synchronize:
dest: "{{ zuul.executor.log_root }}/tox"
mode: pull
src: "{{ item.path }}/log/"
with_items: "{{ result.files }}"

3
playbooks/tox/pre.yaml Normal file
View File

@ -0,0 +1,3 @@
- hosts: all
roles:
- run-bindep

7
playbooks/tox/py27.yaml Normal file
View File

@ -0,0 +1,7 @@
- hosts: all
vars:
run_tox_envlist: py27
roles:
- extra-test-setup
- revoke-sudo
- run-tox

1
playbooks/tox/roles Symbolic link
View File

@ -0,0 +1 @@
../roles/

View File

@ -0,0 +1,10 @@
- hosts: all
tasks:
- name: Collect tarball artifacts.
synchronize:
dest: "{{ zuul.executor.src_root }}/tarballs"
mode: pull
src: "{{ zuul_workspace_root }}/src/{{ zuul.project }}/dist/{{ item }}"
with_items:
- "*.tar.gz"
- "*.whl"

View File

@ -0,0 +1,5 @@
- hosts: all
roles:
- revoke-sudo
- run-tarball
- run-wheel