Skip to content

Commit bbe101b

Browse files
committed
Reuse env var code in the tests
1 parent 3c6da34 commit bbe101b

File tree

3 files changed

+58
-99
lines changed

3 files changed

+58
-99
lines changed

.github/workflows/test-wheel-linux.yml

Lines changed: 8 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -154,57 +154,14 @@ jobs:
154154
dependent_exes: "jq wget"
155155

156156
- name: Set environment variables
157-
run: |
158-
PYTHON_VERSION_FORMATTED=$(echo '${{ matrix.PY_VER }}' | tr -d '.')
159-
if [[ "${{ inputs.host-platform }}" == linux* ]]; then
160-
REPO_DIR=$(pwd)
161-
elif [[ "${{ inputs.host-platform }}" == win* ]]; then
162-
PWD=$(pwd)
163-
REPO_DIR=$(cygpath -w $PWD)
164-
fi
165-
166-
BUILD_CUDA_MAJOR="$(cut -d '.' -f 1 <<< ${{ inputs.build-ctk-ver }})"
167-
TEST_CUDA_MAJOR="$(cut -d '.' -f 1 <<< ${{ matrix.CUDA_VER }})"
168-
if [[ $BUILD_CUDA_MAJOR != $TEST_CUDA_MAJOR ]]; then
169-
SKIP_CUDA_BINDINGS_TEST=1
170-
SKIP_CYTHON_TEST=1
171-
else
172-
SKIP_CUDA_BINDINGS_TEST=0
173-
BUILD_CUDA_MINOR="$(cut -d '.' -f 2 <<< ${{ inputs.build-ctk-ver }})"
174-
TEST_CUDA_MINOR="$(cut -d '.' -f 2 <<< ${{ matrix.CUDA_VER }})"
175-
if [[ $BUILD_CUDA_MINOR != $TEST_CUDA_MINOR ]]; then
176-
SKIP_CYTHON_TEST=1
177-
else
178-
SKIP_CYTHON_TEST=0
179-
fi
180-
fi
181-
182-
# We don't test compute-sanitizer on CTK<12 because backporting fixes is too much effort
183-
# We only test compute-sanitizer on python 3.12 arbitrarily; we don't need to use sanitizer on the entire matrix
184-
# Only local ctk installs have compute-sanitizer; there is not wheel for it
185-
if [[ "${{ inputs.python-version }}" == "3.12" && "${{ inputs.cuda-version }}" != "11.8.0" && "${{ inputs.local-ctk }}" == 1 ]]; then
186-
SETUP_SANITIZER=1
187-
echo "LATEST_CUDA_VERSION=$(bash .github/workflows/guess_latest.sh)" >> $GITHUB_ENV
188-
else
189-
SETUP_SANITIZER=0
190-
fi
191-
echo "SETUP_SANITIZER=${SETUP_SANITIZER}" >> $GITHUB_ENV
192-
193-
# make outputs from the previous job as env vars
194-
CUDA_CORE_ARTIFACT_BASENAME="cuda-core-python${PYTHON_VERSION_FORMATTED}-${{ inputs.host-platform }}"
195-
echo "PYTHON_VERSION_FORMATTED=${PYTHON_VERSION_FORMATTED}" >> $GITHUB_ENV
196-
echo "CUDA_CORE_ARTIFACT_BASENAME=${CUDA_CORE_ARTIFACT_BASENAME}" >> $GITHUB_ENV
197-
echo "CUDA_CORE_ARTIFACT_NAME=${CUDA_CORE_ARTIFACT_BASENAME}-${{ github.sha }}" >> $GITHUB_ENV
198-
echo "CUDA_CORE_ARTIFACTS_DIR=$(realpath "$REPO_DIR/cuda_core/dist")" >> $GITHUB_ENV
199-
echo "CUDA_CORE_CYTHON_TESTS_DIR=$(realpath "$REPO_DIR/cuda_core/tests/cython")" >> $GITHUB_ENV
200-
CUDA_BINDINGS_ARTIFACT_BASENAME="cuda-bindings-python${PYTHON_VERSION_FORMATTED}-cuda${{ inputs.build-ctk-ver }}-${{ inputs.host-platform }}"
201-
echo "CUDA_BINDINGS_ARTIFACT_BASENAME=${CUDA_BINDINGS_ARTIFACT_BASENAME}" >> $GITHUB_ENV
202-
echo "CUDA_BINDINGS_ARTIFACT_NAME=${CUDA_BINDINGS_ARTIFACT_BASENAME}-${{ github.sha }}" >> $GITHUB_ENV
203-
echo "CUDA_BINDINGS_ARTIFACTS_DIR=$(realpath "$REPO_DIR/cuda_bindings/dist")" >> $GITHUB_ENV
204-
echo "CUDA_BINDINGS_CYTHON_TESTS_DIR=$(realpath "$REPO_DIR/cuda_bindings/tests/cython")" >> $GITHUB_ENV
205-
206-
echo "SKIP_CUDA_BINDINGS_TEST=${SKIP_CUDA_BINDINGS_TEST}" >> $GITHUB_ENV
207-
echo "SKIP_CYTHON_TEST=${SKIP_CYTHON_TEST}" >> $GITHUB_ENV
157+
env:
158+
BUILD_CUDA_VER: ${{ inputs.build-ctk-ver }}
159+
CUDA_VER: ${{ matrix.CUDA_VER }}
160+
HOST_PLATFORM: ${{ inputs.host-platform }}
161+
LOCAL_CTK: ${{ matrix.LOCAL_CTK }}
162+
PY_VER: ${{ matrix.PY_VER }}
163+
SHA: ${{ github.sha }}
164+
run: ./ci/tools/env-vars test
208165

