Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Feature] Pipeline progress tracking server #1363

Draft
wants to merge 103 commits into
base: develop
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from 101 commits
Commits
Show all changes
103 commits
Select commit Hold shift + click to select a range
1df76e6
Original ACPC alignment connections.
sgiavasis Jun 8, 2020
2567abe
Fixed the robust FOV node in ACPC alignment to properly name the outp…
sgiavasis Jun 9, 2020
e10072d
FSL aff2rigid tool Python3 conversion workaround. aff2rigid now works…
sgiavasis Jun 10, 2020
182d5fb
Fixed ACPC alignment to use the template for the alignment reference,…
sgiavasis Jun 10, 2020
6dc1630
Moved anatomical reorient back to its original location right after d…
sgiavasis Jun 10, 2020
ed4e828
add a loop based on filter order
XinhuiLi Aug 3, 2020
f6f48fc
avoid crash when only bandpass filter in nuisance
XinhuiLi Aug 6, 2020
71baab2
remove freesurfer change
XinhuiLi Aug 6, 2020
cc5e281
Merge pull request #1336 from FCP-INDI/fix/filter
sgiavasis Aug 7, 2020
dbf6b51
Merge pull request #1334 from FCP-INDI/fix/notch_filter_order
sgiavasis Aug 7, 2020
6a45815
:construction_worker: Update CircleCI config to v2.1
shnizzedy Aug 10, 2020
a8bf2e2
:rocket: Automatically update version strings on tag
shnizzedy Aug 10, 2020
eba3521
:rocket: Check & update version from info.py
shnizzedy Aug 10, 2020
2b09254
:rocket: cd into /home/jon before checking version
shnizzedy Aug 10, 2020
3aac3ee
:green_heart: Set conditional binary operator for git diff
shnizzedy Aug 10, 2020
5437939
:green_heart: Don't fail if GitHub SSH user key is unset
shnizzedy Aug 10, 2020
62d9eaf
:rocket: Use CircleCI read-write deploy key
shnizzedy Aug 10, 2020
ca4d0a2
:bookmark: Update version to 1.7.0
shnizzedy Aug 11, 2020
48ce24a
:pencil: Update links in README
shnizzedy Aug 11, 2020
6afff9b
Parallelize transform application for 4D time series, if more than 1 …
sgiavasis Aug 13, 2020
238e374
Merge pull request #1340 from FCP-INDI/docs/update-readme-links
sgiavasis Aug 13, 2020
0c29950
Fix ANTs apply warp output connection.
sgiavasis Aug 13, 2020
cbedfec
Prevent duplicate node names.
sgiavasis Aug 13, 2020
e247956
Fixed an error where ALFF would crash if nuisance regression was disa…
sgiavasis Aug 14, 2020
a975e2f
Merge branch 'develop' into feature/acpc_align
HechengJin0 Aug 14, 2020
791676c
Update the docstrings for the apply warp functions.
sgiavasis Aug 14, 2020
e0cb6c2
Update the FSL apply warp function docstrings.
sgiavasis Aug 14, 2020
345e111
Merge branch 'feature/applywarp_parallel' of https://github.com/FCP-I…
sgiavasis Aug 14, 2020
6193ebf
Merge branch 'develop' into feature/applywarp_parallel
sgiavasis Aug 14, 2020
263dec2
:goal_net: Give specific error about outdated ndmg_atlas paths
shnizzedy Aug 17, 2020
9f0abbc
:pencil: Add a missing space after a period
shnizzedy Aug 18, 2020
e15f644
1. wrap skulltrip_anatomical into a function 2.acpc_target brain2brai…
HechengJin0 Aug 18, 2020
4d7e2c8
rename acpc align function
HechengJin0 Aug 18, 2020
89a9917
add acpc config default_pipeline.yml
HechengJin0 Aug 20, 2020
5a3336e
convert degree<->mm
HechengJin0 Aug 20, 2020
ae12206
acpc uses its own template, instead of resampled template_skull_for_anat
HechengJin0 Aug 21, 2020
2bd3483
Merge pull request #1343 from FCP-INDI/docs/ndmg_atlases_v1
sgiavasis Aug 21, 2020
c48e9b0
Merge pull request #1339 from FCP-INDI/feature/automate-version-from-…
sgiavasis Aug 21, 2020
8a5e5d3
Merge pull request #1342 from FCP-INDI/feature/applywarp_parallel
sgiavasis Aug 21, 2020
10e2897
:art: :snake: PEP 8
shnizzedy Feb 10, 2020
4695fc6
:chart_with_upwards_trend: Google Analytics Updates
shnizzedy Feb 11, 2020
ebf535e
:mute: Remove debugging statements
shnizzedy Feb 11, 2020
a43fa70
Merge pull request #1348 from FCP-INDI/feature/Google-Analytics-upgrade
sgiavasis Aug 21, 2020
986ebbb
:pencil: Fix get_cpac_gitversion for if 'dev' in _version_extra
shnizzedy Aug 21, 2020
22adcef
:construction_worker: Check previous commit when comparing git tags
shnizzedy Aug 21, 2020
2f43241
:rocket: Stop building this version if pushing a new version
shnizzedy Aug 21, 2020
463950f
:fire: Don't bother checking previous version
shnizzedy Aug 21, 2020
094446f
:construction_worker: Don't check for a version change if last commit…
shnizzedy Aug 21, 2020
d59ae29
:bookmark: Update version to 1.7.1.g094446f5-dev
shnizzedy Aug 21, 2020
fc238da
fix iirnotch in notch_filter_motion
HechengJin0 Aug 25, 2020
2283fbd
use lfilter instead of filtfilt
HechengJin0 Aug 25, 2020
a562640
import notch_imports properly
HechengJin0 Aug 27, 2020
7db07f6
Merge pull request #1350 from FCP-INDI/fix/get_git_version
sgiavasis Sep 3, 2020
eac0dc0
:bookmark: Update version to 1.7.1.g7db07f66-dev
sgiavasis Sep 3, 2020
aba439f
add '' case for c.acpc_template_brain in yml
HechengJin0 Sep 3, 2020
57041c9
Merge pull request #1296 from FCP-INDI/feature/acpc_align
sgiavasis Sep 8, 2020
2f4eadd
Merge pull request #1353 from FCP-INDI/fix/notch_filter
sgiavasis Sep 8, 2020
e2fad07
:bookmark: Update version to 1.7.1.g2f4eadd6-dev
sgiavasis Sep 8, 2020
0006070
Lowpass filter for motion estimates setup, plus direct access to conf…
sgiavasis Sep 10, 2020
33ddb24
Write out composite functional-to-template transforms to output direc…
sgiavasis Sep 11, 2020
0ec13d8
Update the nested pipe config calls.
sgiavasis Sep 11, 2020
fbdc899
:bookmark: Update version to 1.7.1.g33ddb24f-dev
sgiavasis Sep 11, 2020
48fdc0a
:bookmark: Update version to 1.7.1.g0ec13d88-dev
sgiavasis Sep 11, 2020
f06c4dd
Fix the FSL apply warp connections.
sgiavasis Sep 11, 2020
073f096
:bookmark: Update version to 1.7.1.gf06c4dd0-dev
sgiavasis Sep 11, 2020
2a9b7d3
Fixed lowpass filter alias frequency calculation.
sgiavasis Sep 11, 2020
dc9e3f0
:bookmark: Update version to 1.7.1.g2a9b7d3b-dev
sgiavasis Sep 11, 2020
dae66f1
Lowpass filter for motion estimates and the ability to directly desig…
sgiavasis Sep 12, 2020
35e3f10
Merge branch 'feature/lowpass_filter' of https://github.com/FCP-INDI/…
sgiavasis Sep 12, 2020
e3b4375
:bookmark: Update version to 1.7.1.g35e3f10e-dev
sgiavasis Sep 12, 2020
671e113
Pipeline info and graphs for motion estimates filter.
sgiavasis Sep 13, 2020
363983c
:bookmark: Update version to 1.7.1.g671e113e-dev
sgiavasis Sep 13, 2020
1fb03d7
Updated lowpass filter coefficient calculation to match same method a…
sgiavasis Sep 15, 2020
554786c
Merge branch 'feature/lowpass_filter' of https://github.com/FCP-INDI/…
sgiavasis Sep 15, 2020
b98bab4
:bookmark: Update version to 1.7.1.g554786c5-dev
sgiavasis Sep 15, 2020
ad9bb23
Remove extraneous "plot-norm" resource.
sgiavasis Sep 15, 2020
1ef1a9a
Merge branch 'feature/lowpass_filter' of https://github.com/FCP-INDI/…
sgiavasis Sep 15, 2020
9eeb945
:bookmark: Update version to 1.7.1.g1ef1a9af-dev
sgiavasis Sep 15, 2020
5d6665b
Merge pull request #1355 from FCP-INDI/feature/xfm_concat
sgiavasis Sep 16, 2020
e6e1d67
Merge branch 'feature/lowpass_filter' of https://github.com/FCP-INDI/…
sgiavasis Sep 16, 2020
4dbb673
:bookmark: Update version to 1.7.1.ge6e1d674-dev
sgiavasis Sep 16, 2020
c7f9aa1
Fix the merging mess :)
sgiavasis Sep 16, 2020
7d185d7
:bookmark: Update version to 1.7.1.gc7f9aa1d-dev
sgiavasis Sep 16, 2020
ddad808
Fixed transform connections in output_func_to_standard
sgiavasis Sep 17, 2020
2b07f5a
:bookmark: Update version to 1.7.1.gddad808b-dev
sgiavasis Sep 17, 2020
53ca70b
set 'inputnode' node name correctly in skullstrip_anatomical function
HechengJin0 Sep 17, 2020
834f141
:bookmark: Update version to 1.7.1.g53ca70bc-dev
HechengJin0 Sep 17, 2020
ad66bff
:package: Install libxp from zeehio
shnizzedy Sep 17, 2020
9cbadaf
:green_heart: Add no_output_timeout: 5h to build image steps
shnizzedy Sep 17, 2020
fc47d6d
:bookmark: Update version to 1.7.1.g9cbadafc-dev
shnizzedy Sep 17, 2020
e86ef77
📦 Install libxp from zeehio (#1361)
shnizzedy Sep 18, 2020
48ebc32
:bookmark: Update version to 1.7.1.ge86ef77a-dev
shnizzedy Sep 18, 2020
7087696
add missing field in inputnode in skullstrip_anatomical function
HechengJin0 Sep 18, 2020
18c595d
:bookmark: Update version to 1.7.1.g70876967-dev
HechengJin0 Sep 18, 2020
8876e64
set up monitoring websocket
anibalsolon Sep 22, 2020
3b850c4
better message
anibalsolon Sep 22, 2020
c54268f
:bookmark: Update version to 1.7.1.g3b850c4a-dev
anibalsolon Sep 22, 2020
0e5d0c3
fix args order
anibalsolon Sep 22, 2020
79e3b29
give some fancy to the message, so the user can see it better
anibalsolon Sep 22, 2020
51afe46
Merge branch 'feature/progress-tracking' of github.com:FCP-INDI/C-PAC…
anibalsolon Sep 22, 2020
ab9f6f7
:bookmark: Update version to 1.7.1.g51afe462-dev
anibalsolon Sep 22, 2020
2a1530a
parametrize port
anibalsolon Sep 29, 2020
046e64d
:bookmark: Update version to 1.7.1.g2a1530a5-dev
anibalsolon Sep 29, 2020
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
199 changes: 101 additions & 98 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
@@ -1,88 +1,64 @@
version: 2
jobs:
pytest-docker:
machine: true
version: 2.1

commands:
check-for-built-images:
steps:
- attach_workspace:
# Must be absolute path or relative path from working_directory
at: /home/circleci/
- run:
name: "Set Python Version"
name: "Checking for locally built images"
command: |
pyenv install 3.6.3
pyenv global 3.6.3
- run:
name: Get Sample BIDS Data
command: git clone https://github.com/bids-standard/bids-examples.git
- run:
name: pytest
command: |
docker load < cpac-docker-image.tar.gz
docker run -dit -P -v /home/circleci/project/test-results:/code/test-results -v /home/circleci/project/htmlcov:/code/htmlcov --entrypoint=/bin/bash --name docker_test fcpindi/c-pac:${CIRCLE_BRANCH//\//_}
docker exec docker_test /bin/bash ./code/dev/circleci_data/test_in_image.sh
- store_test_results:
path: test-results
- store_artifacts:
path: test-results
- store_artifacts:
path: htmlcov
no_output_timeout: 5h
pytest-singularity:
machine: true
if [[ ! -f cpac-docker-image.tar.gz || ! -f cpac-singularity-image.simg ]]
then
circleci step halt
fi
set-python-version:
steps:
- attach_workspace:
# Must be absolute path or relative path from working_directory
at: /home/circleci/
- run:
name: "Set Python Version"
name: "Setting Python Version"
command: |
pyenv install 3.6.3
pyenv global 3.6.3
install-singularity-requirements:
steps:
- run:
name: test_install
name: "Installing Singularity requirements"
command: |
sudo apt-get update && sudo apt-get install flawfinder squashfs-tools uuid-dev libuuid1 libffi-dev libssl-dev libssl1.0.0 libarchive-dev libgpgme11-dev libseccomp-dev -y
cd singularity
./autogen.sh
./configure --prefix=/usr/local --sysconfdir=/etc
make
sudo make install
cd ..
pip install -r dev/circleci_data/requirements.txt
coverage run -m pytest --junitxml=test-results/junit.xml --continue-on-collection-errors dev/circleci_data/test_install.py
build:
machine: true
sudo apt-get update && sudo apt-get install flawfinder squashfs-tools uuid-dev libuuid1 libffi-dev libssl-dev libssl1.0.0 libarchive-dev libgpgme11-dev libseccomp-dev -y
set-up-singularity:
steps:
- checkout
- run:
name: "Set Python Version"
command: |
pyenv install 3.6.3
pyenv global 3.6.3
name: "Setting up Singularity"
command: |
cd singularity
./autogen.sh
./configure --prefix=/usr/local --sysconfdir=/etc
make
sudo make install
cd ..
build-images:
steps:
- run:
name: build-docker
name: "Building Docker image"
command: |
docker build -t fcpindi/c-pac:${CIRCLE_BRANCH//\//_} .
docker save fcpindi/c-pac:${CIRCLE_BRANCH//\//_} | gzip > cpac-docker-image.tar.gz
no_output_timeout: 5h
# Persist the specified paths (workspace/echo-output) into the workspace for use in downstream job.
- run:
name: local-registry
name: "Starting local registry"
command: docker run -d -p 5000:5000 --restart=always --name registry registry:2
- install-singularity-requirements
- run:
name: "Cloning Singularity 2.5.2"
command: git clone -b 2.5.2 https://github.com/sylabs/singularity
- set-up-singularity
- run:
name: build-singularity
name: "Building Singularity image from Docker image"
command: |
sudo apt-get update && sudo apt-get install flawfinder squashfs-tools uuid-dev libuuid1 libffi-dev libssl-dev libssl1.0.0 libarchive-dev libgpgme11-dev libseccomp-dev -y
git clone -b 2.5.2 https://github.com/sylabs/singularity
cd singularity
./autogen.sh
./configure --prefix=/usr/local --sysconfdir=/etc
make
sudo make install
cd ..
docker load < cpac-docker-image.tar.gz
docker tag fcpindi/c-pac:${CIRCLE_BRANCH//\//_} localhost:5000/fcpindi/c-pac:${CIRCLE_BRANCH//\//_}
docker push localhost:5000/fcpindi/c-pac:${CIRCLE_BRANCH//\//_}
SINGULARITY_NOHTTPS=1 singularity build C-PAC-CI.simg docker://localhost:5000/fcpindi/c-pac:${CIRCLE_BRANCH//\//_}
SINGULARITY_NOHTTPS=1 singularity build C-PAC-CI.simg docker://localhost:5000/fcpindi/c-pac:${CIRCLE_BRANCH//\//_}
no_output_timeout: 5h
- store_artifacts:
path: cpac-docker-image.tar.gz
- store_artifacts:
Expand All @@ -94,63 +70,90 @@ jobs:
root: /home/circleci/
# Must be relative path from root
paths: project
heatmaps:
configure-git-user:
steps:
- add_ssh_keys:
fingerprints:
- "12:bc:f2:e4:31:cc:72:54:54:bc:f5:5b:89:e6:d8:ee"
- run:
name: "Configuring git user"
command: |
git config --global user.email "${CIRCLE_USERNAME}@users.noreply.github.com"
git config --global user.name "${CIRCLE_USERNAME} @ CircleCI"

jobs:
pytest-docker:
machine: true
steps:
- attach_workspace:
# Must be absolute path or relative path from working_directory
at: /home/circleci/
- check-for-built-images
- set-python-version
- run:
name: "Set Python Version"
command: |
pyenv install 3.6.3
pyenv global 3.6.3
name: Getting Sample BIDS Data
command: git clone https://github.com/bids-standard/bids-examples.git
- run:
name: ≟
command: python dev/circleci_data/scripts/compare.py
test:
name: Running pytest on Docker image
command: |
docker load < cpac-docker-image.tar.gz
docker run -dit -P -v /home/circleci/project/test-results:/code/test-results -v /home/circleci/project/htmlcov:/code/htmlcov --entrypoint=/bin/bash --name docker_test fcpindi/c-pac:${CIRCLE_BRANCH//\//_}
docker exec docker_test /bin/bash ./code/dev/circleci_data/test_in_image.sh
- store_test_results:
path: test-results
- store_artifacts:
path: test-results
- store_artifacts:
path: htmlcov
no_output_timeout: 5h
pytest-singularity:
machine: true
steps:
- attach_workspace:
# Must be absolute path or relative path from working_directory
at: /home/circleci/
- check-for-built-images
- set-python-version
- install-singularity-requirements
- set-up-singularity
- run:
name: "Set Python Version"
name: Testing Singularity installation
command: |
pyenv install 3.6.3
pyenv global 3.6.3
pip install -r dev/circleci_data/requirements.txt
coverage run -m pytest --junitxml=test-results/junit.xml --continue-on-collection-errors dev/circleci_data/test_install.py
build:
machine: true
steps:
- checkout
- set-python-version
- configure-git-user
- run:
name: Run C-PAC
name: "Checking if version needs updated"
# update version if version needs updated, otherwise just move on
command: |
docker load < cpac-docker-image.tar.gz
docker run -i --rm -v $HOME:/output -v /tmp:/tmp cpac:${CIRCLE_BRANCH//\//_} s3://fcp-indi/data/Projects/RocklandSample/RawDataBIDS /output participant --participant_label A00028185 --pipeline_file /cpac_resources/pipe-test_ci.yml
no_output_timeout: 3h
if [[ ! $(git log -1 --pretty=%B) == *"Update version to"* ]]
then
cd $HOME/project/CPAC
VERSION=$(python -c "from info import __version__; print(__version__)")
cd ..
echo "v${VERSION}" > version
find ./CPAC/resources/configs -name "*.yml" -exec sed -i -r "s/^(# [Vv]ersion ).*$/# Version ${VERSION}/g" {} \;
git add version CPAC/resources/configs
if [[ ! -z $(git diff origin/${CIRCLE_BRANCH}) ]]
then
git commit -m ":bookmark: Update version to ${VERSION}"
git push origin HEAD:${CIRCLE_BRANCH} || true
circleci step halt
fi
cd ..
fi
- build-images

workflows:
version: 2
build_and_test:
build-and-test:
jobs:
- build:
filters:
branches:
ignore:
- feature/auto-heatmaps
- config/test_config
- test:
requires:
- build
filters:
branches:
only:
- develop
- master
- heatmaps:
requires:
- build
- test
filters:
branches:
only: feature/auto-heatmaps
- build
- pytest-docker:
requires:
- build
Expand Down
3 changes: 2 additions & 1 deletion CPAC/__main__.py
Original file line number Diff line number Diff line change
Expand Up @@ -321,7 +321,8 @@ def accept_all(object, name, value):

@utils.group()
def data_config():
pass
from CPAC.utils.ga import track_config
track_config('cli')


@data_config.command()
Expand Down
Loading