Skip to content

[CI]: run cuda.core example_tests on Linux and Windows#1722

Merged
rwgk merged 1 commit intoNVIDIA:mainfrom
rwgk:ci_cuda_core_examples_tests
Mar 4, 2026
Merged

[CI]: run cuda.core example_tests on Linux and Windows#1722
rwgk merged 1 commit intoNVIDIA:mainfrom
rwgk:ci_cuda_core_examples_tests

Conversation

@rwgk
Copy link
Collaborator

@rwgk rwgk commented Mar 4, 2026

Similar to #1517

Trigger for this PR: #1718 (comment)

* ci: run cuda.core examples on Linux
* ci: run cuda.core examples on Windows

Add pytest step to run cuda.core example tests following the same
pattern as cuda.bindings examples from PR NVIDIA#1517. The step runs
`pytest -ra -s -vv tests/example_tests/` from within the cuda_core
directory, matching the pattern used in QA testing.

Trigger for this change: NVIDIA#1718 (comment)

Made-with: Cursor
@rwgk rwgk self-assigned this Mar 4, 2026
@copy-pr-bot
Copy link
Contributor

copy-pr-bot bot commented Mar 4, 2026

Auto-sync is disabled for draft pull requests in this repository. Workflows must be run manually.

Contributors can view more details about this message here.

@rwgk
Copy link
Collaborator Author

rwgk commented Mar 4, 2026

/ok to test

@rwgk rwgk changed the title [CI]: run cuda.core examples on Linux and Windows [CI]: run cuda.core example_tests on Linux and Windows Mar 4, 2026
LOCAL_CTK: ${{ matrix.LOCAL_CTK }}
run: |
pushd cuda_core
${SANITIZER_CMD} pytest -ra -s -vv tests/example_tests/
Copy link
Contributor

Choose a reason for hiding this comment

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

You'll probably need to ignore the gl_whatever_its_called.py example because it opens a GUI.

Copy link
Contributor

Choose a reason for hiding this comment

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

Ah, it might recognize if it's running in a headless environment.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

gl_interop_plasma.py? Everything passes, and gl_interop_plasma.py appears in the log files, looks like we're good:

