mirror of
https://github.com/freeipa/ansible-freeipa.git
synced 2026-06-10 02:35:54 +00:00
Until now ansible-freeipa repository only had playbook tests. This commit introduces the ability of creating TestCase classes connected to the master host. This connection can be used to run commands in the managed host after the ansible playbook execution is the allowing the verification of the machine state.
67 lines
1.8 KiB
YAML
67 lines
1.8 KiB
YAML
|
|
parameters:
|
|
- name: group_number
|
|
type: number
|
|
default: 1
|
|
- name: number_of_groups
|
|
type: number
|
|
default: 1
|
|
- name: scenario
|
|
type: string
|
|
default: centos-8
|
|
- name: ansible_version
|
|
type: string
|
|
default: ">=2.9,<2.10"
|
|
- name: python_version
|
|
type: string
|
|
default: 3.6
|
|
- 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
|
|
steps:
|
|
- task: UsePythonVersion@0
|
|
inputs:
|
|
versionSpec: '${{ parameters.python_version }}'
|
|
|
|
- script: |
|
|
pip install \
|
|
"molecule[docker]>=3" \
|
|
"ansible${{ parameters.ansible_version }}"
|
|
displayName: Install molecule and Ansible
|
|
|
|
- script: pip install -r requirements-tests.txt
|
|
displayName: Install dependencies
|
|
|
|
- script: |
|
|
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 }}
|
|
displayName: Setup test container
|
|
|
|
- script: |
|
|
pytest \
|
|
-m "playbook" \
|
|
--verbose \
|
|
--color=yes \
|
|
--test-group-count=${{ parameters.number_of_groups }} \
|
|
--test-group=${{ parameters.group_number }} \
|
|
--test-group-random-seed=97943259814 \
|
|
--junit-xml=TEST-results-group-${{ parameters.group_number }}.xml
|
|
displayName: Run playbook tests
|
|
env:
|
|
IPA_SERVER_HOST: ${{ parameters.scenario }}
|
|
RUN_TESTS_IN_DOCKER: true
|
|
|
|
- task: PublishTestResults@2
|
|
inputs:
|
|
mergeTestResults: true
|
|
testRunTitle: PlaybookTests-Build${{ parameters.build_number }}
|
|
condition: succeededOrFailed()
|