Merge "Change zuul config for functional CI execution"
This commit is contained in:
commit
47db76f3f3
|
@ -0,0 +1,27 @@
|
|||
- job:
|
||||
name: validations-dsvm-functional
|
||||
parent: legacy-dsvm-base
|
||||
run: playbooks/legacy/validations-dsvm-functional/run.yaml
|
||||
post-run: playbooks/legacy/validations-dsvm-functional/post.yaml
|
||||
timeout: 7200
|
||||
required-projects:
|
||||
- openstack/devstack-gate
|
||||
- openstack/validations-libs
|
||||
- openstack/validations-common
|
||||
irrelevant-files:
|
||||
- ^.*\.rst$
|
||||
- ^doc/.*$
|
||||
- ^releasenotes/.*$
|
||||
|
||||
- project:
|
||||
templates:
|
||||
- check-requirements
|
||||
- openstack-lower-constraints-jobs
|
||||
- openstack-python3-victoria-jobs
|
||||
check:
|
||||
jobs:
|
||||
- validations-dsvm-functional
|
||||
gate:
|
||||
jobs:
|
||||
- openstack-tox-linters
|
||||
- validations-dsvm-functional
|
|
@ -0,0 +1,96 @@
|
|||
- hosts: primary
|
||||
tasks:
|
||||
- name: Set fact for validation src directory
|
||||
set_fact:
|
||||
src_dir: '/home/zuul/src/opendev.org/openstack'
|
||||
|
||||
- name: Copy files from {{ ansible_user_dir }}/workspace/ on node
|
||||
synchronize:
|
||||
src: '{{ ansible_user_dir }}/workspace/'
|
||||
dest: '{{ zuul.executor.log_root }}'
|
||||
mode: pull
|
||||
copy_links: true
|
||||
verify_host: true
|
||||
rsync_opts:
|
||||
- --include=**/*nose_results.html
|
||||
- --include=*/
|
||||
- --exclude=*
|
||||
- --prune-empty-dirs
|
||||
|
||||
- name: Copy files from {{ ansible_user_dir }}/workspace/ on node
|
||||
synchronize:
|
||||
src: '{{ ansible_user_dir }}/workspace/'
|
||||
dest: '{{ zuul.executor.log_root }}'
|
||||
mode: pull
|
||||
copy_links: true
|
||||
verify_host: true
|
||||
rsync_opts:
|
||||
- --include=**/*testr_results.html.gz
|
||||
- --include=*/
|
||||
- --exclude=*
|
||||
- --prune-empty-dirs
|
||||
|
||||
- name: Copy files from {{ ansible_user_dir }}/workspace/ on node
|
||||
synchronize:
|
||||
src: '{{ ansible_user_dir }}/workspace/'
|
||||
dest: '{{ zuul.executor.log_root }}'
|
||||
mode: pull
|
||||
copy_links: true
|
||||
verify_host: true
|
||||
rsync_opts:
|
||||
- --include=/.testrepository/tmp*
|
||||
- --include=*/
|
||||
- --exclude=*
|
||||
- --prune-empty-dirs
|
||||
|
||||
- name: Copy files from {{ ansible_user_dir }}/workspace/ on node
|
||||
synchronize:
|
||||
src: '{{ ansible_user_dir }}/workspace/'
|
||||
dest: '{{ zuul.executor.log_root }}'
|
||||
mode: pull
|
||||
copy_links: true
|
||||
verify_host: true
|
||||
rsync_opts:
|
||||
- --include=**/*testrepository.subunit.gz
|
||||
- --include=*/
|
||||
- --exclude=*
|
||||
- --prune-empty-dirs
|
||||
|
||||
- name: Copy files from {{ ansible_user_dir }}/workspace/ on node
|
||||
synchronize:
|
||||
src: '{{ ansible_user_dir }}/workspace/'
|
||||
dest: '{{ zuul.executor.log_root }}/tox'
|
||||
mode: pull
|
||||
copy_links: true
|
||||
verify_host: true
|
||||
rsync_opts:
|
||||
- --include=/.tox/*/log/*
|
||||
- --include=*/
|
||||
- --exclude=*
|
||||
- --prune-empty-dirs
|
||||
|
||||
- name: Copy files from {{ ansible_user_dir }}/workspace/ on node
|
||||
synchronize:
|
||||
src: '{{ ansible_user_dir }}/workspace/'
|
||||
dest: '{{ zuul.executor.log_root }}'
|
||||
mode: pull
|
||||
copy_links: true
|
||||
verify_host: true
|
||||
rsync_opts:
|
||||
- --include=/logs/**
|
||||
- --include=*/
|
||||
- --exclude=*
|
||||
- --prune-empty-dirs
|
||||
|
||||
- name: Copy files from {{ src_dir }} on node
|
||||
synchronize:
|
||||
src: '{{ src_dir }}'
|
||||
dest: '{{ zuul.executor.log_root }}'
|
||||
mode: pull
|
||||
copy_links: true
|
||||
verify_host: true
|
||||
rsync_opts:
|
||||
- --include=**/*.log
|
||||
- --include=*/
|
||||
- --exclude=*
|
||||
- --prune-empty-dirs
|
|
@ -0,0 +1,37 @@
|
|||
---
|
||||
- hosts: primary
|
||||
name: validations-dsvm-functional
|
||||
tasks:
|
||||
- name: Ensure legacy workspace directory
|
||||
file:
|
||||
path: '{{ ansible_user_dir }}/workspace'
|
||||
state: directory
|
||||
|
||||
- name: Set fact for validation src directory
|
||||
set_fact:
|
||||
src_dir: '/home/zuul/src/opendev.org/openstack'
|
||||
|
||||
- name: Set fact for validation executable
|
||||
set_fact:
|
||||
val_exec: "python {{ src_dir }}/validations-common/validations_common/validation.py"
|
||||
|
||||
- include: setup.yaml src_dir="{{ src_dir }}" log_dir="/var/log/validations"
|
||||
|
||||
- include: validations.yaml validation_command="{{ item.command }}" val_output="{{ item.output }}" src_dir="{{ src_dir }}"
|
||||
with_items:
|
||||
- { output: "{{ src_dir }}/run.log", command: "{{ val_exec }} run --validation check-ftype,512e \
|
||||
--validation-dir {{ src_dir }}/validations-common/validations_common/playbooks \
|
||||
--ansible-base-dir {{ src_dir }}/validations-common/validations_common \
|
||||
--output-log {{ src_dir }}/run.log" }
|
||||
- { output: "{{ src_dir }}/run-group.log", command: "{{ val_exec }} run --group prep \
|
||||
--validation-dir {{ src_dir }}/validations-common/validations_common/playbooks \
|
||||
--ansible-base-dir {{ src_dir }}/validations-common/validations_common \
|
||||
--output-log {{ src_dir }}/run-group.log" }
|
||||
- { output: "{{ src_dir }}/list.log", command: "{{ val_exec }} list \
|
||||
--validation-dir {{ src_dir }}/validations-common/validations_common/playbooks \
|
||||
--ansible-base-dir {{ src_dir }}/validations-common/validations_common \
|
||||
--output-log {{ src_dir }}/list.log" }
|
||||
- { output: "{{ src_dir }}/show.log", command: "{{ val_exec }} show \
|
||||
--validation-dir {{ src_dir }}/validations-common/validations_common/playbooks \
|
||||
--ansible-base-dir {{ src_dir }}/validations-common/validations_common \
|
||||
--output-log {{ src_dir }}/show.log" }
|
|
@ -0,0 +1,60 @@
|
|||
- name: Instal python pip
|
||||
ignore_errors: yes
|
||||
become: yes
|
||||
package:
|
||||
name:
|
||||
- python3-pip
|
||||
- python-pip
|
||||
state: present
|
||||
|
||||
- name: Install validations deps
|
||||
ignore_errors: yes
|
||||
shell:
|
||||
cmd: |
|
||||
sudo pip3 install prettytable
|
||||
sudo pip3 install setuptools
|
||||
sudo pip3 install ansible
|
||||
|
||||
- name: Install validations deps
|
||||
shell:
|
||||
cmd: |
|
||||
sudo pip install prettytable
|
||||
sudo pip install setuptools
|
||||
sudo pip3 install ansible
|
||||
|
||||
- name: Install validations-libs
|
||||
ignore_errors: yes
|
||||
shell:
|
||||
cmd: |
|
||||
sudo pip install -r requirements.txt
|
||||
sudo python setup.py install
|
||||
executable: /bin/bash
|
||||
chdir: '{{ src_dir }}/validations-libs'
|
||||
|
||||
- name: Install validations-common
|
||||
ignore_errors: yes
|
||||
shell:
|
||||
cmd: |
|
||||
sudo pip install -r requirements.txt
|
||||
sudo python setup.py install
|
||||
executable: /bin/bash
|
||||
chdir: '{{ src_dir }}/validations-common'
|
||||
|
||||
- name: Make sure Validations Log dir exists
|
||||
become: yes
|
||||
file:
|
||||
path: '{{ log_dir }}'
|
||||
state: directory
|
||||
mode: '0755'
|
||||
owner: '{{ ansible_user }}'
|
||||
group: '{{ ansible_user }}'
|
||||
recurse: yes
|
||||
|
||||
- name: Make validation script executable
|
||||
register: output
|
||||
shell:
|
||||
cmd: |
|
||||
chmod +x validations_common/validation.py
|
||||
executable: /bin/bash
|
||||
chdir: '{{ src_dir }}/validations-common'
|
||||
environment: '{{ zuul | zuul_legacy_vars }}'
|
|
@ -0,0 +1,23 @@
|
|||
- name: Execute validation commands
|
||||
shell: "{{ validation_command }}"
|
||||
|
||||
- name: Get run results
|
||||
register: result
|
||||
shell:
|
||||
cmd: "cat {{val_output}}"
|
||||
executable: /bin/bash
|
||||
|
||||
- name: Get json data
|
||||
set_fact:
|
||||
jsondata: "{{ result.stdout | from_json }}"
|
||||
|
||||
- name: Get Validations Status
|
||||
set_fact:
|
||||
status: "{{ jsondata | json_query(jsonres) }}"
|
||||
vars:
|
||||
jsonres: 'results[*].Status'
|
||||
|
||||
- fail:
|
||||
msg: "Validation failed: some of the validations has failed."
|
||||
when: item != "PASSED"
|
||||
loop: "{{ status }}"
|
|
@ -1,37 +0,0 @@
|
|||
- project:
|
||||
templates:
|
||||
- openstack-python3-victoria-jobs
|
||||
- check-requirements
|
||||
- openstack-lower-constraints-jobs
|
||||
check:
|
||||
jobs:
|
||||
- openstack-tox-linters: &tripleo-linters
|
||||
nodeset: centos-8
|
||||
- openstack-tox-docs: &tripleo-docs
|
||||
files:
|
||||
- ^doc/.*
|
||||
- ^README.rst
|
||||
- tripleo-ci-centos-8-containers-multinode: &containers_multinode
|
||||
dependencies: &deps
|
||||
- openstack-tox-linters
|
||||
files: &containers_files
|
||||
- ^validations_libs/.*
|
||||
irrelevant-files: &irrelevant_scenario_files
|
||||
- .*.md$
|
||||
- .*.rst$
|
||||
- .*.txt$
|
||||
- .*.ini$
|
||||
- ^validations_libs/tests/.*
|
||||
- tripleo-ci-centos-8-standalone: &basic_standalone
|
||||
dependencies: *deps
|
||||
files: *containers_files
|
||||
irrelevant-files: *irrelevant_scenario_files
|
||||
gate:
|
||||
jobs:
|
||||
- openstack-tox-linters: *tripleo-linters
|
||||
- openstack-tox-docs: *tripleo-docs
|
||||
- tripleo-ci-centos-8-containers-multinode: *containers_multinode
|
||||
- tripleo-ci-centos-8-standalone: *basic_standalone
|
||||
promote:
|
||||
jobs:
|
||||
- promote-openstack-tox-docs: *tripleo-docs
|
Loading…
Reference in New Issue