From 98098c5c2c194a46393ae1a3bbecff418c65cfb6 Mon Sep 17 00:00:00 2001 From: Andrey Kurilin Date: Wed, 8 Nov 2017 14:52:55 +0200 Subject: [PATCH] [ci] Start migrating to zuul v3 This patch migrates 2 jobs install-ubuntu and install-centos. Both these jobs have an equal playbook, so they are merged now and only job definitions set the proper node type. Also, the post playbook for most of rally jobs are added. It is generic and can remove a bunch of code duplication. Change-Id: Ifb7c11539fc505a85c6aa7f7e367b4f60d5797dd --- tests/ci/playbooks/base/post.yaml | 41 +++++++++++++ tests/ci/playbooks/rally-install/run.yaml | 74 +++++++++++++++++++++++ tests/ci/test_install.sh | 2 - 3 files changed, 115 insertions(+), 2 deletions(-) create mode 100644 tests/ci/playbooks/base/post.yaml create mode 100644 tests/ci/playbooks/rally-install/run.yaml diff --git a/tests/ci/playbooks/base/post.yaml b/tests/ci/playbooks/base/post.yaml new file mode 100644 index 00000000..4c699fc1 --- /dev/null +++ b/tests/ci/playbooks/base/post.yaml @@ -0,0 +1,41 @@ +- 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 + + - 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=/rally-plot/** + - --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=/rally-plot/extra/index.html + - --include=*/ + - --exclude=* + - --prune-empty-dirs diff --git a/tests/ci/playbooks/rally-install/run.yaml b/tests/ci/playbooks/rally-install/run.yaml new file mode 100644 index 00000000..a1d361b9 --- /dev/null +++ b/tests/ci/playbooks/rally-install/run.yaml @@ -0,0 +1,74 @@ +- hosts: all + name: a run script for rally-install-ubuntu-xenial and rally-install-centos-7 jobs + tasks: + + - name: Ensure legacy workspace directory + file: + path: '{{ ansible_user_dir }}/workspace' + state: directory + + - shell: + cmd: | + set -e + set -x + CLONEMAP=`mktemp` + function cleanup { + # In cases where zuul-cloner is aborted during a git + # clone operation, git will remove the git work tree in + # its cleanup. The work tree in these jobs is the + # workspace directory, which means that subsequent + # jenkins post-build actions can not run because the + # workspace has been removed. + # To reduce the likelihood of this having an impact, + # recreate the workspace directory if needed + mkdir -p $WORKSPACE + rm -f $CLONEMAP + } + trap cleanup EXIT + cat > $CLONEMAP << EOF + clonemap: + - name: $ZUUL_PROJECT + dest: . + EOF + /usr/zuul-env/bin/zuul-cloner -m $CLONEMAP --cache-dir /opt/git \ + git://git.openstack.org $ZUUL_PROJECT + executable: /bin/bash + chdir: '{{ ansible_user_dir }}/workspace' + environment: '{{ zuul | zuul_legacy_vars }}' + + - shell: + cmd: /usr/local/jenkins/slave_scripts/install-distro-packages.sh + chdir: '{{ ansible_user_dir }}/workspace' + environment: '{{ zuul | zuul_legacy_vars }}' + + - shell: + cmd: | + sudo yum remove -y python-crypto || true + + # NOTE(pabelanger): We run apt-get update to ensure we dont have a stale + # package cache in the gate. + sudo apt-get update || true + + sudo ./install_rally.sh --system --yes + + rally deployment list + [ -d /etc/bash_completion.d ] && cat /etc/bash_completion.d/rally.bash_completion || true + + sudo ./install_rally.sh --system --yes + rally deployment list + + sudo ./install_rally.sh --yes -d /tmp/rallytest_root/ + /tmp/rallytest_root/bin/rally deployment list + cat /tmp/rallytest_root/etc/bash_completion.d/rally.bash_completion + + sudo rm -fr ~/.rally + + ./install_rally.sh --yes -d /tmp/rallytest_user + /tmp/rallytest_user/bin/rally deployment list + + ./install_rally.sh --overwrite --dbtype sqlite + + + executable: /bin/sh + chdir: '{{ ansible_user_dir }}/workspace' + environment: '{{ zuul | zuul_legacy_vars }}' diff --git a/tests/ci/test_install.sh b/tests/ci/test_install.sh index ea889734..b85c2ab6 100755 --- a/tests/ci/test_install.sh +++ b/tests/ci/test_install.sh @@ -15,8 +15,6 @@ # License for the specific language governing permissions and limitations # under the License. -env - sudo yum remove -y python-crypto || true # NOTE(pabelanger): We run apt-get update to ensure we don't have a stale