Skip to content

Commit 76832fb

Browse files
committed
WIP: TST: Detect CUDA and install if necessary
1 parent 31f0601 commit 76832fb

File tree

2 files changed

+560
-6
lines changed

2 files changed

+560
-6
lines changed

.github/workflows/notebooks.yml

Lines changed: 68 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,14 @@
11
name: Run notebooks
22

33
on:
4+
push:
5+
branches:
6+
- main
7+
- maint/*
8+
pull_request:
9+
branches:
10+
- main
11+
- maint/*
412
schedule:
513
- cron: '0 0 * * 1' # Every Monday at 00:00 UTC
614
# Allow job to be triggered manually from GitHub interface
@@ -41,16 +49,50 @@ jobs:
4149
with:
4250
python-version: ${{ matrix.python-version }}
4351

44-
- name: Check for nvcc and set CUDA flag
45-
id: detect-cuda
52+
- name: Check for nvcc and install CUDA if missing
53+
id: cuda
4654
run: |
47-
if command -v nvcc &> /dev/null; then
48-
echo "nvcc found: CUDA is available"
55+
if command -v nvcc > /dev/null; then
56+
echo "nvcc is already installed"
4957
echo "HAS_CUDA=true" >> $GITHUB_ENV
5058
else
51-
echo "nvcc not found: CUDA is not available"
59+
echo "❌ nvcc not found, installing CUDA..."
60+
61+
UBUNTU_VERSION=$(lsb_release -rs)
62+
UBUNTU_CODENAME="ubuntu${UBUNTU_VERSION//./}"
63+
64+
echo "Detected Ubuntu version: $UBUNTU_CODENAME"
65+
66+
# Add NVIDIA APT repository
67+
wget https://developer.download.nvidia.com/compute/cuda/repos/${UBUNTU_CODENAME}/x86_64/cuda-${UBUNTU_CODENAME}.pin
68+
sudo mv cuda-${UBUNTU_CODENAME}.pin /etc/apt/preferences.d/cuda-repository-pin-600
69+
sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/${UBUNTU_CODENAME}/x86_64/3bf863cc.pub
70+
sudo add-apt-repository "deb https://developer.download.nvidia.com/compute/cuda/repos/${UBUNTU_CODENAME}/x86_64/ /"
71+
sudo apt-get update
72+
73+
# Automatically get latest available cuda-toolkit version
74+
TOOLKIT=$(apt-cache search ^cuda-toolkit-[0-9]+-[0-9]+$ | awk '{print $1}' | sort -V | tail -n1)
75+
if [ -z "$TOOLKIT" ]; then
76+
echo "❌ No CUDA toolkit version found in repository."
77+
exit 1
78+
fi
79+
80+
echo "Installing CUDA toolkit: $TOOLKIT"
81+
sudo apt-get install -y $TOOLKIT
82+
83+
echo "/usr/local/cuda/bin" >> $GITHUB_PATH
84+
echo "HAS_CUDA=true" >> $GITHUB_ENV
85+
fi
86+
87+
- name: Confirm CUDA version
88+
run: |
89+
if [ "$HAS_CUDA" = "true" ]; then
90+
nvcc --version
91+
else
92+
echo "CUDA not available"
5293
echo "HAS_CUDA=false" >> $GITHUB_ENV
5394
fi
95+
echo $HAS_CUDA
5496
5597
- name: Install AFNI
5698
run: |
@@ -108,4 +150,24 @@ jobs:
108150
pip install tox
109151
110152
- name: Run notebooks with tox
111-
run: tox -e notebooks
153+
# run: tox -e notebooks
154+
run: |
155+
pip install nbconvert jupyter
156+
pip install nbval
157+
pip install nibabel
158+
pip install mriqc_learn
159+
pip install nipreps-synthstrip
160+
pip install dipy
161+
pip install joblib
162+
pip install "nipype>=1.5.1,<2.0"
163+
pip install "nitransforms>=22.0.0,<24"
164+
pip install numpy
165+
pip install nest-asyncio
166+
pip install scikit_learn
167+
pip install scipy
168+
pip install .
169+
# jupyter nbconvert --to notebook --execute ${{ github.workspace }}/docs/notebooks/bold_realignment.ipynb \
170+
# --output executed_bold_realignment.ipynb
171+
# jupyter nbconvert --to python ${{ github.workspace }}/docs/notebooks/bold_realignment.ipnb
172+
python ${{ github.workspace }}/docs/notebooks/bold_realignment.py
173+
# pytest -s --nbval ${{ github.workspace }}/docs/notebooks/bold_realignment.ipynb

0 commit comments

Comments
 (0)