smc120-0009.ipp2a2.colossus.nvidia.com:/wrk/logs_22687747293 $ grep -a 'Z tests/example_tests/test_basic_examples.py::TestExamples::test_example.*gl_interop_plasma\.py.*PASSED\s*$' Test*.txt
Test_linux-64___py3.10__12.9.1__local__v100.txt:2026-03-04T20:37:28.5956257Z tests/example_tests/test_basic_examples.py::TestExamples::test_example[/__w/cuda-python/cuda-python/cuda_core/tests/example_tests/../../examples/gl_interop_plasma.py] PASSED
Test_linux-64___py3.10__13.0.2__wheels__l4.txt:2026-03-04T20:42:19.4890240Z tests/example_tests/test_basic_examples.py::TestExamples::test_example[/__w/cuda-python/cuda-python/cuda_core/tests/example_tests/../../examples/gl_interop_plasma.py] PASSED
Test_linux-64___py3.10__13.1.1__wheels__l4.txt:2026-03-04T20:37:45.0199030Z tests/example_tests/test_basic_examples.py::TestExamples::test_example[/__w/cuda-python/cuda-python/cuda_core/tests/example_tests/../../examples/gl_interop_plasma.py] PASSED
Test_linux-64___py3.11__12.9.1__wheels__rtxpro6000.txt:2026-03-04T20:37:28.4359072Z tests/example_tests/test_basic_examples.py::TestExamples::test_example[/__w/cuda-python/cuda-python/cuda_core/tests/example_tests/../../examples/gl_interop_plasma.py] PASSED
Test_linux-64___py3.11__13.0.2__local__l4.txt:2026-03-04T20:39:46.6374217Z tests/example_tests/test_basic_examples.py::TestExamples::test_example[/__w/cuda-python/cuda-python/cuda_core/tests/example_tests/../../examples/gl_interop_plasma.py] PASSED
Test_linux-64___py3.11__13.1.1__local__l4.txt:2026-03-04T20:39:32.5141526Z tests/example_tests/test_basic_examples.py::TestExamples::test_example[/__w/cuda-python/cuda-python/cuda_core/tests/example_tests/../../examples/gl_interop_plasma.py] PASSED
Test_linux-64___py3.12__12.9.1__local__l4.txt:2026-03-04T20:42:11.0531344Z tests/example_tests/test_basic_examples.py::TestExamples::test_example[/__w/cuda-python/cuda-python/cuda_core/tests/example_tests/../../examples/gl_interop_plasma.py] PASSED
Test_linux-64___py3.12__13.0.2__wheels__l4.txt:2026-03-04T20:38:03.5080576Z tests/example_tests/test_basic_examples.py::TestExamples::test_example[/__w/cuda-python/cuda-python/cuda_core/tests/example_tests/../../examples/gl_interop_plasma.py] PASSED
Test_linux-64___py3.12__13.1.1__wheels__l4.txt:2026-03-04T20:39:09.8614338Z tests/example_tests/test_basic_examples.py::TestExamples::test_example[/__w/cuda-python/cuda-python/cuda_core/tests/example_tests/../../examples/gl_interop_plasma.py] PASSED
Test_linux-64___py3.13__12.9.1__wheels__v100.txt:2026-03-04T20:36:58.7279975Z tests/example_tests/test_basic_examples.py::TestExamples::test_example[/__w/cuda-python/cuda-python/cuda_core/tests/example_tests/../../examples/gl_interop_plasma.py] PASSED
Test_linux-64___py3.13__13.0.2__local__h100.txt:2026-03-04T20:39:18.8673758Z tests/example_tests/test_basic_examples.py::TestExamples::test_example[/__w/cuda-python/cuda-python/cuda_core/tests/example_tests/../../examples/gl_interop_plasma.py] PASSED
Test_linux-64___py3.13__13.0.2__local__rtxpro6000.txt:2026-03-04T20:38:40.0154967Z tests/example_tests/test_basic_examples.py::TestExamples::test_example[/__w/cuda-python/cuda-python/cuda_core/tests/example_tests/../../examples/gl_interop_plasma.py] PASSED
Test_linux-64___py3.13__13.1.1__local__h100.txt:2026-03-04T20:39:27.4572316Z tests/example_tests/test_basic_examples.py::TestExamples::test_example[/__w/cuda-python/cuda-python/cuda_core/tests/example_tests/../../examples/gl_interop_plasma.py] PASSED
Test_linux-64___py3.13__13.1.1__local__rtxpro6000.txt:2026-03-04T20:39:30.9817595Z tests/example_tests/test_basic_examples.py::TestExamples::test_example[/__w/cuda-python/cuda-python/cuda_core/tests/example_tests/../../examples/gl_interop_plasma.py] PASSED
Test_linux-64___py3.14__12.9.1__wheels__t4.txt:2026-03-04T20:36:53.2345545Z tests/example_tests/test_basic_examples.py::TestExamples::test_example[/__w/cuda-python/cuda-python/cuda_core/tests/example_tests/../../examples/gl_interop_plasma.py] PASSED
Test_linux-64___py3.14__13.0.2__local__l4.txt:2026-03-04T20:52:54.2735443Z tests/example_tests/test_basic_examples.py::TestExamples::test_example[/__w/cuda-python/cuda-python/cuda_core/tests/example_tests/../../examples/gl_interop_plasma.py] PASSED
Test_linux-64___py3.14__13.1.1__local__l4.txt:2026-03-04T20:42:11.4887439Z tests/example_tests/test_basic_examples.py::TestExamples::test_example[/__w/cuda-python/cuda-python/cuda_core/tests/example_tests/../../examples/gl_interop_plasma.py] PASSED
Test_linux-64___py3.14__13.1.1__local__t4_x2_.txt:2026-03-04T20:39:47.9964215Z tests/example_tests/test_basic_examples.py::TestExamples::test_example[/__w/cuda-python/cuda-python/cuda_core/tests/example_tests/../../examples/gl_interop_plasma.py] PASSED
Test_linux-64___py3.14t__12.9.1__local__t4.txt:2026-03-04T20:38:24.7021407Z tests/example_tests/test_basic_examples.py::TestExamples::test_example[/__w/cuda-python/cuda-python/cuda_core/tests/example_tests/../../examples/gl_interop_plasma.py] PASSED
Test_linux-64___py3.14t__13.0.2__local__l4.txt:2026-03-04T20:42:13.5530745Z tests/example_tests/test_basic_examples.py::TestExamples::test_example[/__w/cuda-python/cuda-python/cuda_core/tests/example_tests/../../examples/gl_interop_plasma.py] PASSED
Test_linux-64___py3.14t__13.1.1__local__h100_x2_.txt:2026-03-04T20:40:42.4566057Z tests/example_tests/test_basic_examples.py::TestExamples::test_example[/__w/cuda-python/cuda-python/cuda_core/tests/example_tests/../../examples/gl_interop_plasma.py] PASSED
Test_linux-64___py3.14t__13.1.1__local__l4.txt:2026-03-04T20:40:22.9051876Z tests/example_tests/test_basic_examples.py::TestExamples::test_example[/__w/cuda-python/cuda-python/cuda_core/tests/example_tests/../../examples/gl_interop_plasma.py] PASSED
Test_linux-aarch64___py3.10__12.9.1__local__a100.txt:2026-03-04T20:47:31.7950752Z tests/example_tests/test_basic_examples.py::TestExamples::test_example[/__w/cuda-python/cuda-python/cuda_core/tests/example_tests/../../examples/gl_interop_plasma.py] PASSED
Test_linux-aarch64___py3.10__13.0.2__wheels__a100.txt:2026-03-04T20:49:35.9059455Z tests/example_tests/test_basic_examples.py::TestExamples::test_example[/__w/cuda-python/cuda-python/cuda_core/tests/example_tests/../../examples/gl_interop_plasma.py] PASSED
Test_linux-aarch64___py3.10__13.1.1__wheels__a100.txt:2026-03-04T20:48:29.9005103Z tests/example_tests/test_basic_examples.py::TestExamples::test_example[/__w/cuda-python/cuda-python/cuda_core/tests/example_tests/../../examples/gl_interop_plasma.py] PASSED
Test_linux-aarch64___py3.11__12.9.1__wheels__a100.txt:2026-03-04T20:46:53.9342138Z tests/example_tests/test_basic_examples.py::TestExamples::test_example[/__w/cuda-python/cuda-python/cuda_core/tests/example_tests/../../examples/gl_interop_plasma.py] PASSED
Test_linux-aarch64___py3.11__13.0.2__local__a100.txt:2026-03-04T20:39:52.6934387Z tests/example_tests/test_basic_examples.py::TestExamples::test_example[/__w/cuda-python/cuda-python/cuda_core/tests/example_tests/../../examples/gl_interop_plasma.py] PASSED
Test_linux-aarch64___py3.11__13.1.1__local__a100.txt:2026-03-04T20:40:33.4007955Z tests/example_tests/test_basic_examples.py::TestExamples::test_example[/__w/cuda-python/cuda-python/cuda_core/tests/example_tests/../../examples/gl_interop_plasma.py] PASSED
Test_linux-aarch64___py3.12__12.9.1__local__a100.txt:2026-03-04T20:41:21.9518512Z tests/example_tests/test_basic_examples.py::TestExamples::test_example[/__w/cuda-python/cuda-python/cuda_core/tests/example_tests/../../examples/gl_interop_plasma.py] PASSED
Test_linux-aarch64___py3.12__13.0.2__wheels__a100.txt:2026-03-04T20:38:44.2248174Z tests/example_tests/test_basic_examples.py::TestExamples::test_example[/__w/cuda-python/cuda-python/cuda_core/tests/example_tests/../../examples/gl_interop_plasma.py] PASSED
Test_linux-aarch64___py3.12__13.1.1__wheels__a100.txt:2026-03-04T20:47:52.0587311Z tests/example_tests/test_basic_examples.py::TestExamples::test_example[/__w/cuda-python/cuda-python/cuda_core/tests/example_tests/../../examples/gl_interop_plasma.py] PASSED
Test_linux-aarch64___py3.13__12.9.1__wheels__a100.txt:2026-03-04T20:37:48.7115208Z tests/example_tests/test_basic_examples.py::TestExamples::test_example[/__w/cuda-python/cuda-python/cuda_core/tests/example_tests/../../examples/gl_interop_plasma.py] PASSED
Test_linux-aarch64___py3.13__13.0.2__local__a100.txt:2026-03-04T20:40:51.0509162Z tests/example_tests/test_basic_examples.py::TestExamples::test_example[/__w/cuda-python/cuda-python/cuda_core/tests/example_tests/../../examples/gl_interop_plasma.py] PASSED
Test_linux-aarch64___py3.13__13.1.1__local__a100.txt:2026-03-04T20:40:39.6844913Z tests/example_tests/test_basic_examples.py::TestExamples::test_example[/__w/cuda-python/cuda-python/cuda_core/tests/example_tests/../../examples/gl_interop_plasma.py] PASSED
Test_linux-aarch64___py3.14__12.9.1__wheels__a100.txt:2026-03-04T20:37:44.8633062Z tests/example_tests/test_basic_examples.py::TestExamples::test_example[/__w/cuda-python/cuda-python/cuda_core/tests/example_tests/../../examples/gl_interop_plasma.py] PASSED
Test_linux-aarch64___py3.14__13.0.2__local__a100.txt:2026-03-04T20:48:18.0945987Z tests/example_tests/test_basic_examples.py::TestExamples::test_example[/__w/cuda-python/cuda-python/cuda_core/tests/example_tests/../../examples/gl_interop_plasma.py] PASSED
Test_linux-aarch64___py3.14__13.1.1__local__a100.txt:2026-03-04T20:40:21.9695581Z tests/example_tests/test_basic_examples.py::TestExamples::test_example[/__w/cuda-python/cuda-python/cuda_core/tests/example_tests/../../examples/gl_interop_plasma.py] PASSED
Test_linux-aarch64___py3.14t__12.9.1__local__a100.txt:2026-03-04T20:38:50.6349273Z tests/example_tests/test_basic_examples.py::TestExamples::test_example[/__w/cuda-python/cuda-python/cuda_core/tests/example_tests/../../examples/gl_interop_plasma.py] PASSED
Test_linux-aarch64___py3.14t__13.0.2__wheels__a100.txt:2026-03-04T20:48:51.5645256Z tests/example_tests/test_basic_examples.py::TestExamples::test_example[/__w/cuda-python/cuda-python/cuda_core/tests/example_tests/../../examples/gl_interop_plasma.py] PASSED
Test_linux-aarch64___py3.14t__13.1.1__local__a100.txt:2026-03-04T20:40:16.1794664Z tests/example_tests/test_basic_examples.py::TestExamples::test_example[/__w/cuda-python/cuda-python/cuda_core/tests/example_tests/../../examples/gl_interop_plasma.py] PASSED
Test_win-64___py3.10__12.9.1__wheels__rtx2080__WDDM_.txt:2026-03-04T20:45:41.8404757Z tests/example_tests/test_basic_examples.py::TestExamples::test_example[C:\\actions-runner\\_work\\cuda-python\\cuda-python\\cuda_core\\tests\\example_tests\\..\\..\\examples\\gl_interop_plasma.py] PASSED
Test_win-64___py3.10__13.0.2__local__rtxpro6000__TCC_.txt:2026-03-04T20:53:32.3338588Z tests/example_tests/test_basic_examples.py::TestExamples::test_example[C:\\actions-runner\\_work\\cuda-python\\cuda-python\\cuda_core\\tests\\example_tests\\..\\..\\examples\\gl_interop_plasma.py] PASSED
Test_win-64___py3.10__13.1.1__local__rtxpro6000__TCC_.txt:2026-03-04T20:54:31.7378929Z tests/example_tests/test_basic_examples.py::TestExamples::test_example[C:\\actions-runner\\_work\\cuda-python\\cuda-python\\cuda_core\\tests\\example_tests\\..\\..\\examples\\gl_interop_plasma.py] PASSED
Test_win-64___py3.11__12.9.1__local__v100__MCDM_.txt:2026-03-04T20:53:55.8589131Z tests/example_tests/test_basic_examples.py::TestExamples::test_example[C:\\actions-runner\\_work\\cuda-python\\cuda-python\\cuda_core\\tests\\example_tests\\..\\..\\examples\\gl_interop_plasma.py] PASSED
Test_win-64___py3.11__13.0.2__wheels__rtx4090__WDDM_.txt:2026-03-04T20:48:30.6048729Z tests/example_tests/test_basic_examples.py::TestExamples::test_example[C:\\actions-runner\\_work\\cuda-python\\cuda-python\\cuda_core\\tests\\example_tests\\..\\..\\examples\\gl_interop_plasma.py] PASSED
Test_win-64___py3.11__13.1.1__wheels__rtx4090__WDDM_.txt:2026-03-04T20:47:02.6290951Z tests/example_tests/test_basic_examples.py::TestExamples::test_example[C:\\actions-runner\\_work\\cuda-python\\cuda-python\\cuda_core\\tests\\example_tests\\..\\..\\examples\\gl_interop_plasma.py] PASSED
Test_win-64___py3.12__12.9.1__wheels__l4__MCDM_.txt:2026-03-04T20:48:18.9765667Z tests/example_tests/test_basic_examples.py::TestExamples::test_example[C:\\actions-runner\\_work\\cuda-python\\cuda-python\\cuda_core\\tests\\example_tests\\..\\..\\examples\\gl_interop_plasma.py] PASSED
Test_win-64___py3.12__13.0.2__local__a100__TCC_.txt:2026-03-04T20:49:07.9970735Z tests/example_tests/test_basic_examples.py::TestExamples::test_example[C:\\actions-runner\\_work\\cuda-python\\cuda-python\\cuda_core\\tests\\example_tests\\..\\..\\examples\\gl_interop_plasma.py] PASSED
Test_win-64___py3.12__13.1.1__local__a100__TCC_.txt:2026-03-04T20:59:39.9822230Z tests/example_tests/test_basic_examples.py::TestExamples::test_example[C:\\actions-runner\\_work\\cuda-python\\cuda-python\\cuda_core\\tests\\example_tests\\..\\..\\examples\\gl_interop_plasma.py] PASSED
Test_win-64___py3.13__12.9.1__local__l4__TCC_.txt:2026-03-04T20:47:05.8663580Z tests/example_tests/test_basic_examples.py::TestExamples::test_example[C:\\actions-runner\\_work\\cuda-python\\cuda-python\\cuda_core\\tests\\example_tests\\..\\..\\examples\\gl_interop_plasma.py] PASSED
Test_win-64___py3.13__13.0.2__wheels__rtxpro6000__MCDM_.txt:2026-03-04T20:51:42.5550400Z tests/example_tests/test_basic_examples.py::TestExamples::test_example[C:\\actions-runner\\_work\\cuda-python\\cuda-python\\cuda_core\\tests\\example_tests\\..\\..\\examples\\gl_interop_plasma.py] PASSED
Test_win-64___py3.13__13.1.1__wheels__rtxpro6000__MCDM_.txt:2026-03-04T20:50:17.1798928Z tests/example_tests/test_basic_examples.py::TestExamples::test_example[C:\\actions-runner\\_work\\cuda-python\\cuda-python\\cuda_core\\tests\\example_tests\\..\\..\\examples\\gl_interop_plasma.py] PASSED
Test_win-64___py3.14__12.9.1__wheels__v100__TCC_.txt:2026-03-04T20:45:11.7283555Z tests/example_tests/test_basic_examples.py::TestExamples::test_example[C:\\actions-runner\\_work\\cuda-python\\cuda-python\\cuda_core\\tests\\example_tests\\..\\..\\examples\\gl_interop_plasma.py] PASSED
Test_win-64___py3.14__13.0.2__local__l4__MCDM_.txt:2026-03-04T20:53:27.8894606Z tests/example_tests/test_basic_examples.py::TestExamples::test_example[C:\\actions-runner\\_work\\cuda-python\\cuda-python\\cuda_core\\tests\\example_tests\\..\\..\\examples\\gl_interop_plasma.py] PASSED
Test_win-64___py3.14__13.1.1__local__l4__MCDM_.txt:2026-03-04T20:53:49.6302783Z tests/example_tests/test_basic_examples.py::TestExamples::test_example[C:\\actions-runner\\_work\\cuda-python\\cuda-python\\cuda_core\\tests\\example_tests\\..\\..\\examples\\gl_interop_plasma.py] PASSED
Test_win-64___py3.14t__12.9.1__local__l4__TCC_.txt:2026-03-04T21:03:10.7241498Z tests/example_tests/test_basic_examples.py::TestExamples::test_example[C:\\actions-runner\\_work\\cuda-python\\cuda-python\\cuda_core\\tests\\example_tests\\..\\..\\examples\\gl_interop_plasma.py] PASSED
Test_win-64___py3.14t__13.0.2__wheels__a100__MCDM_.txt:2026-03-04T20:45:52.8894257Z tests/example_tests/test_basic_examples.py::TestExamples::test_example[C:\\actions-runner\\_work\\cuda-python\\cuda-python\\cuda_core\\tests\\example_tests\\..\\..\\examples\\gl_interop_plasma.py] PASSED
Test_win-64___py3.14t__13.1.1__wheels__a100__MCDM_.txt:2026-03-04T20:46:20.6037025Z tests/example_tests/test_basic_examples.py::TestExamples::test_example[C:\\actions-runner\\_work\\cuda-python\\cuda-python\\cuda_core\\tests\\example_tests\\..\\..\\examples\\gl_interop_plasma.py] PASSED

