CI: Drop CircleCI, using GHA only #1159
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: CI | |
on: | |
push: | |
pull_request: | |
schedule: | |
- cron: 0 0 * * 0 | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: true | |
permissions: | |
contents: read | |
defaults: | |
run: | |
shell: bash -el {0} | |
jobs: | |
build-linux: | |
if: "!contains(github.event.head_commit.message, '[skip ci]' && (github.event_name == 'push' || github.event.pull_request.head.repo.full_name != 'nipreps/sdcflows'))" | |
runs-on: ubuntu-latest | |
env: | |
TEST_DATA_HOME: /home/runner/sdcflows-tests | |
FSLOUTPUTTYPE: NIFTI_GZ | |
FSLMULTIFILEQUIT: TRUE | |
AFNI_HOME: /opt/afni | |
AFNI_MODELPATH: /opt/afni/models | |
AFNI_IMSAVE_WARNINGS: NO | |
AFNI_TTATLAS_DATASET: /opt/afni/atlases | |
AFNI_PLUGINPATH: /opt/afni/plugins | |
strategy: | |
max-parallel: 5 | |
matrix: | |
python-version: ["3.9", "3.10", "3.11", "3.12"] | |
marks: ["not slow"] | |
include: | |
- python-version: "3.9" | |
marks: "slow" | |
- python-version: "3.12" | |
marks: "slow" | |
steps: | |
- uses: actions/cache@v4 | |
with: | |
path: /var/lib/apt | |
key: apt-cache-v3 | |
restore-keys: | | |
apt-cache-v3 | |
- name: Install dependencies | |
run: | | |
sudo apt-get update | |
sudo apt-get install -y --no-install-recommends \ | |
curl bzip2 ca-certificates \ | |
tcsh gsl-bin netpbm \ | |
libjpeg62 xvfb xterm \ | |
libglu1-mesa-dev libglw1-mesa \ | |
libxm4 build-essential | |
- uses: actions/cache@v4 | |
with: | |
path: /opt/afni | |
key: afni-v1 | |
restore-keys: | | |
afni-v1 | |
- name: Install AFNI | |
run: | | |
if [[ ! -d "${AFNI_HOME}" ]]; then | |
curl -O https://afni.nimh.nih.gov/pub/dist/bin/misc/@update.afni.binaries && \ | |
tcsh @update.afni.binaries -package linux_ubuntu_16_64 -bindir ${AFNI_HOME} | |
fi | |
- name: Git settings (pacify DataLad) | |
run: | | |
git config --global user.name 'NiPreps Bot' | |
git config --global user.email 'nipreps@gmail.com' | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: conda-incubator/setup-miniconda@v3 | |
with: | |
auto-update-conda: true | |
auto-activate-base: true | |
python-version: ${{ matrix.python-version }} | |
channels: https://fsl.fmrib.ox.ac.uk/fsldownloads/fslconda/public/,conda-forge | |
- uses: actions/cache@v4 | |
id: conda | |
env: | |
CACHE_NUM: v5 | |
with: | |
path: | | |
~/conda_pkgs_dir | |
/home/runner/.cache/pip | |
key: python-${{ matrix.python-version }}-${{ env.CACHE_NUM }} | |
restore-keys: | | |
python-${{ matrix.python-version }}-${{ env.CACHE_NUM }} | |
- name: Install DataLad | |
run: | | |
conda install git-annex=*=alldep* pip | |
pip install datalad datalad-osf | |
- name: Install fsl and ANTs | |
run: | | |
conda install fsl-fugue fsl-topup ants | |
- uses: actions/checkout@v4 | |
- name: Install dependencies | |
timeout-minutes: 5 | |
run: | | |
pip install .[tests] | |
- uses: actions/cache@v4 | |
with: | |
path: ~/.cache/templateflow | |
key: tf-cache-v1 | |
restore-keys: | | |
tf-cache- | |
- name: Get TemplateFlow's required objects | |
run: | | |
python tools/cache_templateflow.py | |
- uses: actions/cache@v4 | |
with: | |
path: ${{ env.TEST_DATA_HOME }} | |
key: data-cache-v2 | |
restore-keys: | | |
data-cache- | |
- name: Install test data | |
run: | | |
mkdir -p ${{ env.TEST_DATA_HOME }} | |
cd ${{ env.TEST_DATA_HOME }} | |
# ds001600 | |
datalad install -r https://github.com/nipreps-data/ds001600.git | |
datalad update -r --merge -d ds001600/ | |
datalad get -r -J 2 -d ds001600/ ds001600/sub-1/ | |
# HCP/sub-101006 | |
datalad install -r https://github.com/nipreps-data/HCP101006.git | |
datalad update -r --merge -d HCP101006/ | |
datalad get -r -J 2 -d HCP101006 HCP101006/* | |
# ds001771 | |
datalad install -r https://github.com/nipreps-data/ds001771.git | |
datalad update -r --merge -d ds001771/ | |
datalad get -r -J 2 -d ds001771/ ds001771/sub-36/* | |
datalad get -r -J 2 -d ds001771/derivatives ds001771/derivatives/openneuro/sub-36/* | |
# ds000054 | |
datalad install -r https://github.com/nipreps-data/ds000054.git | |
datalad update --merge -d ds000054/ | |
datalad get -r -d ds000054/ ds000054/sub-100185/* | |
datalad get -r -J 2 -d ds000054/ ds000054/derivatives/smriprep-0.6/sub-100185/anat/ | |
# ds000206 | |
datalad install -r https://github.com/nipreps-data/ds000206.git | |
datalad update -r --merge -d ds000206/ | |
datalad get -r -J 2 -d ds000206/ ds000206/sub-05/ | |
# Brain extraction tests | |
datalad install -r https://gin.g-node.org/nipreps-data/brain-extraction-tests | |
datalad update --merge -d brain-extraction-tests/ | |
datalad get -r -J 2 -d brain-extraction-tests brain-extraction-tests/* | |
# HCPH pilot | |
datalad install -r https://github.com/nipreps-data/hcph-pilot_fieldmaps.git | |
datalad update -r --merge -d hcph-pilot_fieldmaps/ | |
datalad get -r -J 2 -d hcph-pilot_fieldmaps/ hcph-pilot_fieldmaps/* | |
- name: Set FS_LICENSE variable | |
run: echo "FS_LICENSE=$HOME/.cache/freesurfer/license.txt" >> $GITHUB_ENV | |
- name: Install FreeSurfer's mri_robust_template | |
env: | |
MRI_ROBUST_TEMPLATE: sx2n7/providers/osfstorage/5e825301d0e35400ebb481f2 | |
run: | | |
curl https://files.osf.io/v1/resources/$MRI_ROBUST_TEMPLATE?direct > mri_robust_template | |
sudo install mri_robust_template /usr/local/bin | |
mkdir -p $( dirname $FS_LICENSE ) | |
echo "b2VzdGViYW5Ac3RhbmZvcmQuZWR1CjMwNzU2CiAqQ1MzYkJ5VXMxdTVNCiBGU2kvUGJsejJxR1V3Cg==" | base64 -d > $FS_LICENSE | |
- name: Run pytest with coverage | |
run: | | |
export PATH=${AFNI_HOME}:$PATH | |
export FSLDIR=${CONDA_PREFIX} | |
pytest -v --cov sdcflows --cov-report xml:cov.xml --doctest-modules -n auto sdcflows \ | |
--durations=20 --durations-min=10 -m "$MARKS" | |
env: | |
MARKS: ${{ matrix.marks }} | |
- uses: codecov/codecov-action@v4 | |
with: | |
file: cov.xml | |
token: ${{ secrets.CODECOV_TOKEN }} | |
if: ${{ always() }} |