Skip to content

[ENH]bedpostx and probtrackx gpu and multithread support #1381

[ENH]bedpostx and probtrackx gpu and multithread support

[ENH]bedpostx and probtrackx gpu and multithread support #1381

Workflow file for this run

name: Tox
on:
push:
branches: [ master, main, 'maint/*' ]
tags: [ '*' ]
pull_request:
branches: [ master, main, 'maint/*' ]
schedule:
# 8am EST / 9am EDT Mondays
- cron: "0 13 * * 1"
defaults:
run:
shell: bash
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
permissions:
contents: read
env:
# Force tox and pytest to use color
FORCE_COLOR: true
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
with:
fetch-depth: 0
- name: Install the latest version of uv
uses: astral-sh/setup-uv@v7
- run: uv build
- run: uvx twine check dist/*
- uses: actions/upload-artifact@v7
with:
name: dist
path: dist/
test-package:
runs-on: ubuntu-latest
needs: [build]
strategy:
matrix:
package: ["wheel", "sdist"]
steps:
- uses: actions/download-artifact@v8
with:
name: dist
path: dist/
- name: Verify artifacts are present
run: |
ls -l . dist/
wheel_file=$(find dist -name 'nipype-*.whl' | head -n 1)
tar_file=$(find dist -name 'nipype-*.tar.gz' | head -n 1)
echo "WHEEL=$wheel_file" >> $GITHUB_ENV
echo "SDIST=$tar_file" >> $GITHUB_ENV
- name: Install Python
uses: actions/setup-python@v6
with:
python-version: "3.13"
- name: Display Python version
run: python -c "import sys; print(sys.version)"
- name: Install wheel
run: pip install $WHEEL[tests]
if: matrix.package == 'wheel'
- name: Install sdist
run: pip install $SDIST[tests]
if: matrix.package == 'sdist'
- name: Display nipype version
run: python -c 'import nipype; print(nipype.__version__)'
- name: Run tests
run: pytest --doctest-modules -v --pyargs nipype
test:
# Check each OS, all supported Python, minimum versions and latest releases
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: ["ubuntu-latest"]
python-version: ["3.10", "3.11", "3.12", "3.13"]
dependencies: [none, full, pre]
include:
- os: ubuntu-latest
python-version: "3.10"
dependencies: min
exclude:
# Skip some intermediate versions for full tests
- python-version: "3.10"
dependencies: full
- python-version: "3.11"
dependencies: full
# Do not test pre-releases for versions out of SPEC0
- python-version: "3.10"
dependencies: pre
- python-version: "3.11"
dependencies: pre
env:
DEPENDS: ${{ matrix.dependencies }}
steps:
- uses: actions/checkout@v6
with:
fetch-depth: 0
- name: Install the latest version of uv
uses: astral-sh/setup-uv@v7
with:
python-version: ${{ matrix.python-version }}
- name: Display Python version
run: python -c "import sys; print(sys.version)"
- name: Install tox
run: |
uv tool install --with=tox-uv --with=tox-gh-actions tox
- name: Show tox config
run: tox c
- name: Run tox
run: tox -v --exit-and-dump-after 1200
- uses: codecov/codecov-action@v5
with:
token: ${{ secrets.CODECOV_TOKEN }}
if: ${{ always() }}
- name: Upload pytest test results
uses: actions/upload-artifact@v7
with:
name: pytest-results-${{ matrix.os }}-${{ matrix.python-version }}-${{ matrix.dependencies }}
path: test-results.xml
if: always()
publish:
runs-on: ubuntu-latest
environment: "Package deployment"
needs: [test, test-package]
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/')
steps:
- uses: actions/download-artifact@v8
with:
name: dist
path: dist/
- uses: pypa/gh-action-pypi-publish@release/v1
with:
user: __token__
password: ${{ secrets.PYPI_API_TOKEN }}
checks:
runs-on: 'ubuntu-latest'
continue-on-error: true
strategy:
matrix:
check: ['specs', 'style']
steps:
- uses: actions/checkout@v6
- name: Install the latest version of uv
uses: astral-sh/setup-uv@v7
- name: Install tox
run: uv tool install --with=tox-uv tox
- name: Show tox config
run: tox c
- name: Show tox config (this call)
run: tox c -e ${{ matrix.check }}
- name: Run check
run: tox -e ${{ matrix.check }}