Uh oh!
There was an error while loading. Please reload this page.
Download build artifacts from the backport branch for testing in the main branch - #357
Conversation
c05b589 to
f6ec8f2CompareUh oh!
There was an error while loading. Please reload this page.
leofang
commented
Jan 6, 2025
/ok to test |
f527b33 to
d34a5c2Compareleofang
commented
Jan 6, 2025
/ok to test |
leofang
commented
Jan 6, 2025
/ok to test |
ae72bed to
70651eaCompareleofang
commented
Jan 6, 2025
/ok to test |
1cb91fe to
3abdab5Compareleofang
commented
Jan 6, 2025
/ok to test |
leofang
commented
Jan 6, 2025
/ok to test |
1 similar comment
leofang
commented
Jan 6, 2025
/ok to test |
leofang
commented
Jan 6, 2025
/ok to test |
leofang
commented
Jan 6, 2025
/ok to test |
leofang
commented
Jan 6, 2025
/ok to test |
leofang
commented
Jan 9, 2025
/ok to test |
jakirkham
commented
Jan 9, 2025
Think there is a way to setup a retention policy in repo settings or the workflow. So this might be an option to help manage size Should add without this setting artifacts stick around forever. Removing them in the UI is one at a time. So something to be aware of |
leofang
commented
Jan 9, 2025
/ok to test |
leofang
commented
Jan 9, 2025
Thanks, @jakirkham! None of GHA Cache related comments are relevant anymore since I am moving away from it (#357 (comment)). I'll update the PR title/description once the CI is green. |
leofang
commented
Jan 9, 2025
/ok to test |
mainmain branchmain branchmain branchleofang
commented
Jan 9, 2025
OK commit 75e37bd is basically a rewrite of the whole PR. The result is indeed a lot cleaner as expected. Since we have the capability of fetching artifacts generated from the backport branch ( The new logic is simply:
@ksimpson-work @vzhurba01 this is ready for review. |
| if [[ ${{ matrix.python-version }} == "3.13" ]]; then | ||
| # TODO: remove this hack once cuda-python has a cp313 build | ||
| if [[ $SKIP_CUDA_BINDINGS_TEST == 1 ]]; then |
There was a problem hiding this comment.
Note: this hack can be removed now that we generate Python 3.13 wheels for cuda.bindings 11.8 and can retrieve them in the CI; we do not need them published on PyPI in order to use them!
keenan-simpson
commented
Jan 9, 2025
Correct me if I'm wrong. I want to understand this well. I see two cases: One where you are backporting something to 11.8.x where you would want to test cuda core against the active 11.8.x CI build, in which case you would want to target the latest 11.8.x if it was successfully built, or bail out if there were build errors. Second case is making a change in main, specifically to cuda.core, in which case you would want to test against, not the latest successful CI on 11.8.x, but the top of the 11.8.x tree. This is because if someone was simultaneously testing an 11.8.x change, you might test against an 11.8.x version that is different from what a user would be installing. From my understanding of this change, there's a race condition between (11.8.x CI workflows + merges) and main workflows. WDYT? |
leofang
commented
Jan 9, 2025
Race condition is a legit concern but it is still better than the status quo (no integration test against the head of the backport branch). Moreover, we will set up a nightly CI to reduce the risk (#294) and we already have pre-release QA as the final defense line, so I think it is not very risky and can be improved once our DevOp team take over and iterate toward a more robust implementation. In the first case, if a backport is relevant for cuda.core to work, cuda.core tests would fail unless the backport is merged and rebuilt. So we will know what's going on without a silent green light. The second case is where the race condition could happen IIUC ("which 11.8 build am I testing against?"). |
keenan-simpson
commented
Jan 9, 2025
Ok, I understand that it is a catch 22, and agree that testing against the latest success is far more robust than not testing at all. I just wanted to verbalize that to ensure I correctly understood + make sure we understood that there is a possible improvement there for the DevOps team to address in the future. LGTM |
leofang
commented
Jan 9, 2025
Yes all great questions here! You made me think twice (and long enough to seek for an alternative solution). This is why we need code review 😄 Thanks, Keenan! |
Uh oh!
There was an error while loading. Please reload this page.
Close#329.
Update: Please see #357 (comment).
Refresher: There are two kinds of caches that we can use in GHA, Cache and Artifacts. We've been using Artifacts to store build artifacts, which works fine so far but the main issue is the artifacts are scoped on a per-PR basis, meaning they cannot be reused across CI workflow runs triggered by different PRs.This PR adds the capability of uploading artifacts to the Cache space when a PR is merged into themainbranch, so that they can serve as a fallback when a workflow needs certain artifacts for whatever reason. Note that while the Cache space is limited to 10 GB per repo, for our purpose (we have small wheels) it is still OK as a stop-gap solution, until our DevOp team finds a more sustainable one.I also cleaned up the
shellchoice a bit so that all job steps use the same setting.