From 5a5fbfb25b660c4397aa300b32e3f96cadc0185f Mon Sep 17 00:00:00 2001 From: Sergio Oliveira Campos Date: Wed, 24 Jun 2020 15:55:54 -0300 Subject: [PATCH] Added upstream tests to azure pipelines * Moved azure CI definitions from azure-pipelines.yml to tests/azure/azure-pipelines.yml. * Updated azure CI definitions to run playbook tests using docker containers. --- azure-pipelines.yml | 22 --------- tests/azure/azure-pipelines.yml | 43 +++++++++++++++++ tests/azure/templates/playbook_tests.yml | 61 ++++++++++++++++++++++++ 3 files changed, 104 insertions(+), 22 deletions(-) delete mode 100644 azure-pipelines.yml create mode 100644 tests/azure/azure-pipelines.yml create mode 100644 tests/azure/templates/playbook_tests.yml diff --git a/azure-pipelines.yml b/azure-pipelines.yml deleted file mode 100644 index fa73f4a4..00000000 --- a/azure-pipelines.yml +++ /dev/null @@ -1,22 +0,0 @@ -trigger: -- master - -pool: - vmImage: 'ubuntu-18.04' - -steps: -- task: UsePythonVersion@0 - inputs: - versionSpec: '3.6' - -- script: python -m pip install --upgrade pip setuptools wheel - displayName: Install tools - -- script: pip install pydocstyle flake8 - displayName: Install dependencies - -- script: flake8 . - displayName: Run flake8 checks - -- script: pydocstyle . - displayName: Verify docstings diff --git a/tests/azure/azure-pipelines.yml b/tests/azure/azure-pipelines.yml new file mode 100644 index 00000000..5373de43 --- /dev/null +++ b/tests/azure/azure-pipelines.yml @@ -0,0 +1,43 @@ +trigger: +- master + +pool: + vmImage: 'ubuntu-18.04' + +jobs: +- job: RunLinters + displayName: Run Linters + steps: + - task: UsePythonVersion@0 + inputs: + versionSpec: '3.6' + + - script: python -m pip install --upgrade pip setuptools wheel + displayName: Install tools + + - script: pip install pydocstyle flake8 + displayName: Install dependencies + + - script: flake8 . + displayName: Run flake8 checks + + - script: pydocstyle . + displayName: Verify docstings + +- template: templates/playbook_tests.yml + parameters: + group_number: 1 + number_of_groups: 3 + build_number: $(Build.BuildNumber) + +- template: templates/playbook_tests.yml + parameters: + group_number: 2 + number_of_groups: 3 + build_number: $(Build.BuildNumber) + +- template: templates/playbook_tests.yml + parameters: + group_number: 3 + number_of_groups: 3 + build_number: $(Build.BuildNumber) diff --git a/tests/azure/templates/playbook_tests.yml b/tests/azure/templates/playbook_tests.yml new file mode 100644 index 00000000..929f2ffc --- /dev/null +++ b/tests/azure/templates/playbook_tests.yml @@ -0,0 +1,61 @@ + +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 + +jobs: +- job: RunTests${{ parameters.group_number }} + displayName: Run tests ${{ parameters.group_number }}/${{ parameters.number_of_groups }} + steps: + - task: UsePythonVersion@0 + inputs: + versionSpec: '${{ parameters.python_version }}' + + - script: | + pip install \ + "molecule[docker]>=3" \ + "ansible${{ parameters.ansible_version }}" \ + pytest \ + pytest-split-tests + 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 \ + --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()