Skip to content

Commit f160cab

Browse files
committed
Add test for source repo validity
1 parent 0cdd86e commit f160cab

1 file changed

Lines changed: 20 additions & 4 deletions

File tree

scripts/validate-source-repos.py

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@ def read_repos_data():
1515
'r') as file:
1616
data = yaml.safe_load(file)
1717
ansible_repositories = data['source_repositories']
18-
19-
return terraform_repositories, ansible_repositories
18+
maintained_releases = data['maintained_releases']
19+
return terraform_repositories, ansible_repositories, maintained_releases
2020

2121

2222
def get_repos_diff(tf_repos, ans_repos):
@@ -65,8 +65,18 @@ def get_mismatched_repos(tf_repos, ans_repos, repos_missing):
6565
return list(set(mismatched_repos).difference(set(repos_missing)))
6666

6767

68+
def validate_source_repositories(source_repos, maintained_releases):
69+
issues = []
70+
maintained_set = {str(r) for r in maintained_releases}
71+
for reponame, repodata in source_repos.items():
72+
synced_releases = [str(r) for r in repodata.get('synced_releases', [])]
73+
invalid_releases = set(synced_releases) - maintained_set
74+
if invalid_releases:
75+
issues.append(f'Repo "{reponame}" is trying to sync releases that are not maintained: {sorted(invalid_releases)}')
76+
return issues
77+
6878
def main():
69-
terraform_repos, ansible_repos = read_repos_data()
79+
terraform_repos, ansible_repos, maintained_releases = read_repos_data()
7080

7181
repos_missing = get_repos_diff(terraform_repos, ansible_repos)
7282

@@ -80,7 +90,13 @@ def main():
8090
'the Ansible source-repositories and the Terraform tfvars: '
8191
f'{mismatched_repos}')
8292

83-
return len(repos_missing) > 0 or len(mismatched_repos) > 0
93+
source_repos_issues = validate_source_repositories(ansible_repos, maintained_releases)
94+
for issue in source_repos_issues:
95+
print(issue)
96+
97+
if repos_missing or mismatched_repos or source_repos_issues:
98+
return 1
99+
return 0
84100

85101

86102
if __name__ == "__main__":

0 commit comments

Comments
 (0)