Add --remote-terminate
option to ansible-test.
Set `--remote-terminate success` for osx tests.
This commit is contained in:
parent
bb90f5d220
commit
fb9efd3c7e
4 changed files with 13 additions and 2 deletions
|
@ -245,6 +245,7 @@ def delegate_remote(args, exclude, require):
|
||||||
version = parts[1]
|
version = parts[1]
|
||||||
|
|
||||||
core_ci = AnsibleCoreCI(args, platform, version, stage=args.remote_stage)
|
core_ci = AnsibleCoreCI(args, platform, version, stage=args.remote_stage)
|
||||||
|
success = False
|
||||||
|
|
||||||
try:
|
try:
|
||||||
core_ci.start()
|
core_ci.start()
|
||||||
|
@ -277,11 +278,13 @@ def delegate_remote(args, exclude, require):
|
||||||
|
|
||||||
try:
|
try:
|
||||||
manage.ssh(cmd, ssh_options)
|
manage.ssh(cmd, ssh_options)
|
||||||
|
success = True
|
||||||
finally:
|
finally:
|
||||||
manage.ssh('rm -rf /tmp/results && cp -a ansible/test/results /tmp/results')
|
manage.ssh('rm -rf /tmp/results && cp -a ansible/test/results /tmp/results')
|
||||||
manage.download('/tmp/results', 'test')
|
manage.download('/tmp/results', 'test')
|
||||||
finally:
|
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):
|
def generate_command(args, path, options, exclude, require):
|
||||||
|
|
|
@ -467,6 +467,7 @@ class EnvironmentConfig(CommonConfig):
|
||||||
|
|
||||||
self.remote_stage = args.remote_stage # type: str
|
self.remote_stage = args.remote_stage # type: str
|
||||||
self.remote_aws_region = args.remote_aws_region # 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
|
self.requirements = args.requirements # type: bool
|
||||||
|
|
||||||
|
|
|
@ -456,6 +456,7 @@ def add_environments(parser, tox_version=False, tox_only=False):
|
||||||
remote=None,
|
remote=None,
|
||||||
remote_stage=None,
|
remote_stage=None,
|
||||||
remote_aws_region=None,
|
remote_aws_region=None,
|
||||||
|
remote_terminate=None,
|
||||||
)
|
)
|
||||||
|
|
||||||
return
|
return
|
||||||
|
@ -486,6 +487,12 @@ def add_environments(parser, tox_version=False, tox_only=False):
|
||||||
choices=sorted(AWS_ENDPOINTS),
|
choices=sorted(AWS_ENDPOINTS),
|
||||||
default=None)
|
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):
|
def add_extra_docker_options(parser, integration=True):
|
||||||
"""
|
"""
|
||||||
|
|
|
@ -9,4 +9,4 @@ platform="${args[0]}"
|
||||||
version="${args[1]}"
|
version="${args[1]}"
|
||||||
target="posix/ci/"
|
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/"
|
||||||
|
|
Loading…
Reference in a new issue