@github-actions

This comment has been minimized.

@rwgk rwgk marked this pull request as ready for review March 4, 2026 22:09
@copy-pr-bot
Copy link
Contributor

copy-pr-bot bot commented Mar 4, 2026

Auto-sync is disabled for ready for review pull requests in this repository. Workflows must be run manually.

Contributors can view more details about this message here.

@rwgk rwgk merged commit 4a58adb into NVIDIA:main Mar 4, 2026
86 checks passed
@rwgk rwgk deleted the ci_cuda_core_examples_tests branch March 4, 2026 22:09
@github-actions

This comment has been minimized.

1 similar comment
@github-actions
Copy link

github-actions bot commented Mar 5, 2026

Doc Preview CI
Preview removed because the pull request was closed or merged.

@leofang
Copy link
Member

leofang commented Mar 5, 2026

Sorry, @rwgk can we please revert this PR? The cuda.core example tests are already running in the CI on Day 1, and we are now running them twice.

@leofang
Copy link
Member

leofang commented Mar 5, 2026

See https://github.com/NVIDIA/cuda-python/tree/main/cuda_core/tests/example_tests for how it works. I would suggest that we apply this to cuda-bindings as well. Then we don't need to touch any CI code to special-case for examples.

leofang added a commit to leofang/cuda-python that referenced this pull request Mar 5, 2026
@leofang
Copy link
Member

