Skip to content

[ENH] Migrate to CircleCI 2.0 and workflows #943

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

Merged
merged 79 commits into from
Jan 29, 2018

Conversation

oesteban
Copy link
Member

@oesteban oesteban commented Jan 28, 2018

Hopefully, this PR will:

  • Make use of docker caching (and stop inflating the docker pull count)
  • Shorten the overall run time. From 1h 45m down to 1h. Additionally, jobs are individual so scheduling can be more efficient. Runtime upper bound: 2h 40min.
  • Test caching (the anatomical workflows of ds005 and ds054 are pre-cached and updated if the workflow changes).
  • The [docs only] marker is not supported anymore. However, only documentation branches can be built using branch that start with doc/ or docs/.

Please merge with --squash, since the try-and-error with Circle took +70 commits.

@effigies
Copy link
Member

Have you tried building without cache? It would be good to get an upper bound of build time.

@oesteban
Copy link
Member Author

Hopefully this one will work. The docker image was cached, but there is no real difference between building the image from scratch and using cache (30m vs. 28m respectively).

@oesteban
Copy link
Member Author

Upper bound to build time: 2h 40min.

@oesteban
Copy link
Member Author

Merge #944 first.

@oesteban oesteban merged commit 476d51b into nipreps:master Jan 29, 2018
@effigies
Copy link
Member

So did you actually manage to save time by pre-building the Docker image? I didn't follow everything you did here, but in nipype I was finding that the persisting to workspace + reloading was actually taking longer than building the images in the individual test blocks. If you want to critique nipy/nipype#2386 with that in mind, I'd appreciate that. (When you get some minutes. No rush.)

@oesteban
Copy link
Member Author

Nope, I'm seeing the same thing: #943 (comment)

But I thought it is a good testing exercise to keep using the cache and then persisting to the workspace. Maybe in a future, they optimize these processes at Circle (more bandwidth, mostly) and we start having some improvements. For now, it just protects us from downtimes in FreeSurfer and Neurodebian servers: build time is more predictable with the cache.

Other than that, I agree this is not a breakthrough in our testing. At the very least we'll be ready for retirement of CircleCI 1.0.

I'll check nipy/nipype#2386, actually that was the origin of my interest to start this PR.

@oesteban oesteban deleted the circle/2.0b branch February 2, 2018 18:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants