diff --git a/.ansible-lint b/.ansible-lint index 67136a0371f56022170446945fb1ffc8b5854bfd..28fc3ac24fc2f4f95996e327b2547025425bcf35 100644 --- a/.ansible-lint +++ b/.ansible-lint @@ -7,7 +7,6 @@ exclude_paths: - .tox/ - .venv/ - .yamllint - - molecule/ - tests/azure/ - meta/runtime.yml - requirements-docker.yml diff --git a/tests/azure/azure-pipelines.yml b/infra/azure/azure-pipelines.yml similarity index 64% rename from tests/azure/azure-pipelines.yml rename to infra/azure/azure-pipelines.yml index ab28bb1108453eaa3ab0b193b24855b9ec36a8ab..7456b62eb4b8eb79da26553d08b6989cafdb9354 100644 --- a/tests/azure/azure-pipelines.yml +++ b/infra/azure/azure-pipelines.yml @@ -15,8 +15,9 @@ stages: - template: templates/group_tests.yml parameters: build_number: $(Build.BuildNumber) - scenario: fedora-latest + distro: fedora-latest ansible_version: "-core" + skip_git_test: true # Fedora @@ -26,8 +27,9 @@ stages: - template: templates/group_tests.yml parameters: build_number: $(Build.BuildNumber) - scenario: fedora-latest - ansible_version: "-core <2.14" + distro: fedora-latest + ansible_version: "-core <2.16" + skip_git_test: true # Fedora @@ -37,19 +39,22 @@ stages: - template: templates/group_tests.yml parameters: build_number: $(Build.BuildNumber) - scenario: fedora-latest - ansible_version: "-core >=2.14,<2.15" + distro: fedora-latest + skip_git_test: true + ansible_version: "-core >=2.16,<2.17" # Galaxy on Fedora - stage: Galaxy_Fedora_Latest dependsOn: [] jobs: - - template: templates/galaxy_tests.yml + - template: templates/group_tests.yml parameters: build_number: $(Build.BuildNumber) - scenario: fedora-latest - ansible_version: "-core >=2.14,<2.15" + distro: fedora-latest + ansible_version: "-core >=2.16,<2.17" + skip_git_test: true + test_galaxy: true # CentOS 9 Stream @@ -59,8 +64,9 @@ stages: - template: templates/group_tests.yml parameters: build_number: $(Build.BuildNumber) - scenario: c9s - ansible_version: "-core >=2.14,<2.15" + distro: c9s + ansible_version: "-core >=2.16,<2.17" + skip_git_test: true # CentOS 8 Stream @@ -70,16 +76,6 @@ stages: - template: templates/group_tests.yml parameters: build_number: $(Build.BuildNumber) - scenario: c8s - ansible_version: "-core >=2.14,<2.15" - -# CentOS 7 - -- stage: CentOS_7 - dependsOn: [] - jobs: - - template: templates/group_tests.yml - parameters: - build_number: $(Build.BuildNumber) - scenario: centos-7 - ansible_version: "-core >=2.14,<2.15" + distro: c8s + ansible_version: "-core <2.17" + skip_git_test: true diff --git a/tests/azure/build-containers.yml b/infra/azure/build-containers.yml similarity index 78% rename from tests/azure/build-containers.yml rename to infra/azure/build-containers.yml index 75c3853909d2fefd13cf40a15703d412d560b377..a98b2e1100580848f9172c211dd320df86f473ea 100644 --- a/tests/azure/build-containers.yml +++ b/infra/azure/build-containers.yml @@ -11,20 +11,10 @@ schedules: trigger: none pool: - vmImage: 'ubuntu-22.04' + vmImage: 'ubuntu-24.04' stages: -# Currently, it's not possible to use CentOS container -# -# - stage: CentOS_7 -# dependsOn: [] -# jobs: -# - template: templates/build_container.yml -# parameters: -# job_name_suffix: Centos7 -# distro: centos-7 - - stage: CentOS_8_Stream dependsOn: [] jobs: @@ -43,6 +33,14 @@ stages: job_name_suffix: C9S distro: c9s +- stage: CentOS_10_Stream + dependsOn: [] + jobs: + - template: templates/build_container.yml + parameters: + job_name_suffix: C10S + distro: c10s + - stage: Fedora_Latest dependsOn: [] jobs: diff --git a/infra/azure/nightly.yml b/infra/azure/nightly.yml new file mode 100644 index 0000000000000000000000000000000000000000..671571a04a14d41428cbe21d41047ae9568201f3 --- /dev/null +++ b/infra/azure/nightly.yml @@ -0,0 +1,126 @@ +--- +schedules: +- cron: "0 19 * * *" + displayName: Nightly Builds + branches: + include: + - master + always: true + +trigger: none + +pool: + vmImage: 'ubuntu-20.04' + +stages: + +# Fedora + +- stage: fedora_latest_Ansible_Core_2_15 + dependsOn: [] + jobs: + - template: templates/group_tests.yml + parameters: + build_number: $(Build.BuildNumber) + distro: fedora-latest + ansible_version: "-core >=2.15,<2.16" + skip_git_test: true + +- stage: fedora_latest_Ansible_Core_2_16 + dependsOn: [] + jobs: + - template: templates/group_tests.yml + parameters: + build_number: $(Build.BuildNumber) + distro: fedora-latest + ansible_version: "" + skip_git_test: true + +- stage: fedora_latest_Ansible_Core_2_17 + dependsOn: [] + jobs: + - template: templates/group_tests.yml + parameters: + build_number: $(Build.BuildNumber) + distro: fedora-latest + ansible_version: "-core >=2.17" + skip_git_test: true + +# Galaxy on Fedora + +- stage: Galaxy_fedora_latest_Ansible_Core_2_17 + dependsOn: [] + jobs: + - template: templates/group_tests.yml + parameters: + build_number: $(Build.BuildNumber) + distro: fedora-latest + ansible_version: "-core >=2.17,<2.18" + skip_git_test: true + test_galaxy: true + +# Fedora Rawhide + +- stage: fedora_rawhide_Ansible_Core_2_17 + dependsOn: [] + jobs: + - template: templates/group_tests.yml + parameters: + build_number: $(Build.BuildNumber) + distro: fedora-rawhide + ansible_version: "-core >=2.17,<2.18" + skip_git_test: true + +# CentoOS 9 Stream + +- stage: c9s_Ansible_Core_2_15 + dependsOn: [] + jobs: + - template: templates/group_tests.yml + parameters: + build_number: $(Build.BuildNumber) + distro: c9s + ansible_version: "-core >=2.15,<2.16" + skip_git_test: true + +- stage: c9s_Ansible_Core_2_16 + dependsOn: [] + jobs: + - template: templates/group_tests.yml + parameters: + build_number: $(Build.BuildNumber) + distro: c9s + ansible_version: "-core >=2.16,<2.17" + skip_git_test: true + +- stage: c9s_Ansible_Core_2_17 + dependsOn: [] + jobs: + - template: templates/group_tests.yml + parameters: + build_number: $(Build.BuildNumber) + distro: c9s + ansible_version: "-core >=2.17,<2.18" + skip_git_test: true + +# CentOS 8 Stream only works up to ansible-core 2.16.z + +- stage: c8s_Ansible_Core_2_15 + dependsOn: [] + jobs: + - template: templates/group_tests.yml + parameters: + build_number: $(Build.BuildNumber) + distro: c8s + ansible_version: "-core >=2.15,<2.16" + skip_git_test: true + +- stage: c8s_Ansible_Core_2_16 + dependsOn: [] + jobs: + - template: templates/group_tests.yml + parameters: + build_number: $(Build.BuildNumber) + distro: c8s + ansible_version: "-core >=2.16,<2.17" + skip_git_test: true diff --git a/tests/azure/pr-pipeline.yml b/infra/azure/pr-pipeline.yml similarity index 64% rename from tests/azure/pr-pipeline.yml rename to infra/azure/pr-pipeline.yml index 40d78a9b10429cf19d14d8d7c79a4bffa6cae15d..bc6e0830b8b678a421c9b3380ff073cdbb864580 100644 --- a/tests/azure/pr-pipeline.yml +++ b/infra/azure/pr-pipeline.yml @@ -12,67 +12,58 @@ stages: - stage: Fedora_Latest dependsOn: [] jobs: - - template: templates/fast_tests.yml + - template: templates/run_tests.yml parameters: build_number: $(Build.BuildNumber) distro: fedora-latest ansible_version: "-core >=2.15,<2.16" + skip_git_test: false # Galaxy on Fedora - stage: Galaxy_Fedora_Latest dependsOn: [] jobs: - - template: templates/fast_tests.yml + - template: templates/run_tests.yml parameters: build_number: $(Build.BuildNumber) distro: fedora-latest ansible_version: "-core >=2.15,<2.16" + skip_git_test: false + test_galaxy: true # CentOS 9 Stream - stage: CentOS_9_Stream dependsOn: [] jobs: - - template: templates/fast_tests.yml + - template: templates/run_tests.yml parameters: build_number: $(Build.BuildNumber) distro: c9s ansible_version: "-core >=2.15,<2.16" + skip_git_test: false # CentOS 8 Stream - stage: CentOS_8_Stream dependsOn: [] jobs: - - template: templates/fast_tests.yml + - template: templates/run_tests.yml parameters: build_number: $(Build.BuildNumber) distro: c8s ansible_version: "-core >=2.15,<2.16" - target_python: "/usr/libexec/platform-python" - -# CentOS 7 cannot be used with current systemd -# -# CentOS 7 -# -# - stage: CentOS_7 -# dependsOn: [] -# jobs: -# - template: templates/fast_tests.yml -# parameters: -# build_number: $(Build.BuildNumber) -# distro: centos-7 -# ansible_version: "-core >=2.15,<2.16" -# target_python: "/usr/bin/python2" + skip_git_test: false # Rawhide - stage: Fedora_Rawhide dependsOn: [] jobs: - - template: templates/fast_tests.yml + - template: templates/run_tests.yml parameters: build_number: $(Build.BuildNumber) distro: fedora-rawhide ansible_version: "-core >=2.15,<2.16" + skip_git_test: false diff --git a/tests/azure/templates/build_container.yml b/infra/azure/templates/build_container.yml similarity index 86% rename from tests/azure/templates/build_container.yml rename to infra/azure/templates/build_container.yml index f93881ce2f73d713df3b72f8fd12c8794c16368a..49d2f7310897dc8968fa400518bf49c8f30d41b8 100644 --- a/tests/azure/templates/build_container.yml +++ b/infra/azure/templates/build_container.yml @@ -22,18 +22,15 @@ jobs: retryCountOnTaskFailure: 5 displayName: Install tools - - script: | - rm -rf ~/.ansible - mkdir -p ~/.ansible - ln -snf $(readlink -f roles) ~/.ansible/roles - ln -snf $(readlink -f plugins) ~/.ansible/plugins - displayName: Setup ansible-freeipa using Git repository - - script: ansible-galaxy collection install containers.podman displayName: Install Ansible Galaxy collections - script: infra/image/build.sh -s ${{ parameters.distro }} displayName: Build ${{ parameters.distro }} base image + env: + ANSIBLE_ROLES_PATH: "${PWD}/roles" + ANSIBLE_LIBRARY: "${PWD}/plugins/modules" + ANSIBLE_MODULE_UTILS: "${PWD}/plugins/module_utils" - script: podman login -u="$QUAY_ROBOT_USERNAME" -p="$QUAY_ROBOT_TOKEN" quay.io displayName: Registry login diff --git a/infra/azure/templates/group_tests.yml b/infra/azure/templates/group_tests.yml new file mode 100644 index 0000000000000000000000000000000000000000..da18c2e3fbd4cdffb49faf1c91b9eeb3b157989e --- /dev/null +++ b/infra/azure/templates/group_tests.yml @@ -0,0 +1,30 @@ +--- +parameters: + - name: distro + type: string + default: fedora-latest + - name: build_number + type: string + - name: ansible_version + type: string + default: "" + - name: skip_git_test + type: boolean + default: false + - name: test_galaxy + type: boolean + default: false + +jobs: + +- ${{ each group in split('1,2,3', ',') }}: + - template: run_tests.yml + parameters: + group_number: ${{ group }} + number_of_groups: 3 + build_number: ${{ parameters.build_number }} + distro: ${{ parameters.distro }} + ansible_version: ${{ parameters.ansible_version }} + python_version: '< 3.12' + skip_git_test: ${{ parameters.skip_git_test }} + test_galaxy: ${{ parameters.test_galaxy }} diff --git a/infra/azure/templates/prepare_environment.yaml b/infra/azure/templates/prepare_environment.yaml new file mode 100644 index 0000000000000000000000000000000000000000..077d40528e13dd7659ea45fe92913ab6ff7870a6 --- /dev/null +++ b/infra/azure/templates/prepare_environment.yaml @@ -0,0 +1,30 @@ +--- +parameters: + - name: distro + type: string + default: fedora-latest + - name: ansible_version + type: string + default: "" + - name: python_version + type: string + default: 3.x + - name: build_number + type: string + +steps: + - task: UsePythonVersion@0 + inputs: + versionSpec: '${{ parameters.python_version }}' + + - script: | + pip install "ansible${{ parameters.ansible_version }}" -r requirements-tests.txt + retryCountOnTaskFailure: 5 + displayName: Install test dependencies + + - script: ansible-galaxy collection install -r requirements-podman.yml + retryCountOnTaskFailure: 5 + displayName: Install Ansible collections + + - script: infra/image/start.sh ${{ parameters.distro }}-server + displayName: Setup target container for ${{ parameters.distro }} diff --git a/infra/azure/templates/run_tests.yml b/infra/azure/templates/run_tests.yml new file mode 100644 index 0000000000000000000000000000000000000000..1cc00030bf597ebf39ee03b1916ce7ae99b656c2 --- /dev/null +++ b/infra/azure/templates/run_tests.yml @@ -0,0 +1,98 @@ +--- +parameters: + - name: group_number + type: number + default: 1 + - name: number_of_groups + type: number + default: 1 + - name: distro + type: string + default: fedora-latest + - name: ansible_version + type: string + default: "" + - name: python_version + type: string + default: 3.x + - name: build_number + type: string + - name: skip_git_test + type: boolean + default: true + - name: test_type + type: string + default: "playbook" + - name: test_galaxy + type: boolean + default: false + +jobs: +- job: Test_Group${{ parameters.group_number }} + displayName: Run playbook tests ${{ parameters.distro }} (${{ parameters.group_number }}/${{ parameters.number_of_groups }}) + timeoutInMinutes: 360 + variables: + - template: variables.yaml + - template: variables_${{ parameters.distro }}.yaml + steps: + - template: prepare_environment.yaml + parameters: + build_number: ${{ parameters.build_number }} + distro: ${{ parameters.distro }} + ansible_version: ${{ parameters.ansible_version }} + python_version: ${{ parameters.python_version }} + + - bash: echo "##vso[task.setvariable variable=TOPDIR]${PWD}" + displayName: Set repo rootdir + + - script: | + . "${TOPDIR}/utils/set_test_modules" + python3 utils/check_test_configuration.py ${{ parameters.distro }} + displayName: Check test configuration + env: + SKIP_GIT_TEST: ${{ parameters.skip_git_test }} + + - script: | + git fetch --unshallow + utils/build-galaxy-release.sh -i + retryCountOnTaskFailure: 5 + displayName: Build Galaxy release + condition: ${{ parameters.test_galaxy }} + + - script: | + echo "PWD: ${PWD}" + echo "TOPDIR: ${TOPDIR}" + echo "ROLES: ${ANSIBLE_ROLES_PATH}" + echo "LIBRARY: ${ANSIBLE_LIBRARY}" + echo "MODULE_UTILS: ${ANSIBLE_MODULE_UTILS}" + . "${TOPDIR}/utils/set_test_modules" + [ "${{ parameters.test_galaxy }}" == "True" ] && cd ~/.ansible/collections/ansible_collections/freeipa/ansible_freeipa + pytest \ + -m "${{ parameters.test_type }}" \ + --verbose \ + --color=yes \ + --splits=${{ parameters.number_of_groups }} \ + --group=${{ parameters.group_number }} \ + --randomly-seed=$(date "+%Y%m%d") \ + --suppress-no-test-exit-code \ + --junit-xml=TEST-results-pr-check.xml + displayName: Run playbook tests + env: + SKIP_GIT_TEST: ${{ parameters.skip_git_test }} + ${{ if not(parameters.test_galaxy) }}: + ANSIBLE_ROLES_PATH: "${PWD}/roles" + ANSIBLE_LIBRARY: "${PWD}/plugins" + ANSIBLE_MODULE_UTILS: "${PWD}/plugins/module_utils" + IPA_SERVER_HOST: ansible-freeipa-tests + RUN_TESTS_IN_DOCKER: podman + IPA_DISABLED_MODULES: ${{ variables.ipa_disabled_modules }} + IPA_DISABLED_TESTS: ${{ variables.ipa_disabled_tests }} + IPA_ENABLED_MODULES: ${{ variables.ipa_enabled_modules }} + IPA_ENABLED_TESTS: ${{ variables.ipa_enabled_tests }} + IPA_VERBOSITY: "-vvv" + + - task: PublishTestResults@2 + inputs: + mergeTestResults: true + testRunTitle: PlaybookTests-Build${{ parameters.build_number }} + condition: succeededOrFailed() diff --git a/tests/azure/templates/variables.yaml b/infra/azure/templates/variables.yaml similarity index 100% rename from tests/azure/templates/variables.yaml rename to infra/azure/templates/variables.yaml diff --git a/tests/azure/templates/variables_c8s.yaml b/infra/azure/templates/variables_c8s.yaml similarity index 100% rename from tests/azure/templates/variables_c8s.yaml rename to infra/azure/templates/variables_c8s.yaml diff --git a/tests/azure/templates/variables_c9s.yaml b/infra/azure/templates/variables_c9s.yaml similarity index 100% rename from tests/azure/templates/variables_c9s.yaml rename to infra/azure/templates/variables_c9s.yaml diff --git a/tests/azure/templates/variables_centos-7.yaml b/infra/azure/templates/variables_centos-7.yaml similarity index 100% rename from tests/azure/templates/variables_centos-7.yaml rename to infra/azure/templates/variables_centos-7.yaml diff --git a/tests/azure/templates/variables_fedora-latest.yaml b/infra/azure/templates/variables_fedora-latest.yaml similarity index 100% rename from tests/azure/templates/variables_fedora-latest.yaml rename to infra/azure/templates/variables_fedora-latest.yaml diff --git a/tests/azure/templates/variables_fedora-rawhide.yaml b/infra/azure/templates/variables_fedora-rawhide.yaml similarity index 100% rename from tests/azure/templates/variables_fedora-rawhide.yaml rename to infra/azure/templates/variables_fedora-rawhide.yaml diff --git a/infra/image/build.sh b/infra/image/build.sh index 6da8179191b519aad1bda828b347b428bdb3c6b1..8a2491c881a8afb6a8188d8a2b787459b604cb0f 100755 --- a/infra/image/build.sh +++ b/infra/image/build.sh @@ -15,7 +15,7 @@ valid_distro() { usage() { local prog="${0##*/}" cat << EOF -usage: ${prog} [-h] [-s] distro +usage: ${prog} [-h] [-p] [-c HOSTNAME] [-s] distro ${prog} build a container image to test ansible-freeipa. EOF } @@ -29,23 +29,26 @@ positional arguments: optional arguments: - -s Deploy IPA server - + -c HOSTNAME Container hostname + -p Give extended privileges to the container + -s Deploy IPA server EOF } name="ansible-freeipa-image-builder" hostname="ipaserver.test.local" -# Number of cpus is not available in usptream CI (Ubuntu 22.04). -# cpus="2" +cpus="2" memory="3g" quayname="quay.io/ansible-freeipa/upstream-tests" deploy_server="N" +privileged="" -while getopts ":hs" option +while getopts ":hc:ps" option do case "${option}" in h) help && exit 0 ;; + c) hostname="${OPTARG}" ;; + p) privileged="privileged" ;; s) deploy_server="Y" ;; *) die -u "Invalid option: ${option}" ;; esac @@ -82,13 +85,28 @@ container_remove_image_if_exists "${tag}" container_remove_image_if_exists "${server_tag}" container_build "${tag}" "${BASEDIR}/dockerfile/${distro}" "${BASEDIR}" -container_create "${name}" "${tag}" "${hostname}" "${memory}" +container_create "${name}" "${tag}" \ + "hostname=${hostname}" \ + "memory=${memory}" \ + "cpus=${cpus}" \ + "${privileged}" container_commit "${name}" "${quayname}:${tag}" if [ "${deploy_server}" == "Y" ] then deployed=false + # Set path to ansible-freeipa roles + [ -z "${ANSIBLE_ROLES_PATH:-""}" ] && export ANSIBLE_ROLES_PATH="${TOPDIR}/roles" + + # Install collection containers.podman if not available + if [ -z "$(ansible-galaxy collection list containers.podman)" ] + then + tmpdir="$(mktemp -d)" + export ANSIBLE_COLLECTIONS_PATH="${tmpdir}" + ansible-galaxy collection install -p "${tmpdir}" containers.podman + fi + [ "${container_state}" != "running" ] && container_start "${name}" container_wait_for_journald "${name}" diff --git a/infra/image/shcontainer b/infra/image/shcontainer index 6f4e8a85272b91c51394cc3f222c23c0e3ebdd59..0bc3326acc03ba6d246c4a9c77d5f10b1e8c7f36 100644 --- a/infra/image/shcontainer +++ b/infra/image/shcontainer @@ -9,24 +9,35 @@ TOPDIR="$(readlink -f "${SCRIPTDIR}/../..")" container_create() { local name=${1} local image=${2} - local hostname=${3} - local memory=${4:-"3g"} - local cpus=${5:-"2"} + shift 2 + declare -a extra_opts=() + for opt in "$@" + do + [ -z "${opt}" ] && continue + case "${opt}" in + hostname=*) extra_opts+=("--${opt}") ;; + cpus=*) extra_opts+=("--${opt}") ;; + memory=*) extra_opts+=("--${opt}") ;; + privileged) extra_opts+=("--${opt}") ;; + *) log error "container_create: Invalid option: ${opt}" ;; + esac + done - [ -n "${hostname}" ] || die "No hostname given" + # ensure default values are set + [[ " ${extra_opts[*]} " =~ " --cpus=" ]] || extra_opts+=("--cpus=2") + [[ " ${extra_opts[*]} " =~ " --hostname=" ]] \ + || extra_opts+=("--hostname=ipaserver.test.local") log info "= Creating ${name} =" podman create \ --security-opt label=disable \ - --name "${name}" \ - --hostname "${hostname}" \ --network bridge:interface_name=eth0 \ --systemd true \ - --cpus "${cpus}" \ - --memory "${memory}" \ + --name "${name}" \ --memory-swap -1 \ --no-hosts \ --replace \ + "${extra_opts[@]}" \ "${image}" echo } diff --git a/infra/image/start.sh b/infra/image/start.sh index c5a7a342863cd882f62d3b6dca313568b8ce7606..0f17189d363c3e46dcbc9d5882f6de8a689c49cf 100755 --- a/infra/image/start.sh +++ b/infra/image/start.sh @@ -11,7 +11,7 @@ TOPDIR="$(readlink -f "${BASEDIR}/../..")" usage() { local prog="${0##*/}" cat << EOF -usage: ${prog} [-h] [-l] image +usage: ${prog} [-h] [-l] [-n HOSTNAME ] image ${prog} start a prebuilt ansible-freeipa test container image. EOF } @@ -24,7 +24,14 @@ positional arguments: optional arguments: - -l Try to use local image first, if not found download. + -h Show this message + -l Try to use local image first, if not found download. + -n HOSTNAME Set container hostname + +NOTE: + - The hostname must be the same as the hostname of the container + when FreeIPA was deployed. Use only if you built the image and + defined its hostname. EOF } @@ -45,11 +52,12 @@ name="ansible-freeipa-tests" hostname="ipaserver.test.local" try_local_first="N" -while getopts ":hl" option +while getopts ":hln:" option do case "${option}" in h) help && exit 0 ;; l) try_local_first="Y" ;; + n) hostname="${OPTARG}" ;; *) die -u "Invalid option: ${option}" ;; esac done @@ -79,7 +87,7 @@ fi [ -z "${local_image}" ] && die "Image '${image}' is not valid" -container_create "${name}" "${local_image}" "${hostname}" +container_create "${name}" "${local_image}" "hostname=${hostname}" container_start "${name}" container_wait_for_journald "${name}" container_wait_up "${name}" diff --git a/molecule/c8s-build/Dockerfile b/molecule/c8s-build/Dockerfile deleted file mode 100644 index 7bdc1764715ddabb87fb0bdbb13204ad72144cdc..0000000000000000000000000000000000000000 --- a/molecule/c8s-build/Dockerfile +++ /dev/null @@ -1,30 +0,0 @@ -FROM quay.io/centos/centos:stream8 -ENV container=docker - -RUN rm -fv /var/cache/dnf/metadata_lock.pid; \ -dnf makecache; \ -dnf --assumeyes install \ - /usr/bin/python3 \ - /usr/bin/python3-config \ - /usr/bin/dnf-3 \ - sudo \ - bash \ - systemd \ - procps-ng \ - iproute && \ -dnf clean all; \ -(cd /lib/systemd/system/sysinit.target.wants/; for i in *; do [ $i == systemd-tmpfiles-setup.service ] || rm -f $i; done); \ -rm -f /lib/systemd/system/multi-user.target.wants/*;\ -rm -f /etc/systemd/system/*.wants/*;\ -rm -f /lib/systemd/system/local-fs.target.wants/*; \ -rm -f /lib/systemd/system/sockets.target.wants/*udev*; \ -rm -f /lib/systemd/system/sockets.target.wants/*initctl*; \ -rm -f /lib/systemd/system/basic.target.wants/*;\ -rm -f /lib/systemd/system/anaconda.target.wants/*; \ -rm -rf /var/cache/dnf/; - -STOPSIGNAL RTMIN+3 - -VOLUME ["/sys/fs/cgroup"] - -CMD ["/usr/sbin/init"] diff --git a/molecule/c8s-build/molecule.yml b/molecule/c8s-build/molecule.yml deleted file mode 100644 index 8855215190e13f2f6f7b535385cc07b4284d46e9..0000000000000000000000000000000000000000 --- a/molecule/c8s-build/molecule.yml +++ /dev/null @@ -1,19 +0,0 @@ ---- -driver: - name: docker -platforms: - - name: c8s-build - image: "quay.io/centos/centos:stream8" - dockerfile: Dockerfile - hostname: ipaserver.test.local - dns_servers: - - 8.8.8.8 - volumes: - - /sys/fs/cgroup:/sys/fs/cgroup:ro - command: /usr/sbin/init - privileged: true -provisioner: - name: ansible - playbooks: - prepare: ../resources/playbooks/prepare-build.yml -prerun: false diff --git a/molecule/c8s/molecule.yml b/molecule/c8s/molecule.yml deleted file mode 100644 index 79f35c547a21e4ff869e66f1c17d054b3b39d9d6..0000000000000000000000000000000000000000 --- a/molecule/c8s/molecule.yml +++ /dev/null @@ -1,19 +0,0 @@ ---- -driver: - name: docker -platforms: - - name: c8s - image: quay.io/ansible-freeipa/upstream-tests:c8s - pre_build_image: true - hostname: ipaserver.test.local - dns_servers: - - 127.0.0.1 - volumes: - - /sys/fs/cgroup:/sys/fs/cgroup:ro - command: /usr/sbin/init - privileged: true -provisioner: - name: ansible - playbooks: - prepare: ../resources/playbooks/prepare.yml -prerun: false diff --git a/molecule/c9s-build/Dockerfile b/molecule/c9s-build/Dockerfile deleted file mode 100644 index 2bb39a10f9ce1595b6fef9e3139ee4d5e4d2377f..0000000000000000000000000000000000000000 --- a/molecule/c9s-build/Dockerfile +++ /dev/null @@ -1,29 +0,0 @@ -FROM quay.io/centos/centos:stream9 -ENV container=docker - -RUN rm -fv /var/cache/dnf/metadata_lock.pid; \ -dnf makecache; \ -dnf --assumeyes install \ - /usr/bin/python3 \ - /usr/bin/dnf-3 \ - sudo \ - bash \ - systemd \ - procps-ng \ - iproute && \ -dnf clean all; \ -(cd /lib/systemd/system/sysinit.target.wants/; for i in *; do [ $i == systemd-tmpfiles-setup.service ] || rm -f $i; done); \ -rm -f /lib/systemd/system/multi-user.target.wants/*;\ -rm -f /etc/systemd/system/*.wants/*;\ -rm -f /lib/systemd/system/local-fs.target.wants/*; \ -rm -f /lib/systemd/system/sockets.target.wants/*udev*; \ -rm -f /lib/systemd/system/sockets.target.wants/*initctl*; \ -rm -f /lib/systemd/system/basic.target.wants/*;\ -rm -f /lib/systemd/system/anaconda.target.wants/*; \ -rm -rf /var/cache/dnf/; - -STOPSIGNAL RTMIN+3 - -VOLUME ["/sys/fs/cgroup"] - -CMD ["/usr/sbin/init"] diff --git a/molecule/c9s-build/molecule.yml b/molecule/c9s-build/molecule.yml deleted file mode 100644 index dfa654804578e69905903a8726141e4ac1b87c00..0000000000000000000000000000000000000000 --- a/molecule/c9s-build/molecule.yml +++ /dev/null @@ -1,19 +0,0 @@ ---- -driver: - name: docker -platforms: - - name: c9s-build - image: "quay.io/centos/centos:stream9" - dockerfile: Dockerfile - hostname: ipaserver.test.local - dns_servers: - - 8.8.8.8 - volumes: - - /sys/fs/cgroup:/sys/fs/cgroup:ro - command: /usr/sbin/init - privileged: true -provisioner: - name: ansible - playbooks: - prepare: ../resources/playbooks/prepare-build.yml -prerun: false diff --git a/molecule/c9s/molecule.yml b/molecule/c9s/molecule.yml deleted file mode 100644 index 7aba52252912d9709c9ce604911c6554ce406347..0000000000000000000000000000000000000000 --- a/molecule/c9s/molecule.yml +++ /dev/null @@ -1,19 +0,0 @@ ---- -driver: - name: docker -platforms: - - name: c9s - image: quay.io/ansible-freeipa/upstream-tests:c9s - pre_build_image: true - hostname: ipaserver.test.local - dns_servers: - - 127.0.0.1 - volumes: - - /sys/fs/cgroup:/sys/fs/cgroup:ro - command: /usr/sbin/init - privileged: true -provisioner: - name: ansible - playbooks: - prepare: ../resources/playbooks/prepare.yml -prerun: false diff --git a/molecule/centos-7-build/molecule.yml b/molecule/centos-7-build/molecule.yml deleted file mode 100644 index e88e1208ad5886e5b19faf177f722c83dde32f4d..0000000000000000000000000000000000000000 --- a/molecule/centos-7-build/molecule.yml +++ /dev/null @@ -1,19 +0,0 @@ ---- -driver: - name: docker -platforms: - - name: centos-7-build - image: centos/systemd - pre_build_image: true - hostname: ipaserver.test.local - dns_servers: - - 8.8.8.8 - volumes: - - /sys/fs/cgroup:/sys/fs/cgroup:ro - command: /usr/sbin/init - privileged: true -provisioner: - name: ansible - playbooks: - prepare: ../resources/playbooks/prepare-build.yml -prerun: false diff --git a/molecule/centos-7/molecule.yml b/molecule/centos-7/molecule.yml deleted file mode 100644 index 5cb077e233de02558c88012c75c25288366da761..0000000000000000000000000000000000000000 --- a/molecule/centos-7/molecule.yml +++ /dev/null @@ -1,19 +0,0 @@ ---- -driver: - name: docker -platforms: - - name: centos-7 - image: quay.io/ansible-freeipa/upstream-tests:centos-7 - pre_build_image: true - hostname: ipaserver.test.local - dns_servers: - - 127.0.0.1 - volumes: - - /sys/fs/cgroup:/sys/fs/cgroup:ro - command: /usr/sbin/init - privileged: true -provisioner: - name: ansible - playbooks: - prepare: ../resources/playbooks/prepare.yml -prerun: false diff --git a/molecule/default b/molecule/default deleted file mode 120000 index 768be926fb77dacebb0865765fcfed2e64b5643a..0000000000000000000000000000000000000000 --- a/molecule/default +++ /dev/null @@ -1 +0,0 @@ -fedora-latest \ No newline at end of file diff --git a/molecule/fedora-latest-build/Dockerfile b/molecule/fedora-latest-build/Dockerfile deleted file mode 100644 index f3c2ef6281d6bd7a1abd6641191c91c71f3e04c8..0000000000000000000000000000000000000000 --- a/molecule/fedora-latest-build/Dockerfile +++ /dev/null @@ -1,30 +0,0 @@ -FROM fedora:latest -ENV container=docker - -RUN rm -fv /var/cache/dnf/metadata_lock.pid; \ -dnf makecache; \ -dnf --assumeyes install \ - /usr/bin/python3 \ - /usr/bin/python3-config \ - /usr/bin/dnf-3 \ - sudo \ - bash \ - systemd \ - procps-ng \ - iproute && \ -dnf clean all; \ -(cd /lib/systemd/system/sysinit.target.wants/; for i in *; do [ $i == systemd-tmpfiles-setup.service ] || rm -f $i; done); \ -rm -f /lib/systemd/system/multi-user.target.wants/*;\ -rm -f /etc/systemd/system/*.wants/*;\ -rm -f /lib/systemd/system/local-fs.target.wants/*; \ -rm -f /lib/systemd/system/sockets.target.wants/*udev*; \ -rm -f /lib/systemd/system/sockets.target.wants/*initctl*; \ -rm -f /lib/systemd/system/basic.target.wants/*;\ -rm -f /lib/systemd/system/anaconda.target.wants/*; \ -rm -rf /var/cache/dnf/; - -STOPSIGNAL RTMIN+3 - -VOLUME ["/sys/fs/cgroup"] - -CMD ["/usr/sbin/init"] diff --git a/molecule/fedora-latest-build/molecule.yml b/molecule/fedora-latest-build/molecule.yml deleted file mode 100644 index 10635d3a8112126cde7264c250ba5cb69095a6cf..0000000000000000000000000000000000000000 --- a/molecule/fedora-latest-build/molecule.yml +++ /dev/null @@ -1,19 +0,0 @@ ---- -driver: - name: docker -platforms: - - name: fedora-latest-build - image: "fedora:latest" - dockerfile: Dockerfile - hostname: ipaserver.test.local - dns_servers: - - 8.8.8.8 - volumes: - - /sys/fs/cgroup:/sys/fs/cgroup:ro - command: /usr/sbin/init - privileged: true -provisioner: - name: ansible - playbooks: - prepare: ../resources/playbooks/prepare-build.yml -prerun: false diff --git a/molecule/fedora-latest/molecule.yml b/molecule/fedora-latest/molecule.yml deleted file mode 100644 index 94c4fc4a0cf72c4fe42aa7f09d9a2b2cac13d0c2..0000000000000000000000000000000000000000 --- a/molecule/fedora-latest/molecule.yml +++ /dev/null @@ -1,19 +0,0 @@ ---- -driver: - name: docker -platforms: - - name: fedora-latest - image: quay.io/ansible-freeipa/upstream-tests:fedora-latest - pre_build_image: true - hostname: ipaserver.test.local - dns_servers: - - 127.0.0.1 - volumes: - - /sys/fs/cgroup:/sys/fs/cgroup:ro - command: /usr/sbin/init - privileged: true -provisioner: - name: ansible - playbooks: - prepare: ../resources/playbooks/prepare.yml -prerun: false diff --git a/molecule/fedora-rawhide-build/Dockerfile b/molecule/fedora-rawhide-build/Dockerfile deleted file mode 100644 index f1a1c124d30d845a480b0b3cd841670eb95e96a0..0000000000000000000000000000000000000000 --- a/molecule/fedora-rawhide-build/Dockerfile +++ /dev/null @@ -1,30 +0,0 @@ -FROM fedora:rawhide -ENV container=docker - -RUN rm -fv /var/cache/dnf/metadata_lock.pid; \ -dnf makecache; \ -dnf --assumeyes install \ - /usr/bin/python3 \ - /usr/bin/python3-config \ - /usr/bin/dnf-3 \ - sudo \ - bash \ - systemd \ - procps-ng \ - iproute && \ -dnf clean all; \ -(cd /lib/systemd/system/sysinit.target.wants/; for i in *; do [ $i == systemd-tmpfiles-setup.service ] || rm -f $i; done); \ -rm -f /lib/systemd/system/multi-user.target.wants/*;\ -rm -f /etc/systemd/system/*.wants/*;\ -rm -f /lib/systemd/system/local-fs.target.wants/*; \ -rm -f /lib/systemd/system/sockets.target.wants/*udev*; \ -rm -f /lib/systemd/system/sockets.target.wants/*initctl*; \ -rm -f /lib/systemd/system/basic.target.wants/*;\ -rm -f /lib/systemd/system/anaconda.target.wants/*; \ -rm -rf /var/cache/dnf/; - -STOPSIGNAL RTMIN+3 - -VOLUME ["/sys/fs/cgroup"] - -CMD ["/usr/sbin/init"] diff --git a/molecule/fedora-rawhide-build/molecule.yml b/molecule/fedora-rawhide-build/molecule.yml deleted file mode 100644 index c8afa32964ab8ee7bdae8d471e59e9c44b6a053a..0000000000000000000000000000000000000000 --- a/molecule/fedora-rawhide-build/molecule.yml +++ /dev/null @@ -1,19 +0,0 @@ ---- -driver: - name: docker -platforms: - - name: fedora-rawhide-build - image: "fedora:rawhide" - dockerfile: Dockerfile - hostname: ipaserver.test.local - dns_servers: - - 8.8.8.8 - volumes: - - /sys/fs/cgroup:/sys/fs/cgroup:ro - command: /usr/sbin/init - privileged: true -provisioner: - name: ansible - playbooks: - prepare: ../resources/playbooks/prepare-build.yml -prerun: false diff --git a/molecule/fedora-rawhide/molecule.yml b/molecule/fedora-rawhide/molecule.yml deleted file mode 100644 index 6ff53e9b4e6b890b12d26903abc9296f35367141..0000000000000000000000000000000000000000 --- a/molecule/fedora-rawhide/molecule.yml +++ /dev/null @@ -1,19 +0,0 @@ ---- -driver: - name: docker -platforms: - - name: fedora-rawhide - image: quay.io/ansible-freeipa/upstream-tests:fedora-rawhide - pre_build_image: true - hostname: ipaserver.test.local - dns_servers: - - 127.0.0.1 - volumes: - - /sys/fs/cgroup:/sys/fs/cgroup:ro - command: /usr/sbin/init - privileged: true -provisioner: - name: ansible - playbooks: - prepare: ../resources/playbooks/prepare.yml -prerun: false diff --git a/molecule/resources/playbooks/library b/molecule/resources/playbooks/library deleted file mode 120000 index 0140dc6d3e793348663e9b0e959189b9ec1e6b9f..0000000000000000000000000000000000000000 --- a/molecule/resources/playbooks/library +++ /dev/null @@ -1 +0,0 @@ -../../../plugins/modules/ \ No newline at end of file diff --git a/molecule/resources/playbooks/module_utils b/molecule/resources/playbooks/module_utils deleted file mode 120000 index 2b1d4840b33b6d90bad753345c96c360561c64e6..0000000000000000000000000000000000000000 --- a/molecule/resources/playbooks/module_utils +++ /dev/null @@ -1 +0,0 @@ -../../../plugins/module_utils/ \ No newline at end of file diff --git a/molecule/resources/playbooks/prepare-build.yml b/molecule/resources/playbooks/prepare-build.yml deleted file mode 100644 index 5e8e5a92e152d1f59a4f49d83697302dfb1f93bf..0000000000000000000000000000000000000000 --- a/molecule/resources/playbooks/prepare-build.yml +++ /dev/null @@ -1,28 +0,0 @@ ---- -- name: Converge - hosts: all - tasks: - - include_tasks: prepare-common.yml - - - name: Ensure sudo package is installed - package: - name: sudo - - - name: Ensure nss package is updated - package: - name: nss - state: latest # noqa 403 - - - include_role: - name: ipaserver - vars: - ipaserver_setup_dns: yes - ipaserver_setup_kra: yes - ipaserver_auto_forwarders: yes - ipaserver_no_dnssec_validation: yes - ipaserver_auto_reverse: yes - ipaadmin_password: SomeADMINpassword - ipadm_password: SomeDMpassword - ipaserver_domain: test.local - ipaserver_realm: TEST.LOCAL - ipaclient_no_ntp: yes diff --git a/molecule/resources/playbooks/prepare-common.yml b/molecule/resources/playbooks/prepare-common.yml deleted file mode 100644 index 1e1a60227d7283b5c61a15a6a22481a482320649..0000000000000000000000000000000000000000 --- a/molecule/resources/playbooks/prepare-common.yml +++ /dev/null @@ -1,33 +0,0 @@ ---- -# IPA depends on IPv6 and without it dirsrv service won't start. -- name: Ensure IPv6 is ENABLED - ansible.posix.sysctl: - name: "{{ item.name }}" - value: "{{ item.value }}" - sysctl_set: yes - state: present - reload: yes - with_items: - - name: net.ipv6.conf.all.disable_ipv6 - value: 0 - - name: net.ipv6.conf.lo.disable_ipv6 - value: 0 - - name: net.ipv6.conf.eth0.disable_ipv6 - value: 1 - -# Set fs.protected_regular to 0 -# This is needed in some IPA versions in order to get KRA enabled. -# See https://pagure.io/freeipa/issue/7906 for more information. -- name: stat protected_regular - ansible.builtin.stat: - path: /proc/sys/fs/protected_regular - register: result - -- name: Ensure fs.protected_regular is disabled - ansible.posix.sysctl: - name: fs.protected_regular - value: 0 - sysctl_set: yes - state: present - reload: yes - when: result.stat.exists diff --git a/molecule/resources/playbooks/prepare.yml b/molecule/resources/playbooks/prepare.yml deleted file mode 100644 index deaa092b3318a5c288e7525932e1000ba453a3eb..0000000000000000000000000000000000000000 --- a/molecule/resources/playbooks/prepare.yml +++ /dev/null @@ -1,48 +0,0 @@ ---- -- name: Converge - hosts: all - tasks: - - include_tasks: prepare-common.yml - - # In some distros DS won't start up after reboot - # This is due to a problem in 389-ds. See tickets: - # * https://pagure.io/389-ds-base/issue/47429 - # * https://pagure.io/389-ds-base/issue/51039 - # - # To avoid this problem we create the directories before starting IPA. - - name: Ensure lock dirs for DS exists - ansible.builtin.file: - state: directory - owner: dirsrv - group: dirsrv - path: "{{ item }}" - mode: 0770 - loop: - - /var/lock/dirsrv/ - - /var/lock/dirsrv/slapd-TEST-LOCAL/ - - - name: Ensure IPA server is up an running - ansible.builtin.service: - name: ipa - state: started - - - name: Wait for krb5dkc to be running - ansible.builtin.service_facts: - no_log: True - register: result - until: "'krb5kdc.service' in result.ansible_facts.services and \ - result.ansible_facts.services['krb5kdc.service'].state == 'running'" - retries: 30 - delay: 5 - - - name: Check if TGT is available for admin. - ansible.builtin.shell: - cmd: echo SomeADMINpassword | kinit -c ansible_freeipa_cache admin - register: result - until: not result.failed - retries: 30 - delay: 5 - - - name: Cleanup TGT. - ansible.builtin.shell: - cmd: kdestroy -c ansible_freeipa_cache -A diff --git a/molecule/resources/playbooks/roles b/molecule/resources/playbooks/roles deleted file mode 120000 index e2b799b9d705b8545e7242a920921d8221791d4b..0000000000000000000000000000000000000000 --- a/molecule/resources/playbooks/roles +++ /dev/null @@ -1 +0,0 @@ -../../../roles/ \ No newline at end of file diff --git a/tests/README.md b/tests/README.md index 1e9d4e4a194d47b99e2fa94d02202678d3765288..298078b8681f5e650001ae07801512a344c75468 100644 --- a/tests/README.md +++ b/tests/README.md @@ -102,48 +102,16 @@ The pytests are tests that will execute small playbooks and then will verify the To select only these tests on a test execution use the option `-m "not playbook"`. -## Running tests in a docker container +## Running tests in a container -It's also possible to run the tests in a container. - -### Creating a container to run the tests - -Before setting up a container you will need to install molecule framework: - -``` -pip install molecule-plugins[docker] -``` - -Now you can start a test container using the following command: -``` -molecule create -s c8s -``` - -Note: Currently the containers available for running the tests are: - * fedora-latest - * centos-7 - * c8s - * c9s - -### Running the tests inside the container +It's also possible to run the tests in a container. Use the script `infra/image/start.sh` to start a container. To run the tests you will use pytest (works the same as for VMs). ``` -RUN_TESTS_IN_DOCKER=1 IPA_SERVER_HOST=c8s pytest +RUN_TESTS_IN_DOCKER=podman IPA_SERVER_HOST=ansbile-freeipa-tests pytest -m "playbook" ``` -### Cleaning up after tests - -After running the tests you should probably destroy the test container using: - -``` -molecule destroy -s c8s -``` - -See [Running the tests](#running-the-tests) section for more information on available options. - - ## Running local tests with upstream CI images To run tests locally using the same images used by upstream CI use `utils/run-tests.sh`. @@ -172,8 +140,6 @@ By default the tests are executed against the latest version of the Fedora image utils/run-tests.sh -i c9s tests/host/test_host.yml ``` - ## Upcoming/desired improvements: -* A script to pre-config the complete test environment using virsh. -* A test matrix to run tests against different distros in parallel (probably using tox). +* A test matrix to run tests against different distros in parallel. diff --git a/tests/azure/nightly.yml b/tests/azure/nightly.yml deleted file mode 100644 index 89914f8e4b9e84d0b5e637ad568a7154ff09af73..0000000000000000000000000000000000000000 --- a/tests/azure/nightly.yml +++ /dev/null @@ -1,243 +0,0 @@ ---- -schedules: -- cron: "0 19 * * *" - displayName: Nightly Builds - branches: - include: - - master - always: true - -trigger: none - -pool: - vmImage: 'ubuntu-20.04' - -stages: - -# Fedora - -- stage: FedoraLatest_Ansible_Core_2_13 - dependsOn: [] - jobs: - - template: templates/group_tests.yml - parameters: - build_number: $(Build.BuildNumber) - scenario: fedora-latest - ansible_version: "-core >=2.13,<2.14" - -- stage: FedoraLatest_Ansible_Core_2_14 - dependsOn: [] - jobs: - - template: templates/group_tests.yml - parameters: - build_number: $(Build.BuildNumber) - scenario: fedora-latest - ansible_version: "-core >=2.14,<2.15" - -- stage: FedoraLatest_Ansible_Core_2_15 - dependsOn: [] - jobs: - - template: templates/group_tests.yml - parameters: - build_number: $(Build.BuildNumber) - scenario: fedora-latest - ansible_version: "-core >=2.15,<2.16" - -- stage: FedoraLatest_Ansible_latest - dependsOn: [] - jobs: - - template: templates/group_tests.yml - parameters: - build_number: $(Build.BuildNumber) - scenario: fedora-latest - ansible_version: "" - -# Galaxy on Fedora - -- stage: Galaxy_FedoraLatest_Ansible_Core_2_13 - dependsOn: [] - jobs: - - template: templates/galaxy_tests.yml - parameters: - build_number: $(Build.BuildNumber) - scenario: fedora-latest - ansible_version: "-core >=2.13,<2.14" - -- stage: Galaxy_FedoraLatest_Ansible_Core_2_14 - dependsOn: [] - jobs: - - template: templates/galaxy_tests.yml - parameters: - build_number: $(Build.BuildNumber) - scenario: fedora-latest - ansible_version: "-core >=2.14,<2.15" - -- stage: Galaxy_FedoraLatest_Ansible_Core_2_15 - dependsOn: [] - jobs: - - template: templates/galaxy_tests.yml - parameters: - build_number: $(Build.BuildNumber) - scenario: fedora-latest - ansible_version: "-core >=2.15,<2.16" - -- stage: Galaxy_FedoraLatest_Ansible_latest - dependsOn: [] - jobs: - - template: templates/galaxy_tests.yml - parameters: - build_number: $(Build.BuildNumber) - scenario: fedora-latest - ansible_version: "" - -# Fedora Rawhide - -- stage: FedoraRawhide_Ansible_Core_2_13 - dependsOn: [] - jobs: - - template: templates/group_tests.yml - parameters: - build_number: $(Build.BuildNumber) - scenario: fedora-rawhide - ansible_version: "-core >=2.13,<2.14" - -- stage: FedoraRawhide_Ansible_Core_2_14 - dependsOn: [] - jobs: - - template: templates/group_tests.yml - parameters: - build_number: $(Build.BuildNumber) - scenario: fedora-rawhide - ansible_version: "-core >=2.14,<2.15" - -- stage: FedoraRawhide_Ansible_Core_2_15 - dependsOn: [] - jobs: - - template: templates/group_tests.yml - parameters: - build_number: $(Build.BuildNumber) - scenario: fedora-rawhide - ansible_version: "-core >=2.15,<2.16" - -- stage: FedoraRawhide_Ansible_latest - dependsOn: [] - jobs: - - template: templates/group_tests.yml - parameters: - build_number: $(Build.BuildNumber) - scenario: fedora-rawhide - ansible_version: "" - -# CentoOS 9 Stream - -- stage: c9s_Ansible_Core_2_13 - dependsOn: [] - jobs: - - template: templates/group_tests.yml - parameters: - build_number: $(Build.BuildNumber) - scenario: c9s - ansible_version: "-core >=2.13,<2.14" - -- stage: c9s_Ansible_Core_2_14 - dependsOn: [] - jobs: - - template: templates/group_tests.yml - parameters: - build_number: $(Build.BuildNumber) - scenario: c9s - ansible_version: "-core >=2.14,<2.15" - -- stage: c9s_Ansible_Core_2_15 - dependsOn: [] - jobs: - - template: templates/group_tests.yml - parameters: - build_number: $(Build.BuildNumber) - scenario: c9s - ansible_version: "-core >=2.15,<2.16" - -- stage: c9s_Ansible_latest - dependsOn: [] - jobs: - - template: templates/group_tests.yml - parameters: - build_number: $(Build.BuildNumber) - scenario: c9s - ansible_version: "" - -# CentOS 8 Stream - -- stage: c8s_Ansible_Core_2_13 - dependsOn: [] - jobs: - - template: templates/group_tests.yml - parameters: - build_number: $(Build.BuildNumber) - scenario: c8s - ansible_version: "-core >=2.13,<2.14" - -- stage: c8s_Ansible_Core_2_14 - dependsOn: [] - jobs: - - template: templates/group_tests.yml - parameters: - build_number: $(Build.BuildNumber) - scenario: c8s - ansible_version: "-core >=2.14,<2.15" - -- stage: c8s_Ansible_Core_2_15 - dependsOn: [] - jobs: - - template: templates/group_tests.yml - parameters: - build_number: $(Build.BuildNumber) - scenario: c8s - ansible_version: "-core >=2.15,<2.16" - -- stage: c8s_Ansible_latest - dependsOn: [] - jobs: - - template: templates/group_tests.yml - parameters: - build_number: $(Build.BuildNumber) - scenario: c8s - ansible_version: "" - -# CentOS 7 - -- stage: CentOS7_Ansible_Core_2_13 - dependsOn: [] - jobs: - - template: templates/group_tests.yml - parameters: - build_number: $(Build.BuildNumber) - scenario: centos-7 - ansible_version: "-core >=2.13,<2.14" - -- stage: CentOS7_Ansible_Core_2_14 - dependsOn: [] - jobs: - - template: templates/group_tests.yml - parameters: - build_number: $(Build.BuildNumber) - scenario: centos-7 - ansible_version: "-core >=2.14,<2.15" - -- stage: CentOS7_Ansible_Core_2_15 - dependsOn: [] - jobs: - - template: templates/group_tests.yml - parameters: - build_number: $(Build.BuildNumber) - scenario: centos-7 - ansible_version: "-core >=2.15,<2.16" - -- stage: CentOS7_Ansible_latest - dependsOn: [] - jobs: - - template: templates/group_tests.yml - parameters: - build_number: $(Build.BuildNumber) - scenario: centos-7 - ansible_version: "" diff --git a/tests/azure/templates/fast_tests.yml b/tests/azure/templates/fast_tests.yml deleted file mode 100644 index ac26ce8f0bb19ee5ffd1af63771174ad273e0004..0000000000000000000000000000000000000000 --- a/tests/azure/templates/fast_tests.yml +++ /dev/null @@ -1,31 +0,0 @@ ---- -parameters: - - name: distro - type: string - default: fedora-latest - - name: build_number - type: string - - name: ansible_version - type: string - default: "" - - name: target_python - type: string - default: "/usr/bin/python3" - -jobs: -- template: playbook_fast.yml - parameters: - group_number: 1 - number_of_groups: 1 - build_number: ${{ parameters.build_number }} - distro: ${{ parameters.distro }} - ansible_version: ${{ parameters.ansible_version }} - python_version: '< 3.12' - target_python: ${{ parameters.target_python }} - -# - template: pytest_tests.yml -# parameters: -# build_number: ${{ parameters.build_number }} -# distro: ${{ parameters.distro }} -# ansible_version: ${{ parameters.ansible_version }} -# python_version: '< 3.12' diff --git a/tests/azure/templates/galaxy_pytest_script.yml b/tests/azure/templates/galaxy_pytest_script.yml deleted file mode 100644 index 3b164169617bf76b8959316c79ce86ce35da4ebf..0000000000000000000000000000000000000000 --- a/tests/azure/templates/galaxy_pytest_script.yml +++ /dev/null @@ -1,65 +0,0 @@ ---- -parameters: - - name: build_number - type: string - - name: scenario - type: string - default: fedora-latest - - name: ansible_version - type: string - default: "" - - name: python_version - type: string - default: 3.x - -jobs: -- job: Test_PyTests - displayName: Run pytests on ${{ parameters.scenario }} - timeoutInMinutes: 240 - steps: - - task: UsePythonVersion@0 - inputs: - versionSpec: '${{ parameters.python_version }}' - - - script: | - pip install \ - "molecule-plugins[docker]" \ - "requests<2.29" \ - "ansible${{ parameters.ansible_version }}" - retryCountOnTaskFailure: 5 - displayName: Install molecule and Ansible - - - script: ansible-galaxy collection install community.docker ansible.posix - retryCountOnTaskFailure: 5 - displayName: Install Ansible collections - - - script: pip install -r requirements-tests.txt - retryCountOnTaskFailure: 5 - displayName: Install dependencies - - - script: | - utils/build-galaxy-release.sh -i - molecule create -s ${{ parameters.scenario }} - retryCountOnTaskFailure: 5 - displayName: Setup test container - env: - ANSIBLE_LIBRARY: ./molecule - - - script: | - cd ~/.ansible/collections/ansible_collections/freeipa/ansible_freeipa - pytest \ - -m "not playbook" \ - --verbose \ - --color=yes \ - --junit-xml=TEST-results-pytests.xml - displayName: Run tests - env: - IPA_SERVER_HOST: ${{ parameters.scenario }} - RUN_TESTS_IN_DOCKER: true - IPA_VERBOSITY: "-vvv" - - - task: PublishTestResults@2 - inputs: - mergeTestResults: true - testRunTitle: PlaybookTests-Build${{ parameters.build_number }} - condition: succeededOrFailed() diff --git a/tests/azure/templates/galaxy_script.yml b/tests/azure/templates/galaxy_script.yml deleted file mode 100644 index a00dd0a55fec435f986df7164ad128b9650d789e..0000000000000000000000000000000000000000 --- a/tests/azure/templates/galaxy_script.yml +++ /dev/null @@ -1,86 +0,0 @@ ---- -parameters: - - name: group_number - type: number - default: 1 - - name: number_of_groups - type: number - default: 1 - - name: scenario - type: string - default: fedora-latest - - name: ansible_version - type: string - default: "" - - name: python_version - type: string - default: 3.x - - name: build_number - type: string - - -jobs: -- job: Test_Group${{ parameters.group_number }} - displayName: Run playbook tests ${{ parameters.scenario }} (${{ parameters.group_number }}/${{ parameters.number_of_groups }}) - timeoutInMinutes: 240 - variables: - - template: variables.yaml - - template: variables_${{ parameters.scenario }}.yaml - steps: - - task: UsePythonVersion@0 - inputs: - versionSpec: '${{ parameters.python_version }}' - - - script: | - pip install \ - "molecule-plugins[docker]" \ - "requests<2.29" \ - "ansible${{ parameters.ansible_version }}" - retryCountOnTaskFailure: 5 - displayName: Install molecule and Ansible - - - script: ansible-galaxy collection install community.docker ansible.posix - retryCountOnTaskFailure: 5 - displayName: Install Ansible collections - - - script: pip install -r requirements-tests.txt - retryCountOnTaskFailure: 5 - displayName: Install dependencies - - - script: | - utils/build-galaxy-release.sh -i - molecule create -s ${{ parameters.scenario }} - retryCountOnTaskFailure: 5 - displayName: Setup test container - env: - ANSIBLE_LIBRARY: ./molecule - - - script: | - python utils/check_test_configuration.py ${{ parameters.scenario }} - displayName: Check scenario test configuration - - - script: | - cd ~/.ansible/collections/ansible_collections/freeipa/ansible_freeipa - pytest \ - -m "playbook" \ - --verbose \ - --color=yes \ - --splits=${{ parameters.number_of_groups }} \ - --group=${{ parameters.group_number }} \ - --randomly-seed=$(date "+%Y%m%d") \ - --junit-xml=TEST-results-group-${{ parameters.group_number }}.xml - displayName: Run playbook tests - env: - IPA_SERVER_HOST: ${{ parameters.scenario }} - RUN_TESTS_IN_DOCKER: true - IPA_DISABLED_MODULES: ${{ variables.ipa_disabled_modules }} - IPA_DISABLED_TESTS: ${{ variables.ipa_disabled_tests }} - IPA_ENABLED_MODULES: ${{ variables.ipa_enabled_modules }} - IPA_ENABLED_TESTS: ${{ variables.ipa_enabled_tests }} - IPA_VERBOSITY: "-vvv" - - - task: PublishTestResults@2 - inputs: - mergeTestResults: true - testRunTitle: PlaybookTests-Build${{ parameters.build_number }} - condition: succeededOrFailed() diff --git a/tests/azure/templates/galaxy_tests.yml b/tests/azure/templates/galaxy_tests.yml deleted file mode 100644 index 465097de2e59caf02dd3fbf6672d1685fa8e592b..0000000000000000000000000000000000000000 --- a/tests/azure/templates/galaxy_tests.yml +++ /dev/null @@ -1,46 +0,0 @@ ---- -parameters: - - name: scenario - type: string - default: fedora-latest - - name: build_number - type: string - - name: ansible_version - type: string - default: "" - -jobs: -- template: galaxy_script.yml - parameters: - group_number: 1 - number_of_groups: 3 - build_number: ${{ parameters.build_number }} - scenario: ${{ parameters.scenario }} - ansible_version: ${{ parameters.ansible_version }} - python_version: '< 3.12' - -- template: galaxy_script.yml - parameters: - group_number: 2 - number_of_groups: 3 - build_number: ${{ parameters.build_number }} - scenario: ${{ parameters.scenario }} - ansible_version: ${{ parameters.ansible_version }} - python_version: '< 3.12' - -- template: galaxy_script.yml - parameters: - group_number: 3 - number_of_groups: 3 - build_number: ${{ parameters.build_number }} - scenario: ${{ parameters.scenario }} - ansible_version: ${{ parameters.ansible_version }} - python_version: '< 3.12' - -# Temporarily disable due to issues with ansible docker plugin. -#- template: galaxy_pytest_script.yml -# parameters: -# build_number: ${{ parameters.build_number }} -# scenario: ${{ parameters.scenario }} -# ansible_version: ${{ parameters.ansible_version }} -# python_version: '< 3.12' diff --git a/tests/azure/templates/group_tests.yml b/tests/azure/templates/group_tests.yml deleted file mode 100644 index 38f183dd97171a2880e1febf55416b7f7549153c..0000000000000000000000000000000000000000 --- a/tests/azure/templates/group_tests.yml +++ /dev/null @@ -1,46 +0,0 @@ ---- -parameters: - - name: scenario - type: string - default: fedora-latest - - name: build_number - type: string - - name: ansible_version - type: string - default: "" - -jobs: -- template: playbook_tests.yml - parameters: - group_number: 1 - number_of_groups: 3 - build_number: ${{ parameters.build_number }} - scenario: ${{ parameters.scenario }} - ansible_version: ${{ parameters.ansible_version }} - python_version: '< 3.12' - -- template: playbook_tests.yml - parameters: - group_number: 2 - number_of_groups: 3 - build_number: ${{ parameters.build_number }} - scenario: ${{ parameters.scenario }} - ansible_version: ${{ parameters.ansible_version }} - python_version: '< 3.12' - -- template: playbook_tests.yml - parameters: - group_number: 3 - number_of_groups: 3 - build_number: ${{ parameters.build_number }} - scenario: ${{ parameters.scenario }} - ansible_version: ${{ parameters.ansible_version }} - python_version: '< 3.12' - -# Temporarily disabled due to ansible docker plugin issue. -#- template: pytest_tests.yml -# parameters: -# build_number: ${{ parameters.build_number }} -# scenario: ${{ parameters.scenario }} -# ansible_version: ${{ parameters.ansible_version }} -# python_version: '< 3.12' diff --git a/tests/azure/templates/playbook_fast.yml b/tests/azure/templates/playbook_fast.yml deleted file mode 100644 index a00a7875dca1ef99ff1d4e8a8fcbbe6e891e3bfd..0000000000000000000000000000000000000000 --- a/tests/azure/templates/playbook_fast.yml +++ /dev/null @@ -1,84 +0,0 @@ ---- -parameters: - - name: group_number - type: number - default: 1 - - name: number_of_groups - type: number - default: 1 - - name: distro - type: string - default: fedora-latest - - name: ansible_version - type: string - default: "" - - name: python_version - type: string - default: 3.x - - name: build_number - type: string - - name: target_python - type: string - default: "/usr/bin/python3" - -jobs: -- job: Test_Group${{ parameters.group_number }} - displayName: Run playbook tests ${{ parameters.distro }} (${{ parameters.group_number }}/${{ parameters.number_of_groups }}) - timeoutInMinutes: 360 - variables: - - template: variables.yaml - - template: variables_${{ parameters.distro }}.yaml - steps: - - task: UsePythonVersion@0 - inputs: - versionSpec: '${{ parameters.python_version }}' - - - script: | - pip install "ansible${{ parameters.ansible_version }}" - retryCountOnTaskFailure: 5 - displayName: Install Ansible - - - script: ansible-galaxy collection install containers.podman - retryCountOnTaskFailure: 5 - displayName: Install Ansible collections - - - script: pip install -r requirements-tests.txt - retryCountOnTaskFailure: 5 - displayName: Install dependencies - - - script: | - . utils/set_test_modules - python3 utils/check_test_configuration.py ${{ parameters.distro }} - displayName: Check test configuration - - - script: | - utils/setup_test_container.sh \ - -e podman \ - -a \ - -m 4 \ - -n "ipaserver.test.local" \ - -p ${{ parameters.target_python }} \ - -i ${{ parameters.distro }}-server \ - ${{ parameters.distro }}-test - displayName: Setup target container - - - script: | - . utils/set_test_modules - pytest -m "playbook" --verbose --color=yes --suppress-no-test-exit-code --junit-xml=TEST-results-pr-check.xml - displayName: Run playbook tests - env: - ANSIBLE_ROLES_PATH: "${PWD}/roles" - ANSIBLE_LIBRARY: "${PWD}/plugins" - ANSIBLE_MODULE_UTILS: "${PWD}/plugins/module_utils" - IPA_SERVER_HOST: ${{ parameters.distro }}-test - RUN_TESTS_IN_DOCKER: podman - IPA_DISABLED_MODULES: ${{ variables.ipa_disabled_modules }} - IPA_DISABLED_TESTS: ${{ variables.ipa_disabled_tests }} - IPA_VERBOSITY: "-vvv" - IPA_PYTHON_PATH: ${{ parameters.target_python }} - - - task: PublishTestResults@2 - inputs: - mergeTestResults: true - testRunTitle: PlaybookTests-Build${{ parameters.build_number }} - condition: succeededOrFailed() diff --git a/tests/azure/templates/playbook_tests.yml b/tests/azure/templates/playbook_tests.yml deleted file mode 100644 index c65c955fb1082006ac727282a382162d89e3c651..0000000000000000000000000000000000000000 --- a/tests/azure/templates/playbook_tests.yml +++ /dev/null @@ -1,88 +0,0 @@ ---- -parameters: - - name: group_number - type: number - default: 1 - - name: number_of_groups - type: number - default: 1 - - name: scenario - type: string - default: fedora-latest - - name: ansible_version - type: string - default: "" - - name: python_version - type: string - default: 3.x - - name: build_number - type: string - -jobs: -- job: Test_Group${{ parameters.group_number }} - displayName: Run playbook tests ${{ parameters.scenario }} (${{ parameters.group_number }}/${{ parameters.number_of_groups }}) - timeoutInMinutes: 240 - variables: - - template: variables.yaml - - template: variables_${{ parameters.scenario }}.yaml - steps: - - task: UsePythonVersion@0 - inputs: - versionSpec: '${{ parameters.python_version }}' - - - script: | - pip install \ - "molecule-plugins[docker]" \ - "requests<2.29" \ - "ansible${{ parameters.ansible_version }}" - retryCountOnTaskFailure: 5 - displayName: Install molecule and Ansible - - - script: ansible-galaxy collection install community.docker ansible.posix - retryCountOnTaskFailure: 5 - displayName: Install Ansible collections - - - script: pip install -r requirements-tests.txt - retryCountOnTaskFailure: 5 - displayName: Install dependencies - - - script: | - rm -rf ~/ansible - mkdir -p ~/.ansible/roles ~/.ansible/library ~/.ansible/module_utils - cp -a roles/* ~/.ansible/roles - cp -a plugins/modules/* ~/.ansible/library - cp -a plugins/module_utils/* ~/.ansible/module_utils - molecule create -s ${{ parameters.scenario }} - retryCountOnTaskFailure: 5 - displayName: Setup test container - env: - ANSIBLE_LIBRARY: ./molecule - - - script: | - python utils/check_test_configuration.py ${{ parameters.scenario }} - displayName: Check scenario test configuration - - - script: | - pytest \ - -m "playbook" \ - --verbose \ - --color=yes \ - --splits=${{ parameters.number_of_groups }} \ - --group=${{ parameters.group_number }} \ - --randomly-seed=$(date "+%Y%m%d") \ - --junit-xml=TEST-results-group-${{ parameters.group_number }}.xml - displayName: Run playbook tests - env: - IPA_SERVER_HOST: ${{ parameters.scenario }} - RUN_TESTS_IN_DOCKER: true - IPA_DISABLED_MODULES: ${{ variables.ipa_disabled_modules }} - IPA_DISABLED_TESTS: ${{ variables.ipa_disabled_tests }} - IPA_ENABLED_MODULES: ${{ variables.ipa_enabled_modules }} - IPA_ENABLED_TESTS: ${{ variables.ipa_enabled_tests }} - IPA_VERBOSITY: "-vvv" - - - task: PublishTestResults@2 - inputs: - mergeTestResults: true - testRunTitle: PlaybookTests-Build${{ parameters.build_number }} - condition: succeededOrFailed() diff --git a/tests/azure/templates/pytest_tests.yml b/tests/azure/templates/pytest_tests.yml deleted file mode 100644 index a7b12110e52a19b0a83aad76b1d8488072db3dc6..0000000000000000000000000000000000000000 --- a/tests/azure/templates/pytest_tests.yml +++ /dev/null @@ -1,75 +0,0 @@ ---- -parameters: - - name: build_number - type: string - - name: scenario - type: string - default: fedora-latest - - name: ansible_version - type: string - default: "" - - name: python_version - type: string - default: 3.x - -jobs: -- job: Test_PyTests - displayName: Run pytests on ${{ parameters.scenario }} - timeoutInMinutes: 240 - variables: - - template: variables.yaml - - template: variables_${{ parameters.scenario }}.yaml - steps: - - task: UsePythonVersion@0 - inputs: - versionSpec: '${{ parameters.python_version }}' - - - script: | - pip install \ - "molecule-plugins[docker]" \ - "requests<2.29" \ - "ansible${{ parameters.ansible_version }}" - retryCountOnTaskFailure: 5 - displayName: Install molecule and Ansible - - - script: ansible-galaxy collection install community.docker ansible.posix - retryCountOnTaskFailure: 5 - displayName: Install Ansible collections - - - script: pip install -r requirements-tests.txt - retryCountOnTaskFailure: 5 - displayName: Install dependencies - - - script: | - rm -rf ~/.ansible - mkdir -p ~/.ansible/roles ~/.ansible/library ~/.ansible/module_utils - cp -a roles/* ~/.ansible/roles - cp -a plugins/modules/* ~/.ansible/library - cp -a plugins/module_utils/* ~/.ansible/module_utils - molecule create -s ${{ parameters.scenario }} - retryCountOnTaskFailure: 5 - displayName: Setup test container - env: - ANSIBLE_LIBRARY: ./molecule - - - script: | - pytest \ - -m "not playbook" \ - --verbose \ - --color=yes \ - --junit-xml=TEST-results-pytests.xml - displayName: Run tests - env: - IPA_SERVER_HOST: ${{ parameters.scenario }} - RUN_TESTS_IN_DOCKER: true - IPA_DISABLED_MODULES: ${{ variables.ipa_disabled_modules }} - IPA_DISABLED_TESTS: ${{ variables.ipa_disabled_tests }} - IPA_ENABLED_MODULES: ${{ variables.ipa_enabled_modules }} - IPA_ENABLED_TESTS: ${{ variables.ipa_enabled_tests }} - IPA_VERBOSITY: "-vvv" - - - task: PublishTestResults@2 - inputs: - mergeTestResults: true - testRunTitle: PlaybookTests-Build${{ parameters.build_number }} - condition: succeededOrFailed() diff --git a/utils/lint_check.sh b/utils/lint_check.sh index 25d4f8878c0b4cd551daaf370961c08bcabe8de6..76c8c2ace182b2862342d3d5fdd6510928fa52dd 100755 --- a/utils/lint_check.sh +++ b/utils/lint_check.sh @@ -35,7 +35,6 @@ echo -e "${INFO}Running 'yamllint'...${RST}" yaml_dirs=( "tests" "playbooks" - "molecule" "roles" ) yamllint -f colored "${yaml_dirs[@]}" diff --git a/utils/set_test_modules b/utils/set_test_modules index daa47dcf55d3b7e3459be44d4c6db94224e27e75..f9f1d91e4a1effb9376598f2859f0b5ad9cff930 100644 --- a/utils/set_test_modules +++ b/utils/set_test_modules @@ -1,8 +1,7 @@ #!/bin/bash -eu # This file shoud be source'd (. set_test_modules) rather than executed. - # -# Set "BASE_BRANCH" to a different branch to compare. +# Set SKIP_GIT_TEST="True" or use -a to prevent git modification comparison. # RED="\033[31;1m" @@ -18,27 +17,45 @@ TOPDIR="$(dirname "${BASH_SOURCE[0]}")/.." pushd "${TOPDIR}" >/dev/null 2>&1 || die "Failed to change directory." +SKIP_GIT_TEST=${SKIP_GIT_TEST:-"False"} + +while getopts ":a" opt +do + case "${opt}" in + a) SKIP_GIT_TEST="True" ;; + *) ;; # ignore other options + esac +done + files_list=$(mktemp) -remote="$(basename $(mktemp -u remote_XXXXXX))" -git remote add ${remote} https://github.com/freeipa/ansible-freeipa -git fetch --prune --no-tags --quiet ${remote} -git diff "${remote}/master" --name-only > "${files_list}" -git remote remove ${remote} +enabled_modules="None" +enabled_tests="None" -# Get all modules that should have tests executed -enabled_modules="$(${python} utils/get_test_modules.py $(cat "${files_list}"))" -[ -z "${enabled_modules}" ] && enabled_modules="None" +if [ "${SKIP_GIT_TEST}" != "True" ] +then + remote="$(basename "$(mktemp -u remote_XXXXXX)")" + git remote add "${remote}" https://github.com/freeipa/ansible-freeipa + git fetch --prune --no-tags --quiet "${remote}" + git diff "${remote}/master" --name-only > "${files_list}" + git remote remove "${remote}" -# Get individual tests that should be executed -mapfile -t tests < <(sed -n "s#.*/\(test_[^/]*\).yml#\1#p" "${files_list}" | tr -d " ") -[ ${#tests[@]} -gt 0 ] && enabled_tests=$(IFS=, ; echo "${tests[*]}") -[ -z "${enabled_tests}" ] && enabled_tests="None" + # shellcheck disable=SC2046 + enabled_modules="$(${python} utils/get_test_modules.py $(cat "${files_list}"))" + [ -z "${enabled_modules}" ] && enabled_modules="None" -[ -n "${enabled_tests}" ] && IPA_ENABLED_TESTS="${enabled_tests},${IPA_ENABLED_TESTS}" -[ -n "${enabled_modules}" ] && IPA_ENABLED_MODULES="${enabled_modules},${IPA_ENABLED_MODULES}" + # Get individual tests that should be executed + mapfile -t tests < <(sed -n 's#.*/\(test_[^/]*\).yml#\1#p' "${files_list}" | tr -d " ") + [ ${#tests[@]} -gt 0 ] && enabled_tests=$(IFS=, ; echo "${tests[*]}") + [ -z "${enabled_tests}" ] && enabled_tests="None" -rm -f "${files_list}" + [ -n "${enabled_tests}" ] && IPA_ENABLED_TESTS="${enabled_tests},${IPA_ENABLED_TESTS}" + [ -n "${enabled_modules}" ] && IPA_ENABLED_MODULES="${enabled_modules},${IPA_ENABLED_MODULES}" + + rm -f "${files_list}" +fi + +# Get all modules that should have tests executed export IPA_ENABLED_MODULES export IPA_ENABLED_TESTS