leofang commented Mar 5, 2026

See #1723

@rparolin
Copy link
Collaborator

rparolin commented Mar 5, 2026

@rwgk @cpcloud Please revert this change as @leofang points out this will run the examples twice.

1. run-tests core (line 87 of ci/tools/run-tests) runs:
  pytest -rxXs -v --durations=0 --randomly-dont-reorganize tests/
  1. This collects everything under cuda_core/tests/, which includes tests/example_tests/ since the pytest.ini only excludes cython.
  2. The separate "Run cuda.core examples" step in both test-wheel-linux.yml (line 280-287) and test-wheel-windows.yml (line 257-265) then runs:
  pytest -ra -s -vv tests/example_tests/

  So tests/example_tests/test_basic_examples.py gets executed twice in every CI run — once as part of the broader tests/ collection in run-tests core, and again explicitly in the dedicated "Run cuda.core examples" step.

leofang added a commit that referenced this pull request Mar 5, 2026
@cpcloud
Copy link
Contributor

cpcloud commented Mar 5, 2026

Sure, no big deal. Would be great to unify this across repos so that we don't waste time doing a PR -> review -> revert -> review again!

@leofang
Copy link
Member

leofang commented Mar 5, 2026

Sure, no big deal. Would be great to unify this across repos so that we don't waste time doing a PR -> review -> revert -> review again!

Indeed. I suggested the unification path back in #1517 (comment) and also above.

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.

4 participants