diff --git a/README.md b/README.md index a7ff8c6f553..40eba0a8281 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,4 @@ # Amazon AWS Collection -[![Shippable build status](https://api.shippable.com/projects/5e4451b6aa9a61000733064c/badge?branch=main)](https://api.shippable.com/projects/5e4451b6aa9a61000733064c/badge?branch=main) -[![Codecov](https://img.shields.io/codecov/c/github/ansible-collections/amazon.aws)](https://codecov.io/gh/ansible-collections/amazon.aws) - The Ansible Amazon AWS collection includes a variety of Ansible content to help automate the management of AWS instances. This collection is maintained by the Ansible cloud team. AWS related modules and plugins supported by the Ansible community are in the [community.aws](https://github.com/ansible-collections/community.aws/) collection. diff --git a/shippable.yml b/shippable.yml deleted file mode 100644 index 03c9fd8ada0..00000000000 --- a/shippable.yml +++ /dev/null @@ -1,26 +0,0 @@ -language: python - -env: - matrix: - - T=none - -matrix: - include: - - env: T=none -branches: - except: - - "*-patch-*" - - "revert-*-*" - -build: - ci: - - tests/utils/shippable/timing.sh tests/utils/shippable/shippable.sh $T - -integrations: - notifications: - - integrationName: email - type: email - on_success: never - on_failure: never - on_start: never - on_pull_request: never diff --git a/tests/integration/targets/aws_az_info/aliases b/tests/integration/targets/aws_az_info/aliases index 157ce0c9d4c..4ef4b2067d0 100644 --- a/tests/integration/targets/aws_az_info/aliases +++ b/tests/integration/targets/aws_az_info/aliases @@ -1,2 +1 @@ cloud/aws -shippable/aws/group3 diff --git a/tests/integration/targets/aws_caller_info/aliases b/tests/integration/targets/aws_caller_info/aliases index 6e3860bee23..4ef4b2067d0 100644 --- a/tests/integration/targets/aws_caller_info/aliases +++ b/tests/integration/targets/aws_caller_info/aliases @@ -1,2 +1 @@ cloud/aws -shippable/aws/group2 diff --git a/tests/integration/targets/aws_s3/aliases b/tests/integration/targets/aws_s3/aliases index 72a9fb4f570..4ef4b2067d0 100644 --- a/tests/integration/targets/aws_s3/aliases +++ b/tests/integration/targets/aws_s3/aliases @@ -1,2 +1 @@ cloud/aws -shippable/aws/group4 diff --git a/tests/integration/targets/cloudformation/aliases b/tests/integration/targets/cloudformation/aliases index 55555be7899..d393681d696 100644 --- a/tests/integration/targets/cloudformation/aliases +++ b/tests/integration/targets/cloudformation/aliases @@ -1,3 +1,2 @@ cloud/aws -shippable/aws/group2 cloudformation_info diff --git a/tests/integration/targets/ec2/aliases b/tests/integration/targets/ec2/aliases index 72a9fb4f570..4ef4b2067d0 100644 --- a/tests/integration/targets/ec2/aliases +++ b/tests/integration/targets/ec2/aliases @@ -1,2 +1 @@ cloud/aws -shippable/aws/group4 diff --git a/tests/integration/targets/ec2_ami/aliases b/tests/integration/targets/ec2_ami/aliases index d74e5f6940c..06784e7285f 100644 --- a/tests/integration/targets/ec2_ami/aliases +++ b/tests/integration/targets/ec2_ami/aliases @@ -1,3 +1,2 @@ cloud/aws -shippable/aws/group3 ec2_ami_info diff --git a/tests/integration/targets/ec2_elb_lb/aliases b/tests/integration/targets/ec2_elb_lb/aliases index 6e3860bee23..4ef4b2067d0 100644 --- a/tests/integration/targets/ec2_elb_lb/aliases +++ b/tests/integration/targets/ec2_elb_lb/aliases @@ -1,2 +1 @@ cloud/aws -shippable/aws/group2 diff --git a/tests/integration/targets/ec2_eni/aliases b/tests/integration/targets/ec2_eni/aliases index 96a59fecbfa..ec37fb69175 100644 --- a/tests/integration/targets/ec2_eni/aliases +++ b/tests/integration/targets/ec2_eni/aliases @@ -1,3 +1,2 @@ cloud/aws -shippable/aws/group1 ec2_eni_info diff --git a/tests/integration/targets/ec2_group/aliases b/tests/integration/targets/ec2_group/aliases index ee717e9903f..508cdc363d9 100644 --- a/tests/integration/targets/ec2_group/aliases +++ b/tests/integration/targets/ec2_group/aliases @@ -1,3 +1,2 @@ cloud/aws -shippable/aws/group2 ec2_group_info diff --git a/tests/integration/targets/ec2_key/aliases b/tests/integration/targets/ec2_key/aliases index 6e3860bee23..4ef4b2067d0 100644 --- a/tests/integration/targets/ec2_key/aliases +++ b/tests/integration/targets/ec2_key/aliases @@ -1,2 +1 @@ cloud/aws -shippable/aws/group2 diff --git a/tests/integration/targets/ec2_metadata_facts/aliases b/tests/integration/targets/ec2_metadata_facts/aliases index 412ce2c05d2..8207e9895cf 100644 --- a/tests/integration/targets/ec2_metadata_facts/aliases +++ b/tests/integration/targets/ec2_metadata_facts/aliases @@ -1,3 +1,2 @@ non_local cloud/aws -shippable/aws/group4 diff --git a/tests/integration/targets/ec2_snapshot/aliases b/tests/integration/targets/ec2_snapshot/aliases index 1dcb36b2838..98b030b4f4e 100644 --- a/tests/integration/targets/ec2_snapshot/aliases +++ b/tests/integration/targets/ec2_snapshot/aliases @@ -1,3 +1,2 @@ cloud/aws -shippable/aws/group4 ec2_snapshot_info diff --git a/tests/integration/targets/ec2_tag/aliases b/tests/integration/targets/ec2_tag/aliases index be56eee8941..326c8845b4f 100644 --- a/tests/integration/targets/ec2_tag/aliases +++ b/tests/integration/targets/ec2_tag/aliases @@ -1,3 +1,2 @@ cloud/aws -shippable/aws/group2 ec2_tag_info diff --git a/tests/integration/targets/ec2_vol/aliases b/tests/integration/targets/ec2_vol/aliases index 16d5ebe7fd6..fa5b0fc759c 100644 --- a/tests/integration/targets/ec2_vol/aliases +++ b/tests/integration/targets/ec2_vol/aliases @@ -1,5 +1,2 @@ -slow - cloud/aws - ec2_vol_info diff --git a/tests/integration/targets/ec2_vpc_dhcp_option/aliases b/tests/integration/targets/ec2_vpc_dhcp_option/aliases index a112c3d1bb2..4ef4b2067d0 100644 --- a/tests/integration/targets/ec2_vpc_dhcp_option/aliases +++ b/tests/integration/targets/ec2_vpc_dhcp_option/aliases @@ -1,2 +1 @@ cloud/aws -shippable/aws/group1 diff --git a/tests/integration/targets/ec2_vpc_net/aliases b/tests/integration/targets/ec2_vpc_net/aliases index fb765ef7677..92bd4d57fec 100644 --- a/tests/integration/targets/ec2_vpc_net/aliases +++ b/tests/integration/targets/ec2_vpc_net/aliases @@ -1,3 +1,2 @@ ec2_vpc_net_info cloud/aws -shippable/aws/group1 diff --git a/tests/integration/targets/ec2_vpc_subnet/aliases b/tests/integration/targets/ec2_vpc_subnet/aliases index 4654de3a88c..5900a37facc 100644 --- a/tests/integration/targets/ec2_vpc_subnet/aliases +++ b/tests/integration/targets/ec2_vpc_subnet/aliases @@ -1,3 +1,2 @@ cloud/aws -shippable/aws/group2 ec2_vpc_subnet_info \ No newline at end of file diff --git a/tests/integration/targets/inventory_aws_ec2/aliases b/tests/integration/targets/inventory_aws_ec2/aliases index a112c3d1bb2..4ef4b2067d0 100644 --- a/tests/integration/targets/inventory_aws_ec2/aliases +++ b/tests/integration/targets/inventory_aws_ec2/aliases @@ -1,2 +1 @@ cloud/aws -shippable/aws/group1 diff --git a/tests/integration/targets/lookup_aws_account_attribute/aliases b/tests/integration/targets/lookup_aws_account_attribute/aliases index 6e3860bee23..4ef4b2067d0 100644 --- a/tests/integration/targets/lookup_aws_account_attribute/aliases +++ b/tests/integration/targets/lookup_aws_account_attribute/aliases @@ -1,2 +1 @@ cloud/aws -shippable/aws/group2 diff --git a/tests/integration/targets/module_utils_core/aliases b/tests/integration/targets/module_utils_core/aliases index 6e3860bee23..4ef4b2067d0 100644 --- a/tests/integration/targets/module_utils_core/aliases +++ b/tests/integration/targets/module_utils_core/aliases @@ -1,2 +1 @@ cloud/aws -shippable/aws/group2 diff --git a/tests/integration/targets/module_utils_ec2/aliases b/tests/integration/targets/module_utils_ec2/aliases index 72a9fb4f570..4ef4b2067d0 100644 --- a/tests/integration/targets/module_utils_ec2/aliases +++ b/tests/integration/targets/module_utils_ec2/aliases @@ -1,2 +1 @@ cloud/aws -shippable/aws/group4 diff --git a/tests/integration/targets/module_utils_waiter/aliases b/tests/integration/targets/module_utils_waiter/aliases index 6e3860bee23..4ef4b2067d0 100644 --- a/tests/integration/targets/module_utils_waiter/aliases +++ b/tests/integration/targets/module_utils_waiter/aliases @@ -1,2 +1 @@ cloud/aws -shippable/aws/group2 diff --git a/tests/integration/targets/s3_bucket/aliases b/tests/integration/targets/s3_bucket/aliases index a112c3d1bb2..4ef4b2067d0 100644 --- a/tests/integration/targets/s3_bucket/aliases +++ b/tests/integration/targets/s3_bucket/aliases @@ -1,2 +1 @@ cloud/aws -shippable/aws/group1 diff --git a/tests/sanity/ignore-2.10.txt b/tests/sanity/ignore-2.10.txt index e0f5f2b20b4..31a4d4c9c6d 100644 --- a/tests/sanity/ignore-2.10.txt +++ b/tests/sanity/ignore-2.10.txt @@ -2,5 +2,3 @@ plugins/modules/ec2_tag.py validate-modules:parameter-state-invalid-choice # De plugins/modules/ec2_vol.py validate-modules:parameter-state-invalid-choice # Deprecated choice that can't be removed until 2022 plugins/module_utils/compat/_ipaddress.py no-assert # Vendored library plugins/module_utils/compat/_ipaddress.py no-unicode-literals # Vendored library -tests/utils/shippable/check_matrix.py replace-urlopen # Standalone script used as part of testing -tests/utils/shippable/timing.py shebang # Standalone script used as part of testing diff --git a/tests/sanity/ignore-2.11.txt b/tests/sanity/ignore-2.11.txt index 10933291976..82cef71c1ff 100644 --- a/tests/sanity/ignore-2.11.txt +++ b/tests/sanity/ignore-2.11.txt @@ -3,5 +3,3 @@ plugins/modules/ec2_vol.py validate-modules:parameter-state-invalid-choice # De plugins/module_utils/compat/_ipaddress.py no-assert # Vendored library plugins/module_utils/compat/_ipaddress.py no-unicode-literals # Vendored library plugins/module_utils/core.py pylint:property-with-parameters # Breaking change required to fix - https://github.com/ansible-collections/amazon.aws/pull/290 -tests/utils/shippable/check_matrix.py replace-urlopen # Standalone script used as part of testing -tests/utils/shippable/timing.py shebang # Standalone script used as part of testing diff --git a/tests/sanity/ignore-2.12.txt b/tests/sanity/ignore-2.12.txt index d2998d1c886..e282e51159e 100644 --- a/tests/sanity/ignore-2.12.txt +++ b/tests/sanity/ignore-2.12.txt @@ -5,5 +5,3 @@ plugins/modules/ec2_vol.py validate-modules:parameter-state-invalid-choice # De plugins/module_utils/compat/_ipaddress.py no-assert # Vendored library plugins/module_utils/compat/_ipaddress.py no-unicode-literals # Vendored library plugins/module_utils/core.py pylint:property-with-parameters # Breaking change required to fix - https://github.com/ansible-collections/amazon.aws/pull/290 -tests/utils/shippable/check_matrix.py replace-urlopen # Standalone script used as part of testing -tests/utils/shippable/timing.py shebang # Standalone script used as part of testing diff --git a/tests/sanity/ignore-2.13.txt b/tests/sanity/ignore-2.13.txt index d2998d1c886..e282e51159e 100644 --- a/tests/sanity/ignore-2.13.txt +++ b/tests/sanity/ignore-2.13.txt @@ -5,5 +5,3 @@ plugins/modules/ec2_vol.py validate-modules:parameter-state-invalid-choice # De plugins/module_utils/compat/_ipaddress.py no-assert # Vendored library plugins/module_utils/compat/_ipaddress.py no-unicode-literals # Vendored library plugins/module_utils/core.py pylint:property-with-parameters # Breaking change required to fix - https://github.com/ansible-collections/amazon.aws/pull/290 -tests/utils/shippable/check_matrix.py replace-urlopen # Standalone script used as part of testing -tests/utils/shippable/timing.py shebang # Standalone script used as part of testing diff --git a/tests/sanity/ignore-2.14.txt b/tests/sanity/ignore-2.14.txt index d2998d1c886..e282e51159e 100644 --- a/tests/sanity/ignore-2.14.txt +++ b/tests/sanity/ignore-2.14.txt @@ -5,5 +5,3 @@ plugins/modules/ec2_vol.py validate-modules:parameter-state-invalid-choice # De plugins/module_utils/compat/_ipaddress.py no-assert # Vendored library plugins/module_utils/compat/_ipaddress.py no-unicode-literals # Vendored library plugins/module_utils/core.py pylint:property-with-parameters # Breaking change required to fix - https://github.com/ansible-collections/amazon.aws/pull/290 -tests/utils/shippable/check_matrix.py replace-urlopen # Standalone script used as part of testing -tests/utils/shippable/timing.py shebang # Standalone script used as part of testing diff --git a/tests/sanity/ignore-2.9.txt b/tests/sanity/ignore-2.9.txt index c60f59d36f1..80e8103ce3e 100644 --- a/tests/sanity/ignore-2.9.txt +++ b/tests/sanity/ignore-2.9.txt @@ -15,5 +15,3 @@ plugins/modules/ec2_vpc_subnet_info.py pylint:ansible-deprecated-no-version # W plugins/module_utils/compat/_ipaddress.py no-assert # Vendored library plugins/module_utils/compat/_ipaddress.py no-unicode-literals # Vendored library plugins/module_utils/ec2.py pylint:ansible-deprecated-no-version # We use dates for deprecations, Ansible 2.9 only supports this for compatability -tests/utils/shippable/check_matrix.py replace-urlopen # Standalone script used as part of testing -tests/utils/shippable/timing.py shebang # Standalone script used as part of testing diff --git a/tests/utils/shippable/aws.sh b/tests/utils/shippable/aws.sh deleted file mode 100755 index d76c32282d0..00000000000 --- a/tests/utils/shippable/aws.sh +++ /dev/null @@ -1,19 +0,0 @@ -#!/usr/bin/env bash - -set -o pipefail -eux - -declare -a args -IFS='/:' read -ra args <<< "$1" - -cloud="${args[0]}" -python="${args[1]}" -group="${args[2]}" - -target="shippable/${cloud}/group${group}/" - -stage="${S:-prod}" - -# shellcheck disable=SC2086 -ansible-test integration --color -v --retry-on-error "${target}" ${COVERAGE:+"$COVERAGE"} ${CHANGED:+"$CHANGED"} ${UNSTABLE:+"$UNSTABLE"} \ - --remote-terminate always --remote-stage "${stage}" \ - --docker --python "${python}" diff --git a/tests/utils/shippable/check_matrix.py b/tests/utils/shippable/check_matrix.py deleted file mode 100755 index 2ec5cc36597..00000000000 --- a/tests/utils/shippable/check_matrix.py +++ /dev/null @@ -1,120 +0,0 @@ -#!/usr/bin/env python -"""Verify the currently executing Shippable test matrix matches the one defined in the "shippable.yml" file.""" -from __future__ import (absolute_import, division, print_function) -__metaclass__ = type - -import datetime -import json -import os -import re -import sys -import time - -try: - from typing import NoReturn -except ImportError: - NoReturn = None - -try: - # noinspection PyCompatibility - from urllib2 import urlopen # pylint: disable=ansible-bad-import-from -except ImportError: - # noinspection PyCompatibility - from urllib.request import urlopen - - -def main(): # type: () -> None - """Main entry point.""" - repo_full_name = os.environ['REPO_FULL_NAME'] - required_repo_full_name = 'ansible-collections/amazon.aws' - - if repo_full_name != required_repo_full_name: - sys.stderr.write('Skipping matrix check on repo "%s" which is not "%s".\n' % (repo_full_name, required_repo_full_name)) - return - - with open('shippable.yml', 'rb') as yaml_file: - yaml = yaml_file.read().decode('utf-8').splitlines() - - defined_matrix = [match.group(1) for match in [re.search(r'^ *- env: T=(.*)$', line) for line in yaml] if match and match.group(1) != 'none'] - - if not defined_matrix: - fail('No matrix entries found in the "shippable.yml" file.', - 'Did you modify the "shippable.yml" file?') - - run_id = os.environ['SHIPPABLE_BUILD_ID'] - sleep = 1 - jobs = [] - - for attempts_remaining in range(4, -1, -1): - try: - jobs = json.loads(urlopen('https://api.shippable.com/jobs?runIds=%s' % run_id).read()) - - if not isinstance(jobs, list): - raise Exception('Shippable run %s data is not a list.' % run_id) - - break - except Exception as ex: - if not attempts_remaining: - fail('Unable to retrieve Shippable run %s matrix.' % run_id, - str(ex)) - - sys.stderr.write('Unable to retrieve Shippable run %s matrix: %s\n' % (run_id, ex)) - sys.stderr.write('Trying again in %d seconds...\n' % sleep) - time.sleep(sleep) - sleep *= 2 - - if len(jobs) != len(defined_matrix): - if len(jobs) == 1: - hint = '\n\nMake sure you do not use the "Rebuild with SSH" option.' - else: - hint = '' - - fail('Shippable run %s has %d jobs instead of the expected %d jobs.' % (run_id, len(jobs), len(defined_matrix)), - 'Try re-running the entire matrix.%s' % hint) - - actual_matrix = dict((job.get('jobNumber'), dict(tuple(line.split('=', 1)) for line in job.get('env', [])).get('T', '')) for job in jobs) - errors = [(job_number, test, actual_matrix.get(job_number)) for job_number, test in enumerate(defined_matrix, 1) if actual_matrix.get(job_number) != test] - - if len(errors): - error_summary = '\n'.join('Job %s expected "%s" but found "%s" instead.' % (job_number, expected, actual) for job_number, expected, actual in errors) - - fail('Shippable run %s has a job matrix mismatch.' % run_id, - 'Try re-running the entire matrix.\n\n%s' % error_summary) - - -def fail(message, output): # type: (str, str) -> NoReturn - # Include a leading newline to improve readability on Shippable "Tests" tab. - # Without this, the first line becomes indented. - output = '\n' + output.strip() - - timestamp = datetime.datetime.utcnow().replace(microsecond=0).isoformat() - - # hack to avoid requiring junit-xml, which isn't pre-installed on Shippable outside our test containers - xml = ''' - - -\t -\t\t -\t\t\t%s -\t\t -\t - -''' % (timestamp, message, output) - - path = 'shippable/testresults/check-matrix.xml' - dir_path = os.path.dirname(path) - - if not os.path.exists(dir_path): - os.makedirs(dir_path) - - with open(path, 'w') as junit_fd: - junit_fd.write(xml.lstrip()) - - sys.stderr.write(message + '\n') - sys.stderr.write(output + '\n') - - sys.exit(1) - - -if __name__ == '__main__': - main() diff --git a/tests/utils/shippable/sanity.sh b/tests/utils/shippable/sanity.sh deleted file mode 100755 index dd1e68b9357..00000000000 --- a/tests/utils/shippable/sanity.sh +++ /dev/null @@ -1,14 +0,0 @@ -#!/usr/bin/env bash - -set -o pipefail -eux - -if [ "${BASE_BRANCH:-}" ]; then - base_branch="origin/${BASE_BRANCH}" -else - base_branch="" -fi - -# shellcheck disable=SC2086 -ansible-test sanity --color -v --junit ${COVERAGE:+"$COVERAGE"} ${CHANGED:+"$CHANGED"} \ - --docker --base-branch "${base_branch}" \ - --allow-disabled diff --git a/tests/utils/shippable/shippable.sh b/tests/utils/shippable/shippable.sh deleted file mode 100755 index dd52e04065b..00000000000 --- a/tests/utils/shippable/shippable.sh +++ /dev/null @@ -1,172 +0,0 @@ -#!/usr/bin/env bash - -set -o pipefail -eux - -declare -a args -IFS='/:' read -ra args <<< "$1" - -script="${args[0]}" - -test="$1" - -docker images ansible/ansible -docker images quay.io/ansible/* -docker ps - -for container in $(docker ps --format '{{.Image}} {{.ID}}' | grep -v '^drydock/' | sed 's/^.* //'); do - docker rm -f "${container}" || true # ignore errors -done - -docker ps - -if [ -d /home/shippable/cache/ ]; then - ls -la /home/shippable/cache/ -fi - -command -v python -python -V - -command -v pip -pip --version -pip list --disable-pip-version-check - -export PATH="${PWD}/bin:${PATH}" -export PYTHONIOENCODING='utf-8' - -if [ "${JOB_TRIGGERED_BY_NAME:-}" == "nightly-trigger" ]; then - COVERAGE=yes - COMPLETE=yes -fi - -if [ -n "${COVERAGE:-}" ]; then - # on-demand coverage reporting triggered by setting the COVERAGE environment variable to a non-empty value - export COVERAGE="--coverage" -elif [[ "${COMMIT_MESSAGE}" =~ ci_coverage ]]; then - # on-demand coverage reporting triggered by having 'ci_coverage' in the latest commit message - export COVERAGE="--coverage" -else - # on-demand coverage reporting disabled (default behavior, always-on coverage reporting remains enabled) - export COVERAGE="--coverage-check" -fi - -if [ -n "${COMPLETE:-}" ]; then - # disable change detection triggered by setting the COMPLETE environment variable to a non-empty value - export CHANGED="" -elif [[ "${COMMIT_MESSAGE}" =~ ci_complete ]]; then - # disable change detection triggered by having 'ci_complete' in the latest commit message - export CHANGED="" -else - # enable change detection (default behavior) - export CHANGED="--changed" -fi - -if [ "${IS_PULL_REQUEST:-}" == "true" ]; then - # run unstable tests which are targeted by focused changes on PRs - export UNSTABLE="--allow-unstable-changed" -else - # do not run unstable tests outside PRs - export UNSTABLE="" -fi - -virtualenv --python /usr/bin/python3.7 ~/ansible-venv -set +ux -. ~/ansible-venv/bin/activate -set -ux - -pip install setuptools==44.1.0 - -pip install https://github.com/ansible/ansible/archive/"${A_REV:-devel}".tar.gz --disable-pip-version-check - -#ansible-galaxy collection install community.general -mkdir -p "${HOME}/.ansible/collections/ansible_collections/community" -mkdir -p "${HOME}/.ansible/collections/ansible_collections/google" -mkdir -p "${HOME}/.ansible/collections/ansible_collections/openstack" -cwd=$(pwd) -cd "${HOME}/.ansible/collections/ansible_collections/" -git clone https://github.com/ansible-collections/community.general community/general -git clone https://github.com/ansible-collections/community.aws community/aws -# community.general requires a lot of things we need to manual pull in -# once community.general is published this will be handled by galaxy cli -git clone https://github.com/ansible-collections/ansible_collections_google google/cloud -git clone https://opendev.org/openstack/ansible-collections-openstack openstack/cloud -ansible-galaxy collection install ansible.netcommon -cd "${cwd}" - -export ANSIBLE_COLLECTIONS_PATHS="${HOME}/.ansible/" -SHIPPABLE_RESULT_DIR="$(pwd)/shippable" -TEST_DIR="${HOME}/.ansible/collections/ansible_collections/amazon/aws/" -mkdir -p "${TEST_DIR}" -cp -aT "${SHIPPABLE_BUILD_DIR}" "${TEST_DIR}" -cd "${TEST_DIR}" - -function cleanup -{ - if [ -d tests/output/coverage/ ]; then - if find tests/output/coverage/ -mindepth 1 -name '.*' -prune -o -print -quit | grep -q .; then - # for complete on-demand coverage generate a report for all files with no coverage on the "other" job so we only have one copy - if [ "${COVERAGE}" == "--coverage" ] && [ "${CHANGED}" == "" ] && [ "${test}" == "sanity/1" ]; then - stub="--stub" - else - stub="" - fi - - # shellcheck disable=SC2086 - ansible-test coverage xml --color --requirements --group-by command --group-by version ${stub:+"$stub"} - cp -a tests/output/reports/coverage=*.xml "$SHIPPABLE_RESULT_DIR/codecoverage/" - - # analyze and capture code coverage aggregated by integration test target if not on 2.9, default if unspecified is devel - if [ -z "${A_REV:-}" ] || [ "${A_REV:-}" != "stable-2.9" ]; then - ansible-test coverage analyze targets generate -v "$SHIPPABLE_RESULT_DIR/testresults/coverage-analyze-targets.json" - fi - - # upload coverage report to codecov.io only when using complete on-demand coverage - if [ "${COVERAGE}" == "--coverage" ] && [ "${CHANGED}" == "" ]; then - for file in tests/output/reports/coverage=*.xml; do - flags="${file##*/coverage=}" - flags="${flags%-powershell.xml}" - flags="${flags%.xml}" - # remove numbered component from stub files when converting to tags - flags="${flags//stub-[0-9]*/stub}" - flags="${flags//=/,}" - flags="${flags//[^a-zA-Z0-9_,]/_}" - - bash <(curl -s https://codecov.io/bash) \ - -f "${file}" \ - -F "${flags}" \ - -n "${test}" \ - -t bc371da7-e5d2-4743-93b5-309f81d457a4 \ - -X coveragepy \ - -X gcov \ - -X fix \ - -X search \ - -X xcode \ - || echo "Failed to upload code coverage report to codecov.io: ${file}" - done - fi - fi - fi - if [ -d tests/output/junit/ ]; then - cp -aT tests/output/junit/ "$SHIPPABLE_RESULT_DIR/testresults/" - fi - - if [ -d tests/output/data/ ]; then - cp -a tests/output/data/ "$SHIPPABLE_RESULT_DIR/testresults/" - fi - - if [ -d tests/output/bot/ ]; then - cp -aT tests/output/bot/ "$SHIPPABLE_RESULT_DIR/testresults/" - fi -} - -trap cleanup EXIT - -if [[ "${COVERAGE:-}" == "--coverage" ]]; then - timeout=60 -else - timeout=45 -fi - -ansible-test env --dump --show --timeout "${timeout}" --color -v - -"tests/utils/shippable/check_matrix.py" -"tests/utils/shippable/${script}.sh" "${test}" diff --git a/tests/utils/shippable/timing.py b/tests/utils/shippable/timing.py deleted file mode 100755 index fb538271b84..00000000000 --- a/tests/utils/shippable/timing.py +++ /dev/null @@ -1,16 +0,0 @@ -#!/usr/bin/env python3.7 -from __future__ import (absolute_import, division, print_function) -__metaclass__ = type - -import sys -import time - -start = time.time() - -sys.stdin.reconfigure(errors='surrogateescape') -sys.stdout.reconfigure(errors='surrogateescape') - -for line in sys.stdin: - seconds = time.time() - start - sys.stdout.write('%02d:%02d %s' % (seconds // 60, seconds % 60, line)) - sys.stdout.flush() diff --git a/tests/utils/shippable/timing.sh b/tests/utils/shippable/timing.sh deleted file mode 100755 index 77e25783046..00000000000 --- a/tests/utils/shippable/timing.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/usr/bin/env bash - -set -o pipefail -eu - -"$@" 2>&1 | "$(dirname "$0")/timing.py" diff --git a/tests/utils/shippable/units.sh b/tests/utils/shippable/units.sh deleted file mode 100755 index dc115dec15e..00000000000 --- a/tests/utils/shippable/units.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/usr/bin/env bash - -set -o pipefail -eux - -declare -a args -IFS='/:' read -ra args <<< "$1" - -version="${args[1]}" - -# shellcheck disable=SC2086 -ansible-test units --color -v --docker default --python "${version}" ${COVERAGE:+"$COVERAGE"} ${CHANGED:+"$CHANGED"} \