diff --git a/grafana/ovsdbapp.yaml b/grafana/ovsdbapp.yaml new file mode 100644 index 0000000000..87f78bfe45 --- /dev/null +++ b/grafana/ovsdbapp.yaml @@ -0,0 +1,33 @@ +dashboard: + title: ovsdbapp Failure Rates + rows: + - title: Description + height: 100px + panels: + - title: Description + content: | + **This dashboard is managed by [Grafyaml](http://docs.openstack.org/infra/system-config/grafyaml.html).** + + If you would like to make changes to this dashboard, please see the grafana directory in [project-config](https://git.openstack.org/cgit/openstack-infra/project-config/tree/grafana/ovsdbapp.yaml). + type: text + - title: Graphs + height: 320px + panels: + - title: Unit Test Failure Rates (Check queue) + span: 4 + targets: + - target: alias(movingAverage(asPercent(transformNull(stats_counts.zuul.pipeline.check.job.gate-ovsdbapp-python27-ubuntu-xenial.FAILURE),sum(stats_counts.zuul.pipeline.check.job.gate-ovsdbapp-python27-ubuntu-xenial.{SUCCESS,FAILURE})),'24hours'), 'gate-ovsdbapp-python27-ubuntu-xenial') + - target: alias(movingAverage(asPercent(transformNull(stats_counts.zuul.pipeline.check.job.gate-ovsdbapp-python35.FAILURE),sum(stats_counts.zuul.pipeline.check.job.gate-ovsdbapp-python35.{SUCCESS,FAILURE})),'24hours'), 'gate-ovsdbapp-python35') + type: graph + - title: Unit Test Failure Rates (Gate queue) + span: 4 + targets: + - target: alias(movingAverage(asPercent(transformNull(stats_counts.zuul.pipeline.gate.job.gate-ovsdbapp-python27-ubuntu-xenial.FAILURE),sum(stats_counts.zuul.pipeline.gate.job.gate-ovsdbapp-python27-ubuntu-xenial.{SUCCESS,FAILURE})),'24hours'), 'gate-ovsdbapp-python27-ubuntu-xenial') + - target: alias(movingAverage(asPercent(transformNull(stats_counts.zuul.pipeline.gate.job.gate-ovsdbapp-python35.FAILURE),sum(stats_counts.zuul.pipeline.gate.job.gate-ovsdbapp-python35.{SUCCESS,FAILURE})),'24hours'), 'gate-ovsdbapp-python35') + type: graph + - title: Periodic Job Failure Rates + span: 4 + targets: + - target: alias(movingAverage(asPercent(transformNull(stats_counts.zuul.pipeline.periodic.job.periodic-neutron-py35-with-ovsdbapp-master.FAILURE),sum(stats_counts.zuul.pipeline.periodic.job.periodic-neutron-py35-with-ovsdbapp-master.{SUCCESS,FAILURE})),'24hours'), 'periodic-neutron-py35-with-ovsdbapp-master') + - target: alias(movingAverage(asPercent(transformNull(stats_counts.zuul.pipeline.periodic.job.periodic-networking-ovn-py35-with-ovsdbapp-master.FAILURE),sum(stats_counts.zuul.pipeline.periodic.job.periodic-networking-ovn-py35-with-ovsdbapp-master.{SUCCESS,FAILURE})),'24hours'), 'periodic-networking-ovn-py35-with-ovsdbapp-master') + type: graph diff --git a/jenkins/jobs/ovsdbapp.yaml b/jenkins/jobs/ovsdbapp.yaml new file mode 100644 index 0000000000..6b9c1ece32 --- /dev/null +++ b/jenkins/jobs/ovsdbapp.yaml @@ -0,0 +1,22 @@ +- job-template: + name: 'periodic-{name}-{python}-with-ovsdbapp-master' + node: ubuntu-xenial + + wrappers: + - build-timeout: + timeout: 50 + - timestamps + + builders: + - print-template-name: + template-name: "{template-name}" + - zuul-git-branch-prep-upper-constraints: + branch: master + - install-distro-packages + - revoke-sudo + - shell: "/usr/local/jenkins/slave_scripts/run-tox-with-dependency-master.sh {name} {python}" + - assert-no-extra-files + + publishers: + - test-results + - console-log diff --git a/jenkins/jobs/projects.yaml b/jenkins/jobs/projects.yaml index 3a288625c1..dcc4f79d4b 100644 --- a/jenkins/jobs/projects.yaml +++ b/jenkins/jobs/projects.yaml @@ -8085,6 +8085,7 @@ suffix: '-nv' branch-override: default - periodic-python-jobs-with-neutron-lib-master + - periodic-python-jobs-with-ovsdbapp-master - project: name: networking-ovs-dpdk @@ -8365,6 +8366,7 @@ branch-override: master - periodic-python-jobs-with-oslo-master - periodic-python-jobs-with-neutron-lib-master + - periodic-python-jobs-with-ovsdbapp-master - project: name: neutron-classifier diff --git a/jenkins/jobs/python-jobs.yaml b/jenkins/jobs/python-jobs.yaml index 5ad5be4050..fdb7cba362 100644 --- a/jenkins/jobs/python-jobs.yaml +++ b/jenkins/jobs/python-jobs.yaml @@ -566,6 +566,13 @@ python: - py35 +- job-group: + name: periodic-python-jobs-with-ovsdbapp-master + jobs: + - 'periodic-{name}-{python}-with-ovsdbapp-master': + python: + - py35 + - job-group: name: python-jobs node: diff --git a/jenkins/scripts/run-tox-with-dependency-master.sh b/jenkins/scripts/run-tox-with-dependency-master.sh new file mode 100755 index 0000000000..94ec649395 --- /dev/null +++ b/jenkins/scripts/run-tox-with-dependency-master.sh @@ -0,0 +1,30 @@ +#!/bin/bash -xe + +# inspired from sister script run-tox-with-oslo-master.sh + +project=$1 +venv=$2 + +if [[ -z "$venv" || -z "$project" ]]; then + echo "Usage: $?" + echo + echo "PROJECT: The openstack project run as master (eg 'neutron-lib')" + echo "VENV: The tox environment to run (eg 'py35')" + exit 1 +fi + +script_path=/usr/local/jenkins/slave_scripts + +sed -i "s/${project}.*/-e git+https:\/\/git.openstack.org\/openstack\/${project}.git#egg=${project}/g" requirements.txt +sed -i "s/${project}.*/-e git+https:\/\/git.openstack.org\/openstack\/${project}.git#egg=${project}/g" upper-constraints.txt + +cat << EOF >> tox.ini + +[testenv:${venv}-${project}-master] +basepython={[${venv}]basepython} +setenv={[${venv}]setenv} +deps={[${venv}]deps} +commands={[${venv}]commands} +EOF + +$script_path/run-tox.sh $venv-$project-master diff --git a/zuul/layout.yaml b/zuul/layout.yaml index 29ea27f90c..1668856ce8 100755 --- a/zuul/layout.yaml +++ b/zuul/layout.yaml @@ -439,6 +439,10 @@ project-templates: periodic: - 'periodic-{name}-py35-with-neutron-lib-master' + - name: periodic-jobs-with-ovsdbapp-master + periodic: + - 'periodic-{name}-py35-with-ovsdbapp-master' + # This is the same template as python-jobs but uses the new # linters target instead of pep8. - name: python-jobs-linters @@ -12895,6 +12899,7 @@ projects: - name: check-requirements - name: python35-jobs - name: periodic-jobs-with-neutron-lib-master + - name: periodic-jobs-with-ovsdbapp-master check: - gate-tempest-dsvm-networking-ovn-ovs-master-nv - gate-tempest-dsvm-networking-ovn-ovs-release @@ -13006,6 +13011,7 @@ projects: - name: periodic-ocata - name: periodic-jobs-with-oslo-master - name: periodic-jobs-with-neutron-lib-master + - name: periodic-jobs-with-ovsdbapp-master - name: check-requirements - name: integrated-gate - name: integrated-gate-py35