209166
- name: Download cuda-python build artifacts
210167
if: ${{ env.SKIP_CUDA_BINDINGS_TEST == '0'}}

.github/workflows/test-wheel-windows.yml

Lines changed: 22 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -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' }}

ci/tools/env-vars

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,4 +42,32 @@ echo "CUDA_BINDINGS_CYTHON_TESTS_DIR=$(realpath "${REPO_DIR}/cuda_bindings/tests
4242

4343
if [[ "${1}" == "build" ]]; then
4444
echo "CIBW_BUILD=${CIBW_BUILD}" >> $GITHUB_ENV
45+
elif [[ "${1}" == "test" ]]; then
46+
BUILD_CUDA_MAJOR="$(cut -d '.' -f 1 <<< ${BUILD_CUDA_VER})"
47+
TEST_CUDA_MAJOR="$(cut -d '.' -f 1 <<< ${CUDA_VER})"
48+
if [[ ${BUILD_CUDA_MAJOR} != ${TEST_CUDA_MAJOR} ]]; then
49+
SKIP_CUDA_BINDINGS_TEST=1
50+
SKIP_CYTHON_TEST=1
51+
else
52+
SKIP_CUDA_BINDINGS_TEST=0
53+
BUILD_CUDA_MINOR="$(cut -d '.' -f 2 <<< ${BUILD_CUDA_VER})"
54+
TEST_CUDA_MINOR="$(cut -d '.' -f 2 <<< ${CUDA_VER})"
55+
if [[ ${BUILD_CUDA_MINOR} != ${TEST_CUDA_MINOR} ]]; then
56+
SKIP_CYTHON_TEST=1
57+
else
58+
SKIP_CYTHON_TEST=0
59+
fi
60+
fi
61+
# We don't test compute-sanitizer on CTK<12 because backporting fixes is too much effort
62+
# We only test compute-sanitizer on python 3.12 arbitrarily; we don't need to use sanitizer on the entire matrix
63+
# Only local ctk installs have compute-sanitizer; there is not wheel for it
64+
if [[ "${PY_VER}" == "3.12" && "${CUDA_VER}" != "11.8.0" && "${LOCAL_CTK}" == 1 && "${HOST_PLATFORM}" == linux* ]]; then
65+
SETUP_SANITIZER=1
66+
echo "LATEST_CUDA_VERSION=$(bash .github/workflows/guess_latest.sh)" >> $GITHUB_ENV
67+
else
68+
SETUP_SANITIZER=0
69+
fi
70+
echo "SETUP_SANITIZER=${SETUP_SANITIZER}" >> $GITHUB_ENV
71+
echo "SKIP_CUDA_BINDINGS_TEST=${SKIP_CUDA_BINDINGS_TEST}" >> $GITHUB_ENV
72+
echo "SKIP_CYTHON_TEST=${SKIP_CYTHON_TEST}" >> $GITHUB_ENV
4573
fi

0 commit comments

Comments
 (0)