Merge pull request #49203 from mattclay/bp-2.6
[stable-2.6] Backport test infra updates and test fixes.
This commit is contained in:
parent
cac34646d5
commit
438b5b82d3
11 changed files with 60 additions and 16 deletions
|
@ -44,6 +44,11 @@ Aliases can be used to skip platforms using one of the following:
|
|||
- ``skip/rhel`` - Skip tests on RHEL.
|
||||
- ``skip/docker`` - Skip tests when running on a Docker container
|
||||
|
||||
Platform versions, as specified using the ``--remote`` option with ``/`` removed, can also be skipped:
|
||||
|
||||
- ``skip/freebsd11.1`` - Skip tests on FreeBSD 11.1.
|
||||
- ``skip/rhel7.6`` - Skip tests on RHEL 7.6.
|
||||
|
||||
Aliases can be used to skip Python major versions using one of the following:
|
||||
|
||||
- ``skip/python2`` - Skip tests on Python 2.x.
|
||||
|
|
|
@ -46,8 +46,7 @@ matrix:
|
|||
- env: T=network
|
||||
|
||||
- env: T=osx/10.11/1
|
||||
- env: T=rhel/7.5/1
|
||||
- env: T=freebsd/10.4/1
|
||||
- env: T=rhel/7.6/1
|
||||
- env: T=freebsd/11.1/1
|
||||
- env: T=linux/centos6/1
|
||||
- env: T=linux/centos7/1
|
||||
|
@ -59,8 +58,7 @@ matrix:
|
|||
- env: T=linux/ubuntu1604py3/1
|
||||
|
||||
- env: T=osx/10.11/2
|
||||
- env: T=rhel/7.5/2
|
||||
- env: T=freebsd/10.4/2
|
||||
- env: T=rhel/7.6/2
|
||||
- env: T=freebsd/11.1/2
|
||||
- env: T=linux/centos6/2
|
||||
- env: T=linux/centos7/2
|
||||
|
@ -72,8 +70,7 @@ matrix:
|
|||
- env: T=linux/ubuntu1604py3/2
|
||||
|
||||
- env: T=osx/10.11/3
|
||||
- env: T=rhel/7.5/3
|
||||
- env: T=freebsd/10.4/3
|
||||
- env: T=rhel/7.6/3
|
||||
- env: T=freebsd/11.1/3
|
||||
- env: T=linux/centos6/3
|
||||
- env: T=linux/centos7/3
|
||||
|
|
|
@ -1,2 +1,3 @@
|
|||
shippable/posix/group2
|
||||
destructive
|
||||
skip/rhel
|
||||
|
|
|
@ -1,4 +1,6 @@
|
|||
- include: "package.yml"
|
||||
when: "ansible_distribution_version not in passwordstore_skip_os.get(ansible_distribution, [])"
|
||||
- include: "tests.yml"
|
||||
when: "ansible_distribution_version not in passwordstore_skip_os.get(ansible_distribution, [])"
|
||||
- block:
|
||||
- include: "package.yml"
|
||||
- include: "tests.yml"
|
||||
when:
|
||||
- not (ansible_distribution == 'RedHat') # requires EPEL
|
||||
- not (ansible_distribution == 'CentOS' and ansible_distribution_version is version_compare('7', '<'))
|
||||
|
|
|
@ -56,7 +56,3 @@ passwordstore_privkey: |
|
|||
SxHTvI2pKk+gx0FB8wWhd/CocAHJpx9oNUs/7A==
|
||||
=ZF3O
|
||||
-----END PGP PRIVATE KEY BLOCK-----
|
||||
passwordstore_skip_os:
|
||||
Ubuntu: ['12.04']
|
||||
RedHat: ['7.4']
|
||||
CentOS: ['6.9', '6.10']
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
freebsd/10.4
|
||||
freebsd/11.1
|
||||
osx/10.11
|
||||
rhel/7.5
|
||||
rhel/7.6
|
||||
|
|
|
@ -409,6 +409,10 @@ def parse_args():
|
|||
shell.set_defaults(func=command_shell,
|
||||
config=ShellConfig)
|
||||
|
||||
shell.add_argument('--raw',
|
||||
action='store_true',
|
||||
help='direct to shell with no setup')
|
||||
|
||||
add_environments(shell, tox_version=True)
|
||||
add_extra_docker_options(shell)
|
||||
add_httptester_options(shell, argparse)
|
||||
|
|
|
@ -134,6 +134,11 @@ class ShellConfig(EnvironmentConfig):
|
|||
"""
|
||||
super(ShellConfig, self).__init__(args, 'shell')
|
||||
|
||||
self.raw = args.raw # type: bool
|
||||
|
||||
if self.raw:
|
||||
self.httptester = False
|
||||
|
||||
|
||||
class SanityConfig(TestConfig):
|
||||
"""Configuration for the sanity command."""
|
||||
|
|
|
@ -334,9 +334,11 @@ def delegate_remote(args, exclude, require, integration_targets):
|
|||
|
||||
core_ci = AnsibleCoreCI(args, platform, version, stage=args.remote_stage, provider=args.remote_provider)
|
||||
success = False
|
||||
raw = False
|
||||
|
||||
if isinstance(args, ShellConfig):
|
||||
use_httptester = args.httptester
|
||||
raw = args.raw
|
||||
else:
|
||||
use_httptester = args.httptester and any('needs/httptester/' in target.aliases for target in integration_targets)
|
||||
|
||||
|
@ -359,6 +361,9 @@ def delegate_remote(args, exclude, require, integration_targets):
|
|||
# Windows doesn't need the ansible-test fluff, just run the SSH command
|
||||
manage = ManageWindowsCI(core_ci)
|
||||
cmd = ['powershell.exe']
|
||||
elif raw:
|
||||
manage = ManagePosixCI(core_ci)
|
||||
cmd = create_shell_command(['bash'])
|
||||
else:
|
||||
options = {
|
||||
'--remote': 1,
|
||||
|
@ -384,6 +389,7 @@ def delegate_remote(args, exclude, require, integration_targets):
|
|||
manage = ManagePosixCI(core_ci)
|
||||
|
||||
manage.setup()
|
||||
|
||||
if isinstance(args, IntegrationConfig):
|
||||
cloud_platforms = get_cloud_providers(args)
|
||||
|
||||
|
@ -394,7 +400,16 @@ def delegate_remote(args, exclude, require, integration_targets):
|
|||
manage.ssh(cmd, ssh_options)
|
||||
success = True
|
||||
finally:
|
||||
download = False
|
||||
|
||||
if platform != 'windows':
|
||||
download = True
|
||||
|
||||
if isinstance(args, ShellConfig):
|
||||
if args.raw:
|
||||
download = False
|
||||
|
||||
if download:
|
||||
manage.ssh('rm -rf /tmp/results && cp -a ansible/test/results /tmp/results && chmod -R a+r /tmp/results')
|
||||
manage.download('/tmp/results', 'test')
|
||||
finally:
|
||||
|
|
|
@ -161,6 +161,10 @@ def install_command_requirements(args, python_version=None):
|
|||
:type args: EnvironmentConfig
|
||||
:type python_version: str | None
|
||||
"""
|
||||
if isinstance(args, ShellConfig):
|
||||
if args.raw:
|
||||
return
|
||||
|
||||
generate_egg_info(args)
|
||||
|
||||
if not args.requirements:
|
||||
|
@ -1628,6 +1632,13 @@ def get_integration_remote_filter(args, targets):
|
|||
display.warning('Excluding tests marked "%s" which are not supported on %s: %s'
|
||||
% (skip.rstrip('/'), platform, ', '.join(skipped)))
|
||||
|
||||
skip = 'skip/%s/' % args.remote.replace('/', '')
|
||||
skipped = [target.name for target in targets if skip in target.aliases]
|
||||
if skipped:
|
||||
exclude.append(skip)
|
||||
display.warning('Excluding tests marked "%s" which are not supported on %s: %s'
|
||||
% (skip.rstrip('/'), args.remote.replace('/', ' '), ', '.join(skipped)))
|
||||
|
||||
python_version = 2 # remotes are expected to default to python 2
|
||||
|
||||
skip = 'skip/python%d/' % python_version
|
||||
|
|
|
@ -24,6 +24,10 @@ from lib.ansible_util import (
|
|||
ansible_environment,
|
||||
)
|
||||
|
||||
from lib.config import (
|
||||
ShellConfig,
|
||||
)
|
||||
|
||||
|
||||
class ManageWindowsCI(object):
|
||||
"""Manage access to a Windows instance provided by Ansible Core CI."""
|
||||
|
@ -203,6 +207,11 @@ class ManagePosixCI(object):
|
|||
def setup(self):
|
||||
"""Start instance and wait for it to become ready and respond to an ansible ping."""
|
||||
self.wait()
|
||||
|
||||
if isinstance(self.core_ci.args, ShellConfig):
|
||||
if self.core_ci.args.raw:
|
||||
return
|
||||
|
||||
self.configure()
|
||||
self.upload_source()
|
||||
|
||||
|
|
Loading…
Reference in a new issue