forked from kochalka/fmriprep
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcircle.yml
68 lines (63 loc) · 3.54 KB
/
circle.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
machine:
# Update docker to 1.9
pre:
- sudo curl -L -o /usr/bin/docker 'https://s3-external-1.amazonaws.com/circle-downloads/docker-1.9.1-circleci'
- sudo chmod 0755 /usr/bin/docker
environment:
OSF_PROJECT: "https://files.osf.io/v1/resources/fvuh8/providers/osfstorage"
DS005_URL: "${OSF_PROJECT}/57f32a429ad5a101f977eb75"
DS005_FS_URL: "${OSF_PROJECT}/58fe59eb594d900250960180"
DS054_URL: "${OSF_PROJECT}/57f32c22594d9001ef91bf9e"
services:
- docker
dependencies:
cache_directories:
- "~/data"
pre:
- mkdir -p $HOME/data
- mkdir -p $HOME/ds005/out && sudo setfacl -R -d -m group:ubuntu:rwx $HOME/ds005 && sudo setfacl -R -m group:ubuntu:rwx $HOME/ds005
- mkdir -p $HOME/ds054 && sudo setfacl -d -m group:ubuntu:rwx $HOME/ds054 && sudo setfacl -m group:ubuntu:rwx $HOME/ds054
- mkdir -p $HOME/docs && sudo setfacl -d -m group:ubuntu:rwx $HOME/docs && sudo setfacl -m group:ubuntu:rwx $HOME/docs
# Download test data
- if [[ ! -d $HOME/data/ds005 ]]; then wget --retry-connrefused --waitretry=5 --read-timeout=20 --timeout=15 -t 0 -q -O ds005_downsampled.tar.gz "${DS005_URL}" && tar xzf ds005_downsampled.tar.gz -C $HOME/data/; fi
- if [[ ! -d $HOME/data/ds054 ]]; then wget --retry-connrefused --waitretry=5 --read-timeout=20 --timeout=15 -t 0 -q -O ds054_downsampled.tar.gz "${DS054_URL}" && tar xzf ds054_downsampled.tar.gz -C $HOME/data/; fi
- if [[ ! -d $HOME/data/freesurfer ]]; then wget --retry-connrefused --waitretry=5 --read-timeout=20 --timeout=15 -t 0 -q -O ds005_derivatives_freesurfer.tar.gz "${DS005_FS_URL}" && tar xzf ds005_derivatives_freesurfer.tar.gz -C $HOME/data/; fi
- cp -al $HOME/data/freesurfer $HOME/ds005/out/freesurfer
- printf "[execution]\nstop_on_first_crash = true\nremove_unnecessary_outputs = false" > $HOME/nipype.cfg
# Setup dependencies
- pip install future numpy
# Verify we can run setup.py
- python setup.py --help
- python wrapper/setup.py --help
override:
- sed -i -E "s/(__version__ = )'[A-Za-z0-9.-]+'/\1'$CIRCLE_TAG'/" fmriprep/info.py
- sed -i -E "s/(__version__ = )'[A-Za-z0-9.-]+'/\1'$CIRCLE_TAG'/" wrapper/fmriprep_docker.py
- docker pull poldracklab/fmriprep:latest || true
- e=1 && for i in {1..5}; do docker build --rm=false -t poldracklab/fmriprep:latest --build-arg BUILD_DATE=`date -u +"%Y-%m-%dT%H:%M:%SZ"` --build-arg VCS_REF=`git rev-parse --short HEAD` --build-arg VERSION=${CIRCLE_TAG:-latest} . && e=0 && break || sleep 15; done && [ "$e" -eq "0" ] :
timeout: 21600
- pip install --upgrade wrapper/
test:
override:
- bash .circle/tests.sh :
timeout: 4800
parallel: true
environment:
GIT_COMMIT_DESC: $(git log --format=oneline -n 1 $CIRCLE_SHA1)
general:
artifacts:
- "~/ds054/out"
- "~/ds054/scratch"
- "~/ds005/out"
- "~/ds005/scratch"
- "~/docs"
deployment:
production:
tag: /.*/
commands:
- if [[ -n "$DOCKER_PASS" ]]; then docker login -e $DOCKER_EMAIL -u $DOCKER_USER -p $DOCKER_PASS && docker push poldracklab/fmriprep:latest; fi :
timeout: 21600
- if [[ -n "$DOCKER_PASS" ]]; then docker login -e $DOCKER_EMAIL -u $DOCKER_USER -p $DOCKER_PASS && docker tag poldracklab/fmriprep poldracklab/fmriprep:$CIRCLE_TAG && docker push poldracklab/fmriprep:$CIRCLE_TAG; fi :
timeout: 21600
- printf "[distutils]\nindex-servers =\n pypi\n\n[pypi]\nusername:$PYPI_USER\npassword:$PYPI_PASS\n" > ~/.pypirc
- python setup.py sdist upload -r pypi
- cd wrapper && python setup.py sdist upload -r pypi