Skip to content
Snippets Groups Projects
Commit 8515c9a4 authored by Rafael Guterres Jeffman's avatar Rafael Guterres Jeffman Committed by Thomas Woerner
Browse files

upstream ci: Remove 'molecule' from tests.

This patch removes 'molecule' as a dependency for tests, by using the
scripts under `utils` to setup the environment.

By not using molecule, we have more flexibility on using either docker
or podman as the container engine, and makes it easy to reproduce the
environment on different distros, allowing for a more consistent error
reproduction off Azure.
parent 94311f43
No related branches found
No related tags found
No related merge requests found
...@@ -15,8 +15,8 @@ stages: ...@@ -15,8 +15,8 @@ stages:
- template: templates/fast_tests.yml - template: templates/fast_tests.yml
parameters: parameters:
build_number: $(Build.BuildNumber) build_number: $(Build.BuildNumber)
scenario: fedora-latest distro: fedora-latest
ansible_version: "-core >=2.14,<2.15" ansible_version: "-core >=2.15,<2.16"
# Galaxy on Fedora # Galaxy on Fedora
...@@ -26,8 +26,8 @@ stages: ...@@ -26,8 +26,8 @@ stages:
- template: templates/fast_tests.yml - template: templates/fast_tests.yml
parameters: parameters:
build_number: $(Build.BuildNumber) build_number: $(Build.BuildNumber)
scenario: fedora-latest distro: fedora-latest
ansible_version: "-core >=2.14,<2.15" ansible_version: "-core >=2.15,<2.16"
# CentOS 9 Stream # CentOS 9 Stream
...@@ -37,8 +37,8 @@ stages: ...@@ -37,8 +37,8 @@ stages:
- template: templates/fast_tests.yml - template: templates/fast_tests.yml
parameters: parameters:
build_number: $(Build.BuildNumber) build_number: $(Build.BuildNumber)
scenario: c9s distro: c9s
ansible_version: "-core >=2.14,<2.15" ansible_version: "-core >=2.15,<2.16"
# CentOS 8 Stream # CentOS 8 Stream
...@@ -48,19 +48,23 @@ stages: ...@@ -48,19 +48,23 @@ stages:
- template: templates/fast_tests.yml - template: templates/fast_tests.yml
parameters: parameters:
build_number: $(Build.BuildNumber) build_number: $(Build.BuildNumber)
scenario: c8s distro: c8s
ansible_version: "-core >=2.14,<2.15" ansible_version: "-core >=2.15,<2.16"
target_python: "/usr/libexec/platform-python"
# CentOS 7 cannot be used with current systemd
#
# CentOS 7 # CentOS 7
#
- stage: CentOS_7 # - stage: CentOS_7
dependsOn: [] # dependsOn: []
jobs: # jobs:
- template: templates/fast_tests.yml # - template: templates/fast_tests.yml
parameters: # parameters:
build_number: $(Build.BuildNumber) # build_number: $(Build.BuildNumber)
scenario: centos-7 # distro: centos-7
ansible_version: "-core >=2.14,<2.15" # ansible_version: "-core >=2.15,<2.16"
# target_python: "/usr/bin/python2"
# Rawhide # Rawhide
...@@ -70,5 +74,5 @@ stages: ...@@ -70,5 +74,5 @@ stages:
- template: templates/fast_tests.yml - template: templates/fast_tests.yml
parameters: parameters:
build_number: $(Build.BuildNumber) build_number: $(Build.BuildNumber)
scenario: fedora-rawhide distro: fedora-rawhide
ansible_version: "-core >=2.14,<2.15" ansible_version: "-core >=2.15,<2.16"
--- ---
parameters: parameters:
- name: scenario - name: distro
type: string type: string
default: fedora-latest default: fedora-latest
- name: build_number - name: build_number
...@@ -8,6 +8,9 @@ parameters: ...@@ -8,6 +8,9 @@ parameters:
- name: ansible_version - name: ansible_version
type: string type: string
default: "" default: ""
- name: target_python
type: string
default: "/usr/bin/python3"
jobs: jobs:
- template: playbook_fast.yml - template: playbook_fast.yml
...@@ -15,13 +18,14 @@ jobs: ...@@ -15,13 +18,14 @@ jobs:
group_number: 1 group_number: 1
number_of_groups: 1 number_of_groups: 1
build_number: ${{ parameters.build_number }} build_number: ${{ parameters.build_number }}
scenario: ${{ parameters.scenario }} distro: ${{ parameters.distro }}
ansible_version: ${{ parameters.ansible_version }} ansible_version: ${{ parameters.ansible_version }}
python_version: '< 3.12' python_version: '< 3.12'
target_python: ${{ parameters.target_python }}
# - template: pytest_tests.yml # - template: pytest_tests.yml
# parameters: # parameters:
# build_number: ${{ parameters.build_number }} # build_number: ${{ parameters.build_number }}
# scenario: ${{ parameters.scenario }} # distro: ${{ parameters.distro }}
# ansible_version: ${{ parameters.ansible_version }} # ansible_version: ${{ parameters.ansible_version }}
# python_version: '< 3.12' # python_version: '< 3.12'
...@@ -6,7 +6,7 @@ parameters: ...@@ -6,7 +6,7 @@ parameters:
- name: number_of_groups - name: number_of_groups
type: number type: number
default: 1 default: 1
- name: scenario - name: distro
type: string type: string
default: fedora-latest default: fedora-latest
- name: ansible_version - name: ansible_version
...@@ -17,28 +17,28 @@ parameters: ...@@ -17,28 +17,28 @@ parameters:
default: 3.x default: 3.x
- name: build_number - name: build_number
type: string type: string
- name: target_python
type: string
default: "/usr/bin/python3"
jobs: jobs:
- job: Test_Group${{ parameters.group_number }} - job: Test_Group${{ parameters.group_number }}
displayName: Run playbook tests ${{ parameters.scenario }} (${{ parameters.group_number }}/${{ parameters.number_of_groups }}) displayName: Run playbook tests ${{ parameters.distro }} (${{ parameters.group_number }}/${{ parameters.number_of_groups }})
timeoutInMinutes: 360 timeoutInMinutes: 360
variables: variables:
- template: variables.yaml - template: variables.yaml
- template: variables_${{ parameters.scenario }}.yaml - template: variables_${{ parameters.distro }}.yaml
steps: steps:
- task: UsePythonVersion@0 - task: UsePythonVersion@0
inputs: inputs:
versionSpec: '${{ parameters.python_version }}' versionSpec: '${{ parameters.python_version }}'
- script: | - script: |
pip install \ pip install "ansible${{ parameters.ansible_version }}"
"molecule-plugins[docker]" \
"requests<2.29" \
"ansible${{ parameters.ansible_version }}"
retryCountOnTaskFailure: 5 retryCountOnTaskFailure: 5
displayName: Install molecule and Ansible displayName: Install Ansible
- script: ansible-galaxy collection install community.docker ansible.posix - script: ansible-galaxy collection install containers.podman
retryCountOnTaskFailure: 5 retryCountOnTaskFailure: 5
displayName: Install Ansible collections displayName: Install Ansible collections
...@@ -47,43 +47,35 @@ jobs: ...@@ -47,43 +47,35 @@ jobs:
displayName: Install dependencies displayName: Install dependencies
- script: | - script: |
rm -rf ~/ansible . utils/set_test_modules
mkdir -p ~/.ansible/roles ~/.ansible/library ~/.ansible/module_utils python3 utils/check_test_configuration.py ${{ parameters.distro }}
cp -a roles/* ~/.ansible/roles displayName: Check test configuration
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: | - script: |
. utils/set_test_modules utils/setup_test_container.sh \
python utils/check_test_configuration.py ${{ parameters.scenario }} -e podman \
displayName: Check scenario test configuration -a \
-m 4 \
-n "ipaserver.test.local" \
-p ${{ parameters.target_python }} \
-i ${{ parameters.distro }}-server \
${{ parameters.distro }}-test
displayName: Setup target container
- script: | - script: |
. utils/set_test_modules . utils/set_test_modules
if ! pytest \ pytest -m "playbook" --verbose --color=yes --suppress-no-test-exit-code --junit-xml=TEST-results-pr-check.xml
-m "playbook" \
--verbose \
--color=yes \
--suppress-no-test-exit-code \
--splits=${{ parameters.number_of_groups }} \
--group=${{ parameters.group_number }} \
--randomly-seed=$(date "+%Y%m%d") \
--junit-xml=TEST-results-group-${{ parameters.group_number }}.xml
then
[ $? -eq 5 ] && true || false
fi
displayName: Run playbook tests displayName: Run playbook tests
env: env:
IPA_SERVER_HOST: ${{ parameters.scenario }} ANSIBLE_ROLES_PATH: "${PWD}/roles"
RUN_TESTS_IN_DOCKER: true 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_MODULES: ${{ variables.ipa_disabled_modules }}
IPA_DISABLED_TESTS: ${{ variables.ipa_disabled_tests }} IPA_DISABLED_TESTS: ${{ variables.ipa_disabled_tests }}
IPA_VERBOSITY: "-vvv" IPA_VERBOSITY: "-vvv"
IPA_PYTHON_PATH: ${{ parameters.target_python }}
- task: PublishTestResults@2 - task: PublishTestResults@2
inputs: inputs:
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment