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

codecov pipeline not responding in PRs #3934

Open
actionless opened this issue Jul 2, 2024 · 12 comments · May be fixed by #3947
Open

codecov pipeline not responding in PRs #3934

actionless opened this issue Jul 2, 2024 · 12 comments · May be fixed by #3947

Comments

@actionless
Copy link
Member

i've noticed that lately in all of the currently opened and approved PRs (https://github.com/awesomeWM/awesome/pulls?q=is%3Apr+is%3Aopen+review%3Aapproved), ex. #3927 #3930 #3909

@Aire-One
Copy link
Member

Aire-One commented Jul 3, 2024

Some first investigations:

  • Open some random PR from the list
  • Go to the Checks tab
  • In the Build & Test Block, click the codecov-lua5.3 menu item
  • Unfold either Upload Lua code coverage report or Upload C code coverage report
  • Find a rate limitation error message when Pinging Codecov
{'detail': ErrorDetail(string='Rate limit reached. Please upload with the Codecov repository upload token to resolve issue. Expected time to availability: 3122s.', code='throttled')}{'detail': ErrorDetail(string='Rate limit reached. Please upload with the Codecov repository upload token to resolve issue. Expected time to availability: 3119s.', code='throttled')}{'detail': ErrorDetail(string='Rate limit reached. Please upload with the Codecov repository upload token to resolve issue. Expected time to availability: 3117s.', code='throttled')}{'detail': ErrorDetail(string='Rate limit reached. Please upload with the Codecov repository upload token to resolve issue. Expected time to availability: 3115s.', code='throttled')}{'detail': ErrorDetail(string='Rate limit reached. Please upload with the Codecov repository upload token to resolve issue. Expected time to availability: 3113s.', code='throttled')}{'detail': ErrorDetail(string='Rate limit reached. Please upload with the Codecov repository upload token to resolve issue. Expected time to availability: 3111s.', code='throttled')}

@Aire-One
Copy link
Member

Aire-One commented Jul 3, 2024

Digging in our GitHub Workflow, we install some bash script from codecov (https://github.com/awesomeWM/awesome/blob/master/.github/workflows/main.yml#L243) to manage the coverage upload later (https://github.com/awesomeWM/awesome/blob/master/.github/workflows/main.yml#L324 and https://github.com/awesomeWM/awesome/blob/master/.github/workflows/main.yml#L347)

The bash script headers comment links to https://github.com/codecov/codecov-bash/blob/master/readme.md that is an archived repository with deprecation warnings.

I guess the next step for us is to move to the new uploader, https://about.codecov.io/blog/introducing-codecovs-new-uploader/.

Alternatively, there is now an Action by codecov https://docs.codecov.com/docs/github-2-getting-a-codecov-account-and-uploading-coverage. Maybe it would be easier to simply switch to using it 🤷

@sclu1034
Copy link
Contributor

sclu1034 commented Jul 3, 2024

Changing deprecated tools is probably helpful in the long run, but I would suggest not to ignore error messages when they itself give you instructions on how to fix them:

Please upload with the Codecov repository upload token to resolve

A rate limit is server side, and unless they, for some weird reason, decided that the new tool gets to have a higher rate limit, it's going to run into the same issue.

Someone with access would have to log into codecov, get this repo's token, set that as a secret for actions, and configure the upload step to use it.

@actionless
Copy link
Member Author

actionless commented Jul 12, 2024

i never liked the dependency on those proprietary third-party services

i am thinking - could we just replace it to a bash one-liner which would compare coverage % in the report to nominal and return 0 (pipeline passing) or 1 (pipeline failing)?

@sclu1034
Copy link
Contributor

At that point, you'd be better off removing the check altogether.
codecov's main feature isn't the check mark. It's all the tools it gives you to analyze the data, both changes in coverage over time, and telling you the exact lines that are missing from coverage.

With your "bash one-liner", you'd know nothing about how the PR affects coverage. You wouldn't know if it changed coverage compared to master, and you wouldn't know which lines are or are not covered.


As I said above, the error message very clearly tells you what it wants you to do. Have either of you tried that?

@actionless
Copy link
Member Author

actionless commented Jul 17, 2024

i'd like to keep the check, as it helps to avoid pointless conversations on trying to convince people to cover their new features with some tests :)
those tools are same available in locally generated html report, so i find the really valuable in codecov only the thing which compares PR coverage to master and check coverage of patch itself

ok, mb not a one-liner but a bit more of code, but generally it's not hard to compare the line numbers of the patch and in coverage report - but i was rather thinking if mb there are already existing cli tools for doing so

UPD:
although comparing coverage to master branch would indeed require more effort, as it would mean to store coverage results from that branch somewhere, but i think it would be fine to check just coverage of the patch itself - would give more idea than no coverage check at all


i don't have the permissions to codecov

@Aire-One
Copy link
Member

Have either of you tried that?

I don't have access to the repository secrets on GitHub, so I cannot add the API key for the Actions (even if I can read it on the codecov admin settings)

I think Actionless also don't have access to these GitHub settings. So we are doomed to wait for someone else...

@actionless
Copy link
Member Author

actionless commented Jul 17, 2024

So we are doomed to wait for someone else...

btw for some parts of the infra only @blueyed have the access, not even anyone else, so we have our website not being updated for more than a year 🤦

awesomeWM/awesome-www#171

those problems getting to the point of being just ridiculous

@sclu1034
Copy link
Contributor

sclu1034 commented Jul 17, 2024

we are doomed to wait for someone else...

And this "someone else" shows up once a year, if ever. So I'd say you're doomed for a lot more than that. Not having access to codecov is probably among the least impactful things that could happen.

You might want to try to get a hold of the people that do still have access, especially for the repo. And I don't mean just one ping on GitHub every blue moon. blueyed has an email address in their profile, Elv seems still active on Reddit outside r/Awesome, etc...

@Elv13
Copy link
Member

Elv13 commented Aug 21, 2024

I may or may not have fixed this, but anongit.freedesktop.org is getting DDOSsed, so the CI doesn't get far enough for me to test.

@Aire-One
Copy link
Member

anongit.freedesktop.org is getting DDOSsed, so the CI doesn't get far enough for me to test.

@Elv13: Ru-running today the CI for https://github.com/awesomeWM/awesome/actions/runs/10468278447. The git service seems to be back up now :)

@sclu1034
Copy link
Contributor

The comment at #3884 (comment) is getting edited, which would suggest that Codecov does work in some capacity. #3943 still doesn't get coverage, and the error seems to be

Missing Head Commit
Unable to compare commits because the head commit was not found. Learn more here

(https://app.codecov.io/gh/awesomeWM/awesome/pull/3943)

So I guess a successful workflow run on master is needed, in addition to the PR itself.

@Elv13 Elv13 linked a pull request Aug 25, 2024 that will close this issue
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants