--- 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[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: | 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 }} \ --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()