--- # Copyright (c) Ansible Project # GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt) # SPDX-License-Identifier: GPL-3.0-or-later - when: # Fedora or RHEL >= 8 # This module requires the dnf module which is not available on RHEL 7. - > ansible_distribution == 'Fedora' or (ansible_os_family == 'RedHat' and ansible_distribution != 'Fedora' and ansible_distribution_major_version | int >= 8) # The copr module imports dnf which is only available for the system Python # interpreter. - > not (ansible_distribution == 'CentOS' and ansible_distribution_major_version | int == 8 and not ansible_python_version.startswith('3.6')) block: - debug: var=copr_chroot - name: enable copr project copr: host: copr.fedorainfracloud.org state: enabled name: '{{ copr_fullname }}' chroot: "{{ copr_chroot }}" register: result - name: assert that the copr project was enabled assert: that: - 'result is changed' - result.msg == 'enabled' - result.info == 'Please note that this repository is not part of the main distribution' - name: enable copr project check_mode: yes copr: state: enabled name: '{{ copr_fullname }}' chroot: '{{ copr_chroot }}' register: result - name: assert that the copr project was enabled assert: that: - result is not changed - result.msg == 'enabled' - name: Ensure the repo is installed and enabled | slurp register: result ansible.builtin.slurp: src: "{{ copr_repofile }}" - name: Ensure the repo is installed and enabled vars: content: "{{ result.content | b64decode }}" _baseurl: "{{ 'https://download.copr.fedorainfracloud.org/results/gotmax23/community.general.copr_integration_tests' | regex_escape }}" baseurl: "{{ content | regex_search('baseurl=' ~ _baseurl) }}" block: - ansible.builtin.debug: var: content - ansible.builtin.debug: var: baseurl - name: Ensure the repo is installed and enabled ansible.builtin.assert: that: - "'enabled=1' in content" - baseurl | length > 0 - name: Install test package from Copr when: # Copr does not build new packages for EOL Fedoras. - > not (ansible_distribution == 'Fedora' and ansible_distribution_major_version | int < 35) block: - name: install test package from the copr ansible.builtin.package: update_cache: true name: copr-module-integration-dummy-package - name: uninstall test package register: result ansible.builtin.package: name: copr-module-integration-dummy-package state: absent - name: check uninstall test package ansible.builtin.assert: that: result.changed | bool - name: remove copr project copr: state: absent name: '{{ copr_fullname }}' register: result - name: assert that the copr project was removed assert: that: - 'result is changed' - result.msg == 'absent' - name: Ensure the repo file was removed | stat register: result ansible.builtin.stat: dest: "{{ copr_repofile }}" - name: Ensure the repo file was removed ansible.builtin.assert: that: not result.stat.exists | bool - name: disable copr project copr: state: disabled name: '{{ copr_fullname }}' chroot: '{{ copr_chroot }}' register: result - name: assert that the copr project was disabled assert: that: - 'result is changed' - result.msg == 'disabled' - name: Ensure the repo is installed but disabled | slurp register: result ansible.builtin.slurp: src: "{{ copr_repofile }}" - name: Ensure the repo is installed but disabled vars: content: "{{ result.content | b64decode }}" _baseurl: "{{ 'https://download.copr.fedorainfracloud.org/results/gotmax23/community.general.copr_integration_tests' | regex_escape }}" baseurl: "{{ content | regex_search('baseurl=' ~ _baseurl) }}" block: - ansible.builtin.debug: var: content - ansible.builtin.debug: var: baseurl - name: Ensure the repo is installed but disabled ansible.builtin.assert: that: - "'enabled=0' in content" - baseurl | length > 0 always: - name: clean up ignore_errors: true copr: host: copr.fedorainfracloud.org state: absent name: '{{ copr_fullname }}' chroot: '{{ copr_chroot }}' - name: cleanup test package ansible.builtin.package: name: copr-module-integration-dummy-package state: absent