1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73
|
- name: Install dib extra dependencies
command: ./install_test_deps.sh
args:
chdir: "{{ zuul.project.src_dir }}/tests"
become: yes
- name: Setup mounted space
file:
path: '/opt/dib_cache'
state: directory
mode: ugo+rw
become: yes
- name: Define upper_constraints
set_fact:
upper_constraints: "{{ ansible_user_dir }}/{{ zuul.projects['opendev.org/openstack/requirements'].src_dir }}/upper-constraints.txt"
- name: Take ourselves out of uppper constraints
lineinfile:
path: "{{ upper_constraints }}"
state: absent
regexp: '^diskimage-builder'
- name: Install diskimage-builder
pip:
name: "file://{{ ansible_user_dir }}/{{ zuul.project.src_dir }}"
virtualenv: "{{ dib_virtualenv }}"
virtualenv_command: "{{ ensure_pip_virtualenv_command }}"
extra_args: "-c {{ upper_constraints }}"
- name: Setup log output
file:
path: "{{ ansible_user_dir }}/logs"
state: directory
mode: ugo+rw
# There is a Debian package for dnf-plugins-core but it breaks and replaces
# zypper which we also want to install. Prior to dnf-plugins-core existing
# in Debian we fetched the content we needed from github. Continue doing
# that but pin the version for compatibility with Debian's dnf.
# Until Debian fixes its dnf-plugins-core package in bookworm; manually
# install "dnf download" for the yum-minimal element. Note version 4.4.4
# is the last version compatible with bookworm's dnf package.
- name: Install dnf download
shell: |
set -x
git clone --depth 1 --branch 4.4.4 https://github.com/rpm-software-management/dnf-plugins-core
mkdir /usr/lib/python3/dist-packages/dnf-plugins
cp -r dnf-plugins-core/plugins/dnfpluginscore /usr/lib/python3/dist-packages
cp dnf-plugins-core/plugins/download.py /usr/lib/python3/dist-packages/dnf-plugins
rm -rf dnf-plugins-core
echo 'pluginpath=/usr/lib/python3/dist-packages/dnf-plugins' >> /etc/dnf/dnf.conf
args:
executable: /bin/bash
become: yes
when: ansible_os_family == 'Debian'
- name: Run dib functional tests
shell:
cmd: |
source {{ dib_virtualenv }}/bin/activate
{{ zuul.project.src_dir }}/tests/run_functests.sh \
-L {{ ansible_user_dir }}/logs {{ dib_functests | join(' ') }} \
{{ dib_functests_extra | join(' ') }}
args:
executable: /bin/bash
environment:
DIB_NO_TMPFS: 1
TMPDIR: /opt/dib_cache
DIB_OS_CI_YUM_REPOS: "{{ dib_gate_mirror_repos|default(omit) }}"
# NOTE(ianw) 2021-10-15 : this might be our bullseye images
# having issues with non-root podman. This works for now.
DIB_CONTAINERFILE_RUNTIME_ROOT: 1
|