d6ae964f47
Fstrings are not supported in python3.5 which is in use on Xenial. We don't claim to support Xenial, but this is an easy regression to avoid. Also, add test jobs for this role so that we get feedback before copying it to the prod roles. Also, add a xenial test job to exercise it since we still have Xenial nodes available. Change-Id: Ifc773aa688adb1a01cfe691b3bdca0b3086658cd
85 lines
2.5 KiB
YAML
85 lines
2.5 KiB
YAML
- name: Test the fetch-zuul-cloner role
|
|
hosts: all
|
|
vars:
|
|
destination: "/usr/zuul-env/bin/zuul-cloner"
|
|
repo_src_dir: "{{ ansible_user_dir }}/src/opendev.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:
|
|
- directory is not changed
|
|
- directory is 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: opendev/base-jobs
|
|
dest: {{ ansible_user_dir }}
|
|
EOF
|
|
/usr/zuul-env/bin/zuul-cloner -m $CLONEMAP \
|
|
--cache-dir /opt/git https://opendev.org \
|
|
opendev/base-jobs
|
|
register: clone_with_required
|
|
|
|
- name: Check if repository was cloned
|
|
stat:
|
|
path: "{{ ansible_user_dir }}/src/opendev.org/opendev/base-jobs"
|
|
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: jjb/jenkins-job-builder
|
|
dest: {{ ansible_user_dir }}
|
|
EOF
|
|
/usr/zuul-env/bin/zuul-cloner -m $CLONEMAP \
|
|
--cache-dir /opt/git https://git.openstack.org \
|
|
jjb/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/jjb/jenkins-job-builder"
|
|
register: without_required_stat
|
|
|
|
- name: Validate zuul-cloner shim results
|
|
assert:
|
|
that:
|
|
- clone_with_required is succeeded
|
|
- clone_with_required is changed
|
|
- with_required_stat.stat.exists
|
|
- clone_without_required is failed
|
|
- not without_required_stat.stat.exists
|