@@ -96,41 +96,30 @@ jobs:
9696 - name : Ensure GPU is working
9797 run : nvidia-smi
9898
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
100104 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
119112
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
134123
135124 - name : Download cuda-python build artifacts
136125 if : ${{ env.SKIP_CUDA_BINDINGS_TEST == '0'}}
@@ -161,21 +150,6 @@ jobs:
161150 }
162151 gh --version
163152
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-
179153 - name : Install zstd
180154 # the GPU runner image does not have zstd pre-installed... and it's needed by actions/cache
181155 if : ${{ matrix.LOCAL_CTK == '1' }}
@@ -278,48 +252,16 @@ jobs:
278252
279253 - name : Run cuda.bindings tests
280254 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+ LOCAL_CTK : ${{ matrix.LOCAL_CTK }}
257+ shell : bash --noprofile --norc -xeuo pipefail {0}
258+ run : run-tests bindings
298259
299260 - 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
261+ env :
262+ LOCAL_CTK : ${{ matrix.LOCAL_CTK }}
263+ shell : bash --noprofile --norc -xeuo pipefail {0}
264+ run : run-tests core
323265
324266 - name : Ensure cuda-python installable
325267 run : |
0 commit comments