Add --remote-terminate option to ansible-test.

Set `--remote-terminate success` for osx tests.
This commit is contained in:
Matt Clay 2017-05-11 21:21:11 +08:00
parent bb90f5d220
commit fb9efd3c7e
4 changed files with 13 additions and 2 deletions

View file

@ -245,6 +245,7 @@ def delegate_remote(args, exclude, require):
version = parts[1]
core_ci = AnsibleCoreCI(args, platform, version, stage=args.remote_stage)
success = False
try:
core_ci.start()
@ -277,11 +278,13 @@ def delegate_remote(args, exclude, require):
try:
manage.ssh(cmd, ssh_options)
success = True
finally:
manage.ssh('rm -rf /tmp/results && cp -a ansible/test/results /tmp/results')
manage.download('/tmp/results', 'test')
finally:
pass
if args.remote_terminate == 'always' or (args.remote_terminate == 'success' and success):
core_ci.stop()
def generate_command(args, path, options, exclude, require):

View file

@ -467,6 +467,7 @@ class EnvironmentConfig(CommonConfig):
self.remote_stage = args.remote_stage # type: str
self.remote_aws_region = args.remote_aws_region # type: str
self.remote_terminate = args.remote_terminate # type: str
self.requirements = args.requirements # type: bool

View file

@ -456,6 +456,7 @@ def add_environments(parser, tox_version=False, tox_only=False):
remote=None,
remote_stage=None,
remote_aws_region=None,
remote_terminate=None,
)
return
@ -486,6 +487,12 @@ def add_environments(parser, tox_version=False, tox_only=False):
choices=sorted(AWS_ENDPOINTS),
default=None)
remote.add_argument('--remote-terminate',
metavar='WHEN',
help='terminate remote instance: %(choices)s (default: %(default)s)',
choices=['never', 'always', 'success'],
default='never')
def add_extra_docker_options(parser, integration=True):
"""

View file

@ -9,4 +9,4 @@ platform="${args[0]}"
version="${args[1]}"
target="posix/ci/"
ansible-test integration --color -v --retry-on-error "${target}" --remote "${platform}/${version}" --exclude "posix/ci/cloud/"
ansible-test integration --color -v --retry-on-error "${target}" --remote "${platform}/${version}" --remote-terminate success --exclude "posix/ci/cloud/"