diff --git a/.zuul.yaml b/.zuul.yaml index 930a1583aa96..6c9bb37a2441 100644 --- a/.zuul.yaml +++ b/.zuul.yaml @@ -86,11 +86,27 @@ run: playbooks/legacy/nova-multiattach/run.yaml post-run: playbooks/legacy/nova-multiattach/post.yaml +- job: + name: nova-next + parent: nova-dsvm-base + description: | + This job was added in Newton when placement and cellsv2 + were optional. Placement and cellsv2 are required starting in Ocata. In + Pike, the service user token functionality was added. This job is also + unique in that it runs the post_test_hook from the nova repo, which runs + post-test scripts to ensure those scripts are still working, + e.g. archive_deleted_rows. + # TODO(mriedem): Make this voting once bug 1747511 is fixed. + voting: false + run: playbooks/legacy/nova-next/run.yaml + post-run: playbooks/legacy/nova-next/post.yaml + - project: # Please try to keep the list of job names sorted alphabetically. check: jobs: - nova-multiattach + - nova-next - nova-tox-functional - nova-tox-functional-py35 gate: diff --git a/playbooks/legacy/nova-next/post.yaml b/playbooks/legacy/nova-next/post.yaml new file mode 100644 index 000000000000..e07f5510ae70 --- /dev/null +++ b/playbooks/legacy/nova-next/post.yaml @@ -0,0 +1,15 @@ +- hosts: primary + tasks: + + - 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 diff --git a/playbooks/legacy/nova-next/run.yaml b/playbooks/legacy/nova-next/run.yaml new file mode 100644 index 000000000000..de5f1d4c061d --- /dev/null +++ b/playbooks/legacy/nova-next/run.yaml @@ -0,0 +1,63 @@ +- hosts: all + name: nova-next + tasks: + + - name: Ensure workspace directory + file: + path: '{{ ansible_user_dir }}/workspace' + state: directory + + - shell: + cmd: | + set -e + set -x + cat > clonemap.yaml << EOF + clonemap: + - name: openstack-infra/devstack-gate + dest: devstack-gate + EOF + /usr/zuul-env/bin/zuul-cloner -m clonemap.yaml --cache-dir /opt/git \ + git://git.openstack.org \ + openstack-infra/devstack-gate + executable: /bin/bash + chdir: '{{ ansible_user_dir }}/workspace' + environment: '{{ zuul | zuul_legacy_vars }}' + + - shell: + # TODO(mriedem): Consider setting USE_PYTHON3=True here to make this + # job run under python 3.5 which is a "next" type thing. + cmd: | + set -e + set -x + cat << 'EOF' >>"/tmp/dg-local.conf" + [[local|localrc]] + NOVA_USE_SERVICE_TOKEN=True + + EOF + executable: /bin/bash + chdir: '{{ ansible_user_dir }}/workspace' + environment: '{{ zuul | zuul_legacy_vars }}' + + - shell: + cmd: | + set -e + set -x + export PYTHONUNBUFFERED=true + # Yes we want to run Tempest. + export DEVSTACK_GATE_TEMPEST=1 + # Run non-slow tempest API tests (concurrently) and scenario + # tests (serially). + export DEVSTACK_GATE_TEMPEST_FULL=1 + # The post_test_hook runs some post-test CLIs for things that + # Tempest does not test, like archiving deleted records. + function post_test_hook { + if [ -f $BASE/new/nova/gate/post_test_hook.sh ]; then + $BASE/new/nova/gate/post_test_hook.sh + fi + } + export -f post_test_hook + cp devstack-gate/devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh + ./safe-devstack-vm-gate-wrap.sh + executable: /bin/bash + chdir: '{{ ansible_user_dir }}/workspace' + environment: '{{ zuul | zuul_legacy_vars }}'