diff options
Diffstat (limited to 'test/lib/ansible_test/_internal/ci')
-rw-r--r-- | test/lib/ansible_test/_internal/ci/__init__.py | 4 | ||||
-rw-r--r-- | test/lib/ansible_test/_internal/ci/azp.py | 20 | ||||
-rw-r--r-- | test/lib/ansible_test/_internal/ci/local.py | 4 |
3 files changed, 16 insertions, 12 deletions
diff --git a/test/lib/ansible_test/_internal/ci/__init__.py b/test/lib/ansible_test/_internal/ci/__init__.py index 3d0f79e83a..84d357990a 100644 --- a/test/lib/ansible_test/_internal/ci/__init__.py +++ b/test/lib/ansible_test/_internal/ci/__init__.py @@ -61,8 +61,8 @@ class CIProvider(metaclass=abc.ABCMeta): """Return a resource prefix specific to this CI provider.""" @abc.abstractmethod - def get_base_branch(self): # type: () -> str - """Return the base branch or an empty string.""" + def get_base_commit(self, args: CommonConfig) -> str: + """Return the base commit or an empty string.""" @abc.abstractmethod def detect_changes(self, args): # type: (TestConfig) -> t.Optional[t.List[str]] diff --git a/test/lib/ansible_test/_internal/ci/azp.py b/test/lib/ansible_test/_internal/ci/azp.py index d5b3999ae3..a573f8ce05 100644 --- a/test/lib/ansible_test/_internal/ci/azp.py +++ b/test/lib/ansible_test/_internal/ci/azp.py @@ -43,6 +43,8 @@ class AzurePipelines(CIProvider): def __init__(self): self.auth = AzurePipelinesAuthHelper() + self._changes: AzurePipelinesChanges | None = None + @staticmethod def is_supported(): # type: () -> bool """Return True if this provider is supported in the current running environment.""" @@ -71,18 +73,20 @@ class AzurePipelines(CIProvider): return prefix - def get_base_branch(self): # type: () -> str - """Return the base branch or an empty string.""" - base_branch = os.environ.get('SYSTEM_PULLREQUEST_TARGETBRANCH') or os.environ.get('BUILD_SOURCEBRANCHNAME') + def get_base_commit(self, args: CommonConfig) -> str: + """Return the base commit or an empty string.""" + return self._get_changes(args).base_commit or '' - if base_branch: - base_branch = 'origin/%s' % base_branch + def _get_changes(self, args: CommonConfig) -> AzurePipelinesChanges: + """Return an AzurePipelinesChanges instance, which will be created on first use.""" + if not self._changes: + self._changes = AzurePipelinesChanges(args) - return base_branch or '' + return self._changes def detect_changes(self, args): # type: (TestConfig) -> t.Optional[t.List[str]] """Initialize change detection.""" - result = AzurePipelinesChanges(args) + result = self._get_changes(args) if result.is_pr: job_type = 'pull request' @@ -128,7 +132,7 @@ class AzurePipelines(CIProvider): def get_git_details(self, args): # type: (CommonConfig) -> t.Optional[t.Dict[str, t.Any]] """Return details about git in the current environment.""" - changes = AzurePipelinesChanges(args) + changes = self._get_changes(args) details = dict( base_commit=changes.base_commit, diff --git a/test/lib/ansible_test/_internal/ci/local.py b/test/lib/ansible_test/_internal/ci/local.py index e127753381..38954f2056 100644 --- a/test/lib/ansible_test/_internal/ci/local.py +++ b/test/lib/ansible_test/_internal/ci/local.py @@ -62,8 +62,8 @@ class Local(CIProvider): return prefix - def get_base_branch(self): # type: () -> str - """Return the base branch or an empty string.""" + def get_base_commit(self, args: CommonConfig) -> str: + """Return the base commit or an empty string.""" return '' def detect_changes(self, args): # type: (TestConfig) -> t.Optional[t.List[str]] |