|
1 | 1 | name: Run notebooks |
2 | 2 |
|
3 | 3 | on: |
| 4 | + push: |
| 5 | + branches: |
| 6 | + - main |
| 7 | + - maint/* |
| 8 | + pull_request: |
| 9 | + branches: |
| 10 | + - main |
| 11 | + - maint/* |
4 | 12 | schedule: |
5 | 13 | - cron: '0 0 * * 1' # Every Monday at 00:00 UTC |
6 | 14 | # Allow job to be triggered manually from GitHub interface |
@@ -41,16 +49,50 @@ jobs: |
41 | 49 | with: |
42 | 50 | python-version: ${{ matrix.python-version }} |
43 | 51 |
|
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 |
46 | 54 | 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" |
49 | 57 | echo "HAS_CUDA=true" >> $GITHUB_ENV |
50 | 58 | 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" |
52 | 93 | echo "HAS_CUDA=false" >> $GITHUB_ENV |
53 | 94 | fi |
| 95 | + echo $HAS_CUDA |
54 | 96 |
|
55 | 97 | - name: Install AFNI |
56 | 98 | run: | |
@@ -108,4 +150,24 @@ jobs: |
108 | 150 | pip install tox |
109 | 151 |
|
110 | 152 | - 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