- name: Test the fetch-zuul-cloner role hosts: all vars: destination: "/usr/zuul-env/bin/zuul-cloner" repo_src_dir: "/home/zuul/src/git.openstack.org" roles: - role: fetch-zuul-cloner post_tasks: - name: Check that the directory exists file: path: "{{ destination | dirname }}" state: directory register: directory - name: Check that the zuul-cloner shim exists stat: path: "{{ destination }}" register: cloner - name: Validate that the shim was installed successfully assert: that: - not directory | changed - directory | succeeded - cloner.stat.exists - cloner.stat.mode == "0755" - name: Zuul clone something in required-projects shell: executable: /bin/bash cmd: | CLONEMAP=`mktemp` function cleanup { rm -f $CLONEMAP } trap cleanup EXIT cat > $CLONEMAP << EOF clonemap: - name: openstack-infra/project-config dest: {{ ansible_user_dir }} EOF /usr/zuul-env/bin/zuul-cloner -m $CLONEMAP \ --cache-dir /opt/git git://git.openstack.org \ openstack-infra/project-config register: clone_with_required - name: Check if repository was cloned stat: path: "{{ ansible_user_dir }}/src/git.openstack.org/openstack-infra/project-config" register: with_required_stat - name: Zuul clone something not in required-projects shell: executable: /bin/bash cmd: | CLONEMAP=`mktemp` function cleanup { rm -f $CLONEMAP } trap cleanup EXIT cat > $CLONEMAP << EOF clonemap: - name: openstack-infra/jenkins-job-builder dest: {{ ansible_user_dir }} EOF /usr/zuul-env/bin/zuul-cloner -m $CLONEMAP \ --cache-dir /opt/git git://git.openstack.org \ openstack-infra/jenkins-job-builder ignore_errors: yes register: clone_without_required - name: Check if repository was cloned stat: path: "{{ ansible_user_dir }}/src/git.openstack.org/opentack-infra/jenkins-job-builder" register: without_required_stat - name: Validate zuul-cloner shim results assert: that: - clone_with_required | succeeded - clone_with_required | changed - with_required_stat.stat.exists - clone_without_required | failed - not without_required_stat.stat.exists