Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Check if test_branch exists in at least one repo among the ones in repos file #624

Draft
wants to merge 3 commits into
base: master
Choose a base branch
from

Conversation

adityapande-1995
Copy link

@adityapande-1995 adityapande-1995 commented Feb 25, 2022

Currently, if the supplied test_branch is not found in any of the repos in the .repos file, the workflow will just skip it and run CI on the default branches. There should be an error, or at least a warning saying that none of the repos contain the branch, as discussed offline with @clalancette

Closes #620

Signed-off-by: Aditya aditya050995@gmail.com

Signed-off-by: Aditya <aditya050995@gmail.com>
Signed-off-by: Aditya <aditya050995@gmail.com>
Signed-off-by: Aditya <aditya050995@gmail.com>
for filename in repos_filenames:
branch_found = check_branch_exists(filename, args.test_branch)
if not branch_found:
print('Warning: None of the repos in ', filename, ' contain the branch ', args.test_branch)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How visible is this warning? Does it make the job yellow or do we have to notice it in the log?

IMO, it might be better to just abort the job early since it seems most likely not what the user intended and continuing with the build is probably not worth the time.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Agreed; if the user specified a branch, but we couldn't find any of them, let's just abort the build early. It's probably not what was intended. We also have to be careful to succeed if the branch name is empty; that is the "normal" state of affairs, in which case we just want to continue on.

urls = []
for line in lines:
text = line.strip()
if text[-4:] == ".git":
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It'd be nice if there is a vcs command we could use instead. I think checking for a ".git" suffix might be too brittle since I don't think it's a requirement that it's there. Also, since the repositories are already cloned locally, it seems a bit redundant to re-parse the repos files.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That's right, this is too brittle. The .git isn't required (though it is recommended).

Actually, I wonder if it would be better to just parse these repos files as the YAML files they are. That will be way less brittle, and doesn't require us to use os.system (or this brittle parsing) at all.

@adityapande-1995 adityapande-1995 marked this pull request as draft March 10, 2022 17:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

CI should throw an error if CI_BRANCH_TO_TEST is not found in any of the repos
3 participants