mirror of
https://github.com/freeipa/ansible-freeipa.git
synced 2026-06-10 18:55:53 +00:00
Some tasks used to setup Azure environment might fail to temporary errors like timeouts and connection failures. Allowing the tasks to retry a few times will allow the test to be correctly executed rather than returning an error that is not related to the feature tested.
86 lines
2.6 KiB
YAML
86 lines
2.6 KiB
YAML
---
|
|
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: 120
|
|
variables:
|
|
- template: variables.yaml
|
|
- template: variables_${{ parameters.scenario }}.yaml
|
|
steps:
|
|
- task: UsePythonVersion@0
|
|
inputs:
|
|
versionSpec: '${{ parameters.python_version }}'
|
|
|
|
- script: |
|
|
pip install \
|
|
"molecule[docker]>=3" \
|
|
"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 }} \
|
|
--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 }}
|
|
|
|
- task: PublishTestResults@2
|
|
inputs:
|
|
mergeTestResults: true
|
|
testRunTitle: PlaybookTests-Build${{ parameters.build_number }}
|
|
condition: succeededOrFailed()
|