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

Switch more ci.yml jobs to optional based on paths changed. #17923

Merged
merged 2 commits into from
Jul 16, 2024

Conversation

ScottTodd
Copy link
Member

The test_amd_mi250 and test_amd_mi300 jobs in particular have been stuck with long queues and should not block merging core project PRs. This changes ci.yml to only run these jobs if files under code paths most likely to affect them are changed. The jobs can still be opted into via ci-extra: job_name git trailers in PR descriptions (see https://iree.dev/developers/general/contributing/#ci-behavior-manipulation).

I also want to change build_test_runtime :: arm64 from ci.yml and Regression Test / test_onnx :: amdgpu_vulkan from pkgci_regression_test.yml, but those jobs are under matrices that can't use

if: contains(fromJson(needs.setup.outputs.enabled-jobs), 'job_name')

At least the pkgci jobs are not blocking PR merges right now.

@ScottTodd ScottTodd added the infrastructure Relating to build systems, CI, or testing label Jul 16, 2024
# Common code likely enough to affect code paths unique to AMDGPU:
"compiler/src/iree/compiler/GlobalOptimization/*",
]

# Jobs to run in presumbit if files under the corresponding path see changes.
Copy link
Member Author

Choose a reason for hiding this comment

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

I also want to change build_test_runtime :: arm64 from ci.yml and Regression Test / test_onnx :: amdgpu_vulkan from pkgci_regression_test.yml, but those jobs are under matrices that can't use

if: contains(fromJson(needs.setup.outputs.enabled-jobs), 'job_name')

At least the pkgci jobs are not blocking PR merges right now.

Definitely want build_test_runtime :: arm64 excluded too. That competes with build_test_all_arm64 for a single runner when LLVM integrate PRs are running 1h+ builds like https://github.com/iree-org/iree/actions/runs/9960816403/job/27520932492.

Strategies: https://stackoverflow.com/questions/65384420/how-do-i-make-a-github-action-matrix-element-conditional

@ScottTodd ScottTodd requested a review from saienduri July 16, 2024 17:28
@ScottTodd ScottTodd marked this pull request as ready for review July 16, 2024 18:45
Copy link
Collaborator

@saienduri saienduri left a comment

Choose a reason for hiding this comment

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

Thanks.

@saienduri
Copy link
Collaborator

Also need to look into the multiple runners off one machine because these queue times are getting longg 😞

@ScottTodd
Copy link
Member Author

Also need to look into the multiple runners off one machine because these queue times are getting longg 😞

Yep. These are the main levers we have for improving CI time:

  1. Add more runners (including multiple runners per physical machine)
  2. Reduce the number of commits / PRs that run each job (opt-in on presubmit, move to nightly or on-demand, etc.)
  3. Make CI jobs faster (e.g. by improving caching, excluding build components or tests, etc.)

Benefits from each of those will multiply as time savings. 2 and 3 will reduce $$$ costs while 1 will generally increase $$$ costs. 3 won't help if the runners themselves are unstable or go offline.

@ScottTodd ScottTodd merged commit ecab8f6 into iree-org:main Jul 16, 2024
48 of 55 checks passed
@ScottTodd ScottTodd deleted the infra-optional-jobs branch July 16, 2024 20:23
LLITCHEV pushed a commit to LLITCHEV/iree that referenced this pull request Jul 30, 2024
…#17923)

The `test_amd_mi250` and `test_amd_mi300` jobs in particular have been
stuck with long queues and should not block merging core project PRs.
This changes `ci.yml` to only run these jobs if files under code paths
most likely to affect them are changed. The jobs can still be opted into
via `ci-extra: job_name` git trailers in PR descriptions (see
https://iree.dev/developers/general/contributing/#ci-behavior-manipulation).

I also want to change `build_test_runtime :: arm64` from `ci.yml` and
`Regression Test / test_onnx :: amdgpu_vulkan` from
`pkgci_regression_test.yml`, but those jobs are under matrices that
can't use
```yml
if: contains(fromJson(needs.setup.outputs.enabled-jobs), 'job_name')
```
At least the pkgci jobs are not blocking PR merges right now.

Signed-off-by: Lubo Litchev <lubol@google.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
infrastructure Relating to build systems, CI, or testing
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants