@@ -96,41 +96,30 @@ jobs:
96
96
- name : Ensure GPU is working
97
97
run : nvidia-smi
98
98
99
- - name : Set environment variables
99
+ - name : Install Git for Windows
100
+ # the GPU runner image does not have Git Bash pre-installed...
101
+ env :
102
+ # doesn't seem there's an easy way to avoid hard-coding it?
103
+ GFW_EXE_URL : https://github.com/git-for-windows/git/releases/download/v2.49.0.windows.1/PortableGit-2.49.0-64-bit.7z.exe
100
104
run : |
101
- $PYTHON_VERSION_FORMATTED = '${{ matrix.PY_VER }}' -replace '\.'
102
- $REPO_DIR = $PWD.Path
103
-
104
- $BUILD_CUDA_MAJOR = '${{ inputs.build-ctk-ver }}' -split '\.' | Select-Object -First 1
105
- $TEST_CUDA_MAJOR = '${{ matrix.CUDA_VER }}' -split '\.' | Select-Object -First 1
106
- if ($BUILD_CUDA_MAJOR -ne $TEST_CUDA_MAJOR) {
107
- $SKIP_CUDA_BINDINGS_TEST = 1
108
- $SKIP_CYTHON_TEST = 1
109
- } else {
110
- $SKIP_CUDA_BINDINGS_TEST = 0
111
- $BUILD_CUDA_MINOR = '${{ inputs.build-ctk-ver }}' -split '\.' | Select-Object -Skip 1 -First 1
112
- $TEST_CUDA_MINOR = '${{ matrix.CUDA_VER }}' -split '\.' | Select-Object -Skip 1 -First 1
113
- if ($BUILD_CUDA_MINOR -ne $TEST_CUDA_MINOR) {
114
- $SKIP_CYTHON_TEST = 1
115
- } else {
116
- $SKIP_CYTHON_TEST = 0
117
- }
118
- }
105
+ Invoke-WebRequest -Uri "$env:GFW_EXE_URL" -OutFile "PortableGit.7z.exe"
106
+ # Self-extracting, see https://gitforwindows.org/zip-archives-extracting-the-released-archives.html
107
+ Start-Process .\PortableGit.7z.exe -Wait -Verbose -ArgumentList '-y -gm2'
108
+ ls -l PortableGit
109
+ echo "$((Get-Location).Path)\\PortableGit\\bin" >> $env:GITHUB_PATH
110
+ $env:Path += ";$((Get-Location).Path)\\PortableGit\\bin"
111
+ bash --version
119
112
120
- # Make outputs from the previous job as env vars
121
- $CUDA_CORE_ARTIFACT_BASENAME = "cuda-core-python${PYTHON_VERSION_FORMATTED}-${{ inputs.host-platform }}"
122
- "PYTHON_VERSION_FORMATTED=${PYTHON_VERSION_FORMATTED}" >> $env:GITHUB_ENV
123
- "CUDA_CORE_ARTIFACT_BASENAME=${CUDA_CORE_ARTIFACT_BASENAME}" >> $env:GITHUB_ENV
124
- "CUDA_CORE_ARTIFACT_NAME=${CUDA_CORE_ARTIFACT_BASENAME}-${{ github.sha }}" >> $env:GITHUB_ENV
125
- "CUDA_CORE_ARTIFACTS_DIR=$($ExecutionContext.SessionState.Path.GetUnresolvedProviderPathFromPSPath("$REPO_DIR\cuda_core\dist"))" >> $env:GITHUB_ENV
126
- "CUDA_CORE_CYTHON_TESTS_DIR=$($ExecutionContext.SessionState.Path.GetUnresolvedProviderPathFromPSPath("$REPO_DIR\cuda_core\tests\cython"))" >> $env:GITHUB_ENV
127
- $CUDA_BINDINGS_ARTIFACT_BASENAME = "cuda-bindings-python${PYTHON_VERSION_FORMATTED}-cuda${{ inputs.build-ctk-ver }}-${{ inputs.host-platform }}"
128
- "CUDA_BINDINGS_ARTIFACT_BASENAME=${CUDA_BINDINGS_ARTIFACT_BASENAME}" >> $env:GITHUB_ENV
129
- "CUDA_BINDINGS_ARTIFACT_NAME=${CUDA_BINDINGS_ARTIFACT_BASENAME}-${{ github.sha }}" >> $env:GITHUB_ENV
130
- "CUDA_BINDINGS_ARTIFACTS_DIR=$($ExecutionContext.SessionState.Path.GetUnresolvedProviderPathFromPSPath("$REPO_DIR\cuda_bindings\dist"))" >> $env:GITHUB_ENV
131
- "CUDA_BINDINGS_CYTHON_TESTS_DIR=$($ExecutionContext.SessionState.Path.GetUnresolvedProviderPathFromPSPath("$REPO_DIR\cuda_bindings\tests\cython"))" >> $env:GITHUB_ENV
132
- "SKIP_CUDA_BINDINGS_TEST=${SKIP_CUDA_BINDINGS_TEST}" >> $env:GITHUB_ENV
133
- "SKIP_CYTHON_TEST=${SKIP_CYTHON_TEST}" >> $env:GITHUB_ENV
113
+ - name : Set environment variables
114
+ env :
115
+ BUILD_CUDA_VER : ${{ inputs.build-ctk-ver }}
116
+ CUDA_VER : ${{ matrix.CUDA_VER }}
117
+ HOST_PLATFORM : ${{ inputs.host-platform }}
118
+ LOCAL_CTK : ${{ matrix.LOCAL_CTK }}
119
+ PY_VER : ${{ matrix.PY_VER }}
120
+ SHA : ${{ github.sha }}
121
+ shell : bash --noprofile --norc -xeuo pipefail {0}
122
+ run : ./ci/tools/env-vars test
134
123
135
124
- name : Download cuda-python build artifacts
136
125
if : ${{ env.SKIP_CUDA_BINDINGS_TEST == '0'}}
@@ -161,21 +150,6 @@ jobs:
161
150
}
162
151
gh --version
163
152
164
- - name : Install Git for Windows
165
- # the GPU runner image does not have Git Bash pre-installed...
166
- if : ${{ matrix.LOCAL_CTK == '1' }}
167
- env :
168
- # doesn't seem there's an easy way to avoid hard-coding it?
169
- GFW_EXE_URL : https://github.com/git-for-windows/git/releases/download/v2.49.0.windows.1/PortableGit-2.49.0-64-bit.7z.exe
170
- run : |
171
- Invoke-WebRequest -Uri "$env:GFW_EXE_URL" -OutFile "PortableGit.7z.exe"
172
- # Self-extracting, see https://gitforwindows.org/zip-archives-extracting-the-released-archives.html
173
- Start-Process .\PortableGit.7z.exe -Wait -Verbose -ArgumentList '-y -gm2'
174
- ls -l PortableGit
175
- echo "$((Get-Location).Path)\\PortableGit\\bin" >> $env:GITHUB_PATH
176
- $env:Path += ";$((Get-Location).Path)\\PortableGit\\bin"
177
- bash --version
178
-
179
153
- name : Install zstd
180
154
# the GPU runner image does not have zstd pre-installed... and it's needed by actions/cache
181
155
if : ${{ matrix.LOCAL_CTK == '1' }}
@@ -278,48 +252,18 @@ jobs:
278
252
279
253
- name : Run cuda.bindings tests
280
254
if : ${{ env.SKIP_CUDA_BINDINGS_TEST == '0' }}
281
- run : |
282
- Push-Location $env:CUDA_BINDINGS_ARTIFACTS_DIR
283
- if ('${{ matrix.LOCAL_CTK }}' -eq '1') {
284
- Get-ChildItem $env:CUDA_PATH
285
- echo $PATH
286
- pip install "$((Get-ChildItem -Filter *.whl).FullName)[test]"
287
- } else {
288
- pip install "$((Get-ChildItem -Filter *.whl).FullName)[all,test]"
289
- }
290
- Pop-Location
291
-
292
- Push-Location ./cuda_bindings
293
- pytest -rxXs -v tests/
294
- if ($env:SKIP_CYTHON_TEST -eq '0') {
295
- pytest -rxXs -v tests/cython
296
- }
297
- Pop-Location
255
+ env :
256
+ CUDA_VER : ${{ matrix.CUDA_VER }}
257
+ LOCAL_CTK : ${{ matrix.LOCAL_CTK }}
258
+ shell : bash --noprofile --norc -xeuo pipefail {0}
259
+ run : run-tests bindings
298
260
299
261
- name : Run cuda.core tests
300
- run : |
301
- # If build/test majors match: cuda.bindings is installed in the previous step.
302
- # If mismatch: cuda.bindings is installed from the backport branch.
303
- if ($env:SKIP_CUDA_BINDINGS_TEST -eq '1') {
304
- Push-Location $env:CUDA_BINDINGS_ARTIFACTS_DIR
305
- if ('${{ matrix.LOCAL_CTK }}' -eq '1') {
306
- pip install (Get-ChildItem -Filter *.whl).FullName
307
- } else {
308
- pip install "$((Get-ChildItem -Filter *.whl).FullName)[all]"
309
- }
310
- Pop-Location
311
- }
312
- $TEST_CUDA_MAJOR = '${{ matrix.CUDA_VER }}' -split '\.' | Select-Object -First 1
313
- Push-Location $env:CUDA_CORE_ARTIFACTS_DIR
314
- pip install "$((Get-ChildItem -Filter *.whl).FullName)[cu${TEST_CUDA_MAJOR},test-cu${TEST_CUDA_MAJOR}]"
315
- Pop-Location
316
-
317
- Push-Location ./cuda_core
318
- pytest -rxXs -v tests/
319
- if ($env:SKIP_CYTHON_TEST -eq '0') {
320
- pytest -rxXs -v tests/cython
321
- }
322
- Pop-Location
262
+ env :
263
+ CUDA_VER : ${{ matrix.CUDA_VER }}
264
+ LOCAL_CTK : ${{ matrix.LOCAL_CTK }}
265
+ shell : bash --noprofile --norc -xeuo pipefail {0}
266
+ run : run-tests core
323
267
324
268
- name : Ensure cuda-python installable
325
269
run : |
0 commit comments