diff --git a/tests/azure/azure-pipelines.yml b/tests/azure/azure-pipelines.yml index 27eb5700c37b0cdcca84f8712e741c91572c4d1e..8c86ce14eb74594dbe504372affc56756ee82c4a 100644 --- a/tests/azure/azure-pipelines.yml +++ b/tests/azure/azure-pipelines.yml @@ -18,6 +18,17 @@ stages: scenario: fedora-latest ansible_version: "-core >=2.12,<2.13" +# Galaxy on Fedora + +- stage: Galaxy_Fedora_Latest + dependsOn: [] + jobs: + - template: templates/galaxy_tests.yml + parameters: + build_number: $(Build.BuildNumber) + scenario: fedora-latest + ansible_version: "-core >=2.12,<2.13" + # CentOS 9 Stream - stage: CentOS_9_Stream diff --git a/tests/azure/nightly.yml b/tests/azure/nightly.yml index 6926f7fdcde7b71416b9935d4a812c44cc41261f..38908eaeb024c4dd4ccd8429c490a829ef04daeb 100644 --- a/tests/azure/nightly.yml +++ b/tests/azure/nightly.yml @@ -61,6 +61,53 @@ stages: scenario: fedora-latest ansible_version: "-core" +# Galaxy on Fedora + +- stage: Galaxy_FedoraLatest_Ansible_2_9 + dependsOn: [] + jobs: + - template: templates/galaxy_tests.yml + parameters: + build_number: $(Build.BuildNumber) + scenario: fedora-latest + ansible_version: ">=2.9,<2.10" + +- stage: Galaxy_FedoraLatest_Ansible_Core_2_11 + dependsOn: [] + jobs: + - template: templates/galaxy_tests.yml + parameters: + build_number: $(Build.BuildNumber) + scenario: fedora-latest + ansible_version: "-core >=2.11,<2.12" + +# - stage: Galaxy_FedoraLatest_Ansible_Core_2_12 +# dependsOn: [] +# jobs: +# - template: templates/galaxy_tests.yml +# parameters: +# build_number: $(Build.BuildNumber) +# scenario: fedora-latest +# ansible_version: "-core >=2.12,<2.13" + +- stage: Galaxy_FedoraLatest_Ansible_latest + dependsOn: [] + jobs: + - template: templates/galaxy_tests.yml + parameters: + build_number: $(Build.BuildNumber) + scenario: fedora-latest + ansible_version: "" + +- stage: Galaxy_FedoraLatest_Ansible_Core_latest + dependsOn: [] + jobs: + - template: templates/galaxy_tests.yml + parameters: + build_number: $(Build.BuildNumber) + scenario: fedora-latest + ansible_version: "-core" + # CentoOS 9 Stream - stage: c9s_Ansible_2_9 diff --git a/tests/azure/templates/galaxy_pytest_script.yml b/tests/azure/templates/galaxy_pytest_script.yml new file mode 100644 index 0000000000000000000000000000000000000000..1f629b29b6a8246ffd2bf7b666961a5ace444de9 --- /dev/null +++ b/tests/azure/templates/galaxy_pytest_script.yml @@ -0,0 +1,58 @@ +--- +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: 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: ansible-galaxy collection install community.docker ansible.posix + displayName: Install Ansible collections + + - script: pip install -r requirements-tests.txt + displayName: Install dependencies + - script: | + utils/build-galaxy-release.sh -i + molecule create -s ${{ parameters.scenario }} + 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 + + - 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 new file mode 100644 index 0000000000000000000000000000000000000000..b669481891432e0cf9722d763f5a5ba53e017ac8 --- /dev/null +++ b/tests/azure/templates/galaxy_script.yml @@ -0,0 +1,75 @@ +--- +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 + 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: ansible-galaxy collection install community.docker ansible.posix + displayName: Install Ansible collections + + - script: pip install -r requirements-tests.txt + displayName: Install dependencies + + - script: | + utils/build-galaxy-release.sh -i + molecule create -s ${{ parameters.scenario }} + displayName: Setup test container + env: + ANSIBLE_LIBRARY: ./molecule + + - script: | + cd ~/.ansible/collections/ansible_collections/freeipa/ansible_freeipa + 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 + 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() diff --git a/tests/azure/templates/galaxy_tests.yml b/tests/azure/templates/galaxy_tests.yml new file mode 100644 index 0000000000000000000000000000000000000000..dd6c3b9ab003e988d7188ff9315c4e6787962b9c --- /dev/null +++ b/tests/azure/templates/galaxy_tests.yml @@ -0,0 +1,41 @@ +--- +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 }} + +- 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 }} + +- 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 }} + +- template: galaxy_pytest_script.yml + parameters: + build_number: ${{ parameters.build_number }} + scenario: ${{ parameters.scenario }} + ansible_version: ${{ parameters.ansible_version }}