From bc9b1d926781a56a3fe94beb73f8a4210c3a1746 Mon Sep 17 00:00:00 2001 From: ricolin Date: Thu, 19 Oct 2017 23:27:41 +0800 Subject: [PATCH] Migrate functional job to Zuul v3 Migrate functional job to zuul v3. Migrating guideline: https://docs.openstack.org/infra/manual/zuulv3.html Needed-By: I611d21791d3dfd877e37fa02b5893e18b1becd76 Change-Id: If8c88568dbc6be1bb04e75a6b8b63e44f4cf7d40 --- .zuul.yaml | 21 +++++++ playbooks/devstack/functional-post.yaml | 80 +++++++++++++++++++++++++ playbooks/devstack/functional-run.yaml | 56 +++++++++++++++++ 3 files changed, 157 insertions(+) create mode 100644 .zuul.yaml create mode 100644 playbooks/devstack/functional-post.yaml create mode 100644 playbooks/devstack/functional-run.yaml diff --git a/.zuul.yaml b/.zuul.yaml new file mode 100644 index 00000000..5a6b6a7e --- /dev/null +++ b/.zuul.yaml @@ -0,0 +1,21 @@ +- job: + name: heatclient-functional + parent: legacy-dsvm-base + run: playbooks/devstack/functional-run.yaml + post-run: playbooks/devstack/functional-post.yaml + timeout: 4200 + required-projects: + - openstack-infra/devstack-gate + - openstack/heat + - openstack/python-heatclient + vars: + branch_override: "default" + +- project: + name: openstack/python-heatclient + check: + jobs: + - heatclient-functional + gate: + jobs: + - heatclient-functional diff --git a/playbooks/devstack/functional-post.yaml b/playbooks/devstack/functional-post.yaml new file mode 100644 index 00000000..dac87534 --- /dev/null +++ b/playbooks/devstack/functional-post.yaml @@ -0,0 +1,80 @@ +- 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=**/*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 diff --git a/playbooks/devstack/functional-run.yaml b/playbooks/devstack/functional-run.yaml new file mode 100644 index 00000000..477d2178 --- /dev/null +++ b/playbooks/devstack/functional-run.yaml @@ -0,0 +1,56 @@ +- hosts: all + name: Job for heatclient-functional + tasks: + + - name: Ensure legacy 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: + cmd: | + set -e + set -x + cat << 'EOF' >>"/tmp/dg-local.conf" + [[local|localrc]] + enable_plugin heat git://git.openstack.org/openstack/heat + EOF + executable: /bin/bash + chdir: '{{ ansible_user_dir }}/workspace' + environment: '{{ zuul | zuul_legacy_vars }}' + + - shell: + cmd: | + set -e + set -x + export PYTHONUNBUFFERED=true + export DEVSTACK_PROJECT_FROM_GIT=python-heatclient + if [ "{{ branch_override }}" != "default" ] ; then + export OVERRIDE_ZUUL_BRANCH=$BRANCH_OVERRIDE + fi + function post_test_hook { + # Configure and run functional tests + $BASE/new/python-heatclient/heatclient/tests/functional/hooks/post_test_hook.sh + } + 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 }}'