diff --git a/.azure-pipelines/README.md b/.azure-pipelines/README.md deleted file mode 100644 index 385e70bac5..0000000000 --- a/.azure-pipelines/README.md +++ /dev/null @@ -1,3 +0,0 @@ -## Azure Pipelines Configuration - -Please see the [Documentation](https://github.com/ansible/community/wiki/Testing:-Azure-Pipelines) for more information. diff --git a/.azure-pipelines/azure-pipelines.yml b/.azure-pipelines/azure-pipelines.yml deleted file mode 100644 index c4e9691eaf..0000000000 --- a/.azure-pipelines/azure-pipelines.yml +++ /dev/null @@ -1,330 +0,0 @@ -trigger: - batch: true - branches: - include: - - main - - stable-* - -pr: - autoCancel: true - branches: - include: - - main - - stable-* - -schedules: - - cron: 0 8 * * * - displayName: Nightly (main) - always: true - branches: - include: - - main - - cron: 0 10 * * * - displayName: Nightly (active stable branches) - always: true - branches: - include: - - stable-5 - - cron: 0 11 * * 0 - displayName: Weekly (old stable branches) - always: true - branches: - include: - - stable-4 - -variables: - - name: checkoutPath - value: ansible_collections/community/general - - name: coverageBranches - value: main - - name: pipelinesCoverage - value: coverage - - name: entryPoint - value: tests/utils/shippable/shippable.sh - - name: fetchDepth - value: 0 - -resources: - containers: - - container: default - image: quay.io/ansible/azure-pipelines-test-container:3.0.0 - -pool: Standard - -stages: -### Sanity - - stage: Sanity_2_14 - displayName: Sanity 2.14 - dependsOn: [] - jobs: - - template: templates/matrix.yml - parameters: - nameFormat: Test {0} - testFormat: 2.14/sanity/{0} - targets: - - test: 1 - - test: 2 - - test: 3 - - test: 4 - - test: extra - - stage: Sanity_2_13 - displayName: Sanity 2.13 - dependsOn: [] - jobs: - - template: templates/matrix.yml - parameters: - nameFormat: Test {0} - testFormat: 2.13/sanity/{0} - targets: - - test: 1 - - test: 2 - - test: 3 - - test: 4 - - stage: Sanity_2_12 - displayName: Sanity 2.12 - dependsOn: [] - jobs: - - template: templates/matrix.yml - parameters: - nameFormat: Test {0} - testFormat: 2.12/sanity/{0} - targets: - - test: 1 - - test: 2 - - test: 3 - - test: 4 -### Units - - stage: Units_2_14 - displayName: Units 2.14 - dependsOn: [] - jobs: - - template: templates/matrix.yml - parameters: - nameFormat: Python {0} - testFormat: 2.14/units/{0}/1 - targets: - - test: 2.7 - - test: 3.5 - - test: 3.6 - - test: 3.7 - - test: 3.8 - - test: 3.9 - - test: '3.10' - - stage: Units_2_13 - displayName: Units 2.13 - dependsOn: [] - jobs: - - template: templates/matrix.yml - parameters: - nameFormat: Python {0} - testFormat: 2.13/units/{0}/1 - targets: - - test: 2.7 - - test: 3.6 - - test: 3.8 - - test: 3.9 - - stage: Units_2_12 - displayName: Units 2.12 - dependsOn: [] - jobs: - - template: templates/matrix.yml - parameters: - nameFormat: Python {0} - testFormat: 2.12/units/{0}/1 - targets: - - test: 2.6 - - test: 3.5 - - test: 3.8 - -## Remote - - stage: Remote_2_14 - displayName: Remote 2.14 - dependsOn: [] - jobs: - - template: templates/matrix.yml - parameters: - testFormat: 2.14/{0} - targets: - - name: macOS 12.0 - test: macos/12.0 - - name: RHEL 7.9 - test: rhel/7.9 - - name: RHEL 9.0 - test: rhel/9.0 - - name: FreeBSD 12.3 - test: freebsd/12.3 - - name: FreeBSD 13.1 - test: freebsd/13.1 - groups: - - 1 - - 2 - - 3 - - stage: Remote_2_13 - displayName: Remote 2.13 - dependsOn: [] - jobs: - - template: templates/matrix.yml - parameters: - testFormat: 2.13/{0} - targets: - - name: macOS 12.0 - test: macos/12.0 - - name: RHEL 8.5 - test: rhel/8.5 - groups: - - 1 - - 2 - - 3 - - stage: Remote_2_12 - displayName: Remote 2.12 - dependsOn: [] - jobs: - - template: templates/matrix.yml - parameters: - testFormat: 2.12/{0} - targets: - - name: macOS 11.1 - test: macos/11.1 - - name: RHEL 8.4 - test: rhel/8.4 - - name: FreeBSD 13.0 - test: freebsd/13.0 - groups: - - 1 - - 2 - -### Docker - - stage: Docker_2_14 - displayName: Docker 2.14 - dependsOn: [] - jobs: - - template: templates/matrix.yml - parameters: - testFormat: 2.14/linux/{0} - targets: - - name: CentOS 7 - test: centos7 - - name: Fedora 36 - test: fedora36 - - name: openSUSE 15 - test: opensuse15 - - name: Ubuntu 20.04 - test: ubuntu2004 - - name: Ubuntu 22.04 - test: ubuntu2204 - - name: Alpine 3 - test: alpine3 - groups: - - 1 - - 2 - - 3 - - stage: Docker_2_13 - displayName: Docker 2.13 - dependsOn: [] - jobs: - - template: templates/matrix.yml - parameters: - testFormat: 2.13/linux/{0} - targets: - - name: Fedora 35 - test: fedora35 - - name: openSUSE 15 py2 - test: opensuse15py2 - - name: Alpine 3 - test: alpine3 - groups: - - 1 - - 2 - - 3 - - stage: Docker_2_12 - displayName: Docker 2.12 - dependsOn: [] - jobs: - - template: templates/matrix.yml - parameters: - testFormat: 2.12/linux/{0} - targets: - - name: CentOS 6 - test: centos6 - - name: Fedora 34 - test: fedora34 - - name: Ubuntu 18.04 - test: ubuntu1804 - groups: - - 1 - - 2 - - 3 - -### Community Docker - - stage: Docker_community_2_14 - displayName: Docker (community images) 2.14 - dependsOn: [] - jobs: - - template: templates/matrix.yml - parameters: - testFormat: 2.14/linux-community/{0} - targets: - - name: Debian Bullseye - test: debian-bullseye/3.9 - - name: ArchLinux - test: archlinux/3.11 - - name: CentOS Stream 8 - test: centos-stream8/3.9 - groups: - - 1 - - 2 - - 3 - -### Cloud - - stage: Cloud_2_14 - displayName: Cloud 2.14 - dependsOn: [] - jobs: - - template: templates/matrix.yml - parameters: - nameFormat: Python {0} - testFormat: 2.14/cloud/{0}/1 - targets: - - test: 2.7 - - test: '3.10' - - stage: Cloud_2_13 - displayName: Cloud 2.13 - dependsOn: [] - jobs: - - template: templates/matrix.yml - parameters: - nameFormat: Python {0} - testFormat: 2.13/cloud/{0}/1 - targets: - - test: 3.9 - - stage: Cloud_2_12 - displayName: Cloud 2.12 - dependsOn: [] - jobs: - - template: templates/matrix.yml - parameters: - nameFormat: Python {0} - testFormat: 2.12/cloud/{0}/1 - targets: - - test: 3.8 - - stage: Summary - condition: succeededOrFailed() - dependsOn: - - Sanity_2_14 - - Sanity_2_12 - - Sanity_2_13 - - Units_2_14 - - Units_2_12 - - Units_2_13 - - Remote_2_14 - - Remote_2_12 - - Remote_2_13 - - Docker_2_14 - - Docker_2_12 - - Docker_2_13 - - Docker_community_2_14 - - Cloud_2_14 - - Cloud_2_12 - - Cloud_2_13 - jobs: - - template: templates/coverage.yml diff --git a/.azure-pipelines/scripts/aggregate-coverage.sh b/.azure-pipelines/scripts/aggregate-coverage.sh deleted file mode 100755 index 51fae879d8..0000000000 --- a/.azure-pipelines/scripts/aggregate-coverage.sh +++ /dev/null @@ -1,24 +0,0 @@ -#!/usr/bin/env bash -# Aggregate code coverage results for later processing. - -set -o pipefail -eu - -agent_temp_directory="$1" - -PATH="${PWD}/bin:${PATH}" - -mkdir "${agent_temp_directory}/coverage/" - -if [[ "$(ansible --version)" =~ \ 2\.9\. ]]; then - exit -fi - -options=(--venv --venv-system-site-packages --color -v) - -ansible-test coverage combine --group-by command --export "${agent_temp_directory}/coverage/" "${options[@]}" - -if ansible-test coverage analyze targets generate --help >/dev/null 2>&1; then - # Only analyze coverage if the installed version of ansible-test supports it. - # Doing so allows this script to work unmodified for multiple Ansible versions. - ansible-test coverage analyze targets generate "${agent_temp_directory}/coverage/coverage-analyze-targets.json" "${options[@]}" -fi diff --git a/.azure-pipelines/scripts/combine-coverage.py b/.azure-pipelines/scripts/combine-coverage.py deleted file mode 100755 index 506ade6460..0000000000 --- a/.azure-pipelines/scripts/combine-coverage.py +++ /dev/null @@ -1,60 +0,0 @@ -#!/usr/bin/env python -""" -Combine coverage data from multiple jobs, keeping the data only from the most recent attempt from each job. -Coverage artifacts must be named using the format: "Coverage $(System.JobAttempt) {StableUniqueNameForEachJob}" -The recommended coverage artifact name format is: Coverage $(System.JobAttempt) $(System.StageDisplayName) $(System.JobDisplayName) -Keep in mind that Azure Pipelines does not enforce unique job display names (only names). -It is up to pipeline authors to avoid name collisions when deviating from the recommended format. -""" - -from __future__ import (absolute_import, division, print_function) -__metaclass__ = type - -import os -import re -import shutil -import sys - - -def main(): - """Main program entry point.""" - source_directory = sys.argv[1] - - if '/ansible_collections/' in os.getcwd(): - output_path = "tests/output" - else: - output_path = "test/results" - - destination_directory = os.path.join(output_path, 'coverage') - - if not os.path.exists(destination_directory): - os.makedirs(destination_directory) - - jobs = {} - count = 0 - - for name in os.listdir(source_directory): - match = re.search('^Coverage (?P[0-9]+) (?P