|
12 | 12 | branches: [develop] |
13 | 13 | pull_request: { } |
14 | 14 | workflow_dispatch: { } |
| 15 | + schedule: |
| 16 | + # Nightly full run at 04:00 UTC. Regular CUDA build/test/cudf jobs run on |
| 17 | + # every PR; the compute-sanitizer matrix is path-filtered to the CUDA |
| 18 | + # crates for speed. This nightly run (and push-to-develop) restores |
| 19 | + # sanitizer coverage for changes in dependency crates (vortex-array, |
| 20 | + # vortex-buffer, encodings, ...) that can affect GPU kernels without |
| 21 | + # touching vortex-cuda/ itself. |
| 22 | + - cron: "0 4 * * *" |
15 | 23 |
|
16 | 24 | permissions: |
17 | 25 | contents: read |
|
21 | 29 | RUST_BACKTRACE: 1 |
22 | 30 |
|
23 | 31 | jobs: |
| 32 | + changes: |
| 33 | + name: "Detect CUDA changes" |
| 34 | + # Only meaningful on PRs; gates the sanitizer matrix only. Other events |
| 35 | + # (schedule/push/dispatch) run the sanitizers unconditionally via the |
| 36 | + # always() guard on cuda-test-sanitizer below. |
| 37 | + if: github.event_name == 'pull_request' |
| 38 | + runs-on: ubuntu-latest |
| 39 | + timeout-minutes: 10 |
| 40 | + permissions: |
| 41 | + pull-requests: read |
| 42 | + outputs: |
| 43 | + cuda: ${{ steps.filter.outputs.cuda }} |
| 44 | + steps: |
| 45 | + - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6 |
| 46 | + - uses: dorny/paths-filter@fbd0ab8f3e69293af611ebaee6363fc25e6d187d # v4 |
| 47 | + id: filter |
| 48 | + with: |
| 49 | + filters: | |
| 50 | + cuda: |
| 51 | + - "vortex-cuda/**" |
| 52 | + - "vortex-test/**" |
| 53 | + - ".github/workflows/**" |
| 54 | +
|
24 | 55 | cuda-build-lint: |
25 | 56 | if: github.repository == 'vortex-data/vortex' |
26 | 57 | name: "CUDA build & lint" |
@@ -92,7 +123,10 @@ jobs: |
92 | 123 | --verbose |
93 | 124 |
|
94 | 125 | cuda-test-sanitizer: |
95 | | - if: github.repository == 'vortex-data/vortex' |
| 126 | + needs: [changes] |
| 127 | + if: >- |
| 128 | + always() && github.repository == 'vortex-data/vortex' && |
| 129 | + (github.event_name != 'pull_request' || needs.changes.outputs.cuda == 'true') |
96 | 130 | name: "CUDA tests (${{ matrix.sanitizer }})" |
97 | 131 | timeout-minutes: 30 |
98 | 132 | runs-on: runs-on=${{ github.run_id }}/runner=gpu/tag=cuda-test-sanitizer |
|
0 commit comments