feat(workflows): Reuse validate-release#9736
Conversation
validate-release reusing
22799b8 to
aa147a3
Compare
validate-release reusingvalidate-release
14b10eb to
bb5120f
Compare
7e90918 to
5fa359c
Compare
|
@erezrokah I've updated the code to address merge conflict, it's ready for merge now |
erezrokah
left a comment
There was a problem hiding this comment.
I'm not sure this is working as expected.
For the skip test the wait for all took 15m 23s:

and the AWS workflow took 16m 47s:

I'd expect the wait for all workflow to finish last.
For the non skip test (this PR):
The wait for all took 7m 33s:

and the AWS workflow took 14m10s:

so the gap is even higher.
I recommend scoping this change to a single plugin. That would make it easier to debug and review. If it works for a single plugin, we can add it to others. WDYT?
5fa359c to
c2a68f2
Compare
|
@erezrokah the issue with timelines was caused by the merging one branch into the other (basically, last commit was the same) as it messed a bit with GH trying not to do the same work several times. I've updated the branches and have them diverged a bit, it should help with the proper testing. As for the fact that the AWS source job might take a bit |
|
@erezrokah see https://github.com/cloudquery/cloudquery/actions/runs/4649767311/jobs/8228345356?pr=9760#step:4:625 for the wait for the required workflows reasoning |
|
As I mentioned, it might be easier to test this for a single plugin instead of all of them. Regardless I think we would like to introduce this change incrementally instead of all plugins as the same time. |
@erezrokah seems there's a bug in the logic as we see in here that the following entries triggered the workflows to be marked ready: {"name":"plugins/source/awspricing","conclusion":"success"},
{"name":"plugins/source/awspricing","conclusion":"success"}So we saw a double entry for I can do a separate PR introducing this change only to AWS source testing, and, if we're satisfied with the results, we can merge this and then do refactoring for the other plugin workflows, WDYT? |
I haven't seen this issue before, so we should probably fix it before doing any other CI changes.
That sounds good, but it will have to wait for the fix in the wait for all logic |
|
This SDK PR #9661 doesn't seem to have this issue: |
erezrokah
left a comment
There was a problem hiding this comment.
Added a couple more comments on the code itself, though we should still ensure it works as expected per the previous comments
|
Maybe we can add the reusable workflow without the skip logic at first to simplify things? |
|
The issue is that the reusable workflow will still require the name And the fact that we basically check for the following:
In the run we had issue with we had the same entry counted twice, so that's why we skipped the wait and just went with it. I will create a separate issue to fix the workflow behavior in the following way (I think it's non-blocking for now):
|
|
@erezrokah I've extracted simple (no cgo) |
I think if we have an issue with the wait for all logic, we should fix it first before making other CI changes, otherwise we won't be able to verify the changes we make. Also I haven't seen that issue on other PRs, so we'll need to investigate. We know what happens on this PR, but haven't confirmed the root cause, nor that it happens on all PRs |
I think it might be caused by paging by 100 entries (as this is one of the PRs where we have a lot of actions running). I really think that we can just do it in a separate issue and not make this blocking, as the issue was present even before (take any PR that updates some library for a lot of plugins). Namely, the SDK PR #9661 you mentioned actually has this issue: |
💯 Agree good catch, seems like there's a duplicate for
Let's start with #9793 and log the IDs. I don't think we should introduce non urgent (big) CI changes if we have a bug in our CI. The motivation for introducing re-usable workflows was to simplify the caching logic, but since then we discovered that we won't need to refactor it, and only fix 4 workflows. So re-usable workflows seems to be more about removing code duplication (that we haven't had issues with before). |
#### Summary Related to #9736 (comment). We've seen cases were apparently the GitHub JS SDK returns duplicate check runs, so adding a log for the ID to see what's up. <!--
dd8f6c9 to
6ecc2ab
Compare
|
@erezrokah I've created #9797 to address the duplicates issue (possibly, just do the most obvious filter by ID) and make it working again. |
Can you spot duplicate IDs in https://github.com/cloudquery/cloudquery/actions/runs/4656875292/jobs/8240920196?pr=9736#step:4:381? I did not find any. That run is even worse as it doesn't wait for CLI Windows and AWS |
|
I counted 60 validate release, 60 workflows (CLI, Scaffold and plugins), 4 test policies, UpdateLooks like we're seeing 60 validate release workflows, but expecting 58 (see validate release count in This seems like a different issue than the duplicate IDs, WDYT? |
6ecc2ab to
cfbf8dd
Compare
Co-authored-by: Erez Rokah <erezrokah@users.noreply.github.com>
Co-authored-by: Erez Rokah <erezrokah@users.noreply.github.com>
Co-authored-by: Erez Rokah <erezrokah@users.noreply.github.com>
Co-authored-by: Erez Rokah <erezrokah@users.noreply.github.com>
cfbf8dd to
2fb1c55
Compare
|
Drop for now, will take another shot after #9780 |




This builds on top of ideas from #9668 and can safely replace it.
wait-for-required-workflowschange is required to make it wait for skipped jobs, too.Skip logic is tested via #9760