Skip to content

[CI] Refactor changes detection for check-* in Build/LIT tasks #9760

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

Merged
merged 2 commits into from
Jun 8, 2023

Conversation

aelovikov-intel
Copy link
Contributor

No description provided.

@aelovikov-intel aelovikov-intel requested a review from a team as a code owner June 6, 2023 15:48
@aelovikov-intel aelovikov-intel temporarily deployed to aws June 6, 2023 15:51 — with GitHub Actions Inactive
@aelovikov-intel aelovikov-intel temporarily deployed to aws June 6, 2023 16:03 — with GitHub Actions Inactive
@aelovikov-intel aelovikov-intel temporarily deployed to aws June 6, 2023 16:41 — with GitHub Actions Inactive
@aelovikov-intel aelovikov-intel temporarily deployed to aws June 6, 2023 17:51 — with GitHub Actions Inactive
Copy link
Contributor

@bader bader left a comment

Choose a reason for hiding this comment

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

Please, fix CI failures.

@@ -0,0 +1,48 @@
name: Determine which check-* targets could be affected by the PR
Copy link
Contributor

Choose a reason for hiding this comment

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

Let's use something short. AFAIK, this name appears in places where only first N symbols are displayed. For example https://github.com/intel/llvm/actions (see left side). Another example - https://github.com/intel/llvm/actions/runs/5193089878.

How about "Identify impacted LIT tests"?

Do we have to name the workflow? I see that need_check name is very similar to this.

@@ -0,0 +1,81 @@
name: Run device-agnostic LIT tests (check-*) as part of the build
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
name: Run device-agnostic LIT tests (check-*) as part of the build
name: Device-agnostic LIT tests

@aelovikov-intel
Copy link
Contributor Author

aelovikov-intel commented Jun 7, 2023

Please, fix CI failures.

Yes, I'm working on this in #9762 - testing/developing CI changes is painful...

Updated: strikethrough

@aelovikov-intel aelovikov-intel temporarily deployed to aws June 7, 2023 18:41 — with GitHub Actions Inactive
@aelovikov-intel aelovikov-intel requested a review from bader June 7, 2023 18:47
@aelovikov-intel
Copy link
Contributor Author

Tested in
https://github.com/intel/llvm/actions/runs/5202677130/jobs/9384599493
https://github.com/intel/llvm/actions/runs/5203035591/jobs/9385369569

Unfortunately, composite actions don't provide nice groupings (see https://github.com/orgs/community/discussions/21276) so it might get harder to deal with failures.

@aelovikov-intel aelovikov-intel temporarily deployed to aws June 7, 2023 19:31 — with GitHub Actions Inactive
@bader
Copy link
Contributor

bader commented Jun 7, 2023

Tested in https://github.com/intel/llvm/actions/runs/5202677130/jobs/9384599493 https://github.com/intel/llvm/actions/runs/5203035591/jobs/9385369569

Unfortunately, composite actions don't provide nice groupings (see https://github.com/orgs/community/discussions/21276) so it might get harder to deal with failures.

That's bad. New action output is quite big. It will be difficult to find an error.
Removing always() && could help - the execution will stop after the first failed check-*. But I think having results for all lit checks is quite important for the development.

@aelovikov-intel
Copy link
Contributor Author

That's bad. New action output is quite big. It will be difficult to find an error.

Does it mean that you're against this unification?

@bader
Copy link
Contributor

bader commented Jun 7, 2023

That's bad. New action output is quite big. It will be difficult to find an error.

Does it mean that you're against this unification?

I would say I'm against this implementation. I don't think removing code duplications justifies such user experience degradation.
Alternative implementation might be running just one check-*, which includes all the tests we run as a separate steps today and we filter out tests via LIT_FILTER variable.

@aelovikov-intel
Copy link
Contributor Author

What if I group the logs via

echo "::group::check-llvm"
echo "::endgroup::"

? They will be folded by default and would lack success/failure marking but at least the grouping would be there.

@bader
Copy link
Contributor

bader commented Jun 7, 2023

What if I group the logs via

echo "::group::check-llvm"
echo "::endgroup::"

? They will be folded by default and would lack success/failure marking but at least the grouping would be there.

You would still need to click through all of the groups to find where tests failed.

@aelovikov-intel aelovikov-intel changed the title [CI] Unify check-* in Build/LIT task between Linux/Windows [CI] Refactor changes detection for check-* in Build/LIT tasks Jun 8, 2023
@aelovikov-intel
Copy link
Contributor Author

@@ -94,35 +71,29 @@ jobs:
run: |
cmake --build build --target sycl-toolchain
- name: check-llvm
shell: bash
Copy link
Contributor Author

Choose a reason for hiding this comment

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

I can keep shell: bash if you'd like (although it's noisy), but it seems to work with default shell (CMD) as well.

It's the former that we don't want to run.
@aelovikov-intel aelovikov-intel temporarily deployed to aws June 8, 2023 16:39 — with GitHub Actions Inactive
@@ -27,53 +27,8 @@ permissions:
contents: read

jobs:
Copy link
Contributor

Choose a reason for hiding this comment

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

Do I understand it correctly that we leave post-commit as is because the method to detect impacted tests is different?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

We don't do such detection/filtering there at all.

Copy link
Contributor

Choose a reason for hiding this comment

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

I know and my question is "why?". It looks like a low hanging fruit to speed-up CI.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Two reasons:

  1. I don't feel comfortable doing the switch yet.
  2. I don't think it's necessarily the right choice. Imagine an xptifw test failing. We change that part so rarely that we won't be running it for weeks if not months and it would be easy for the bugs to slip through.

Copy link
Contributor

Choose a reason for hiding this comment

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

2. We change that part so rarely that we won't be running it for weeks if not months and it would be easy for the bugs to slip through.

What king of bugs do you expect to slip through, if there are no code changes?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Commit1 - green
Commit2 - red, regression
CommitN..M - green, because didn't touch that component, regression is still present

Copy link
Contributor

Choose a reason for hiding this comment

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

Commit 2 - red, regression <-- this is where the bug is caught, so I don't how it can "slip through".

Are you trying to say that the gatekeeper who merged commit 2 can skip reporting this issue and failing post-commits for commit N..M expose this issue to other gatekeepers, who will report it?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

That or just a constant reminder that there is an issue if we always test.

@aelovikov-intel aelovikov-intel temporarily deployed to aws June 8, 2023 18:20 — with GitHub Actions Inactive
@aelovikov-intel aelovikov-intel merged commit a230a62 into intel:sycl Jun 8, 2023
@aelovikov-intel aelovikov-intel deleted the refactor-filter branch June 8, 2023 19:08
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.

2 participants