-
Notifications
You must be signed in to change notification settings - Fork 224
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
Use mamba to install Continuous Integration dependencies #841
Conversation
Specifically using `mambaforge` which is a `miniconda` replacement that defaults to using the `conda-forge` channel and `mamba` instead of `conda` by default.
Delete the requirements-dev.txt file, and update the ci_test.yml to install GMT dependencies while setting up mamba.
Should we try the cache action? |
Sure, feel free to try it out in this branch. I'll be heading out for most of the day. |
This reverts commit bf1e97d.
defaults to see if it speeds up resolver. See also https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-channels.html#strict-channel-priority
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As you can see, caching (bf1e97d) doesn't help.
See PR #932 for another test. It's clear that fewer packages mean faster speed.
I've reverted the caching step, and configured setup-miniconda
to use strict channel priority (conda-forge only, with no packages from default anaconda channel) which speeds up the conda/mamba resolver step (see https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-channels.html#strict-channel-priority). See if this looks ok @seisman.
It looks great. Maybe also update |
Ok, updated |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks @seisman, I'll merge this PR on second approval or in ~12 hours, and that should give us some good CI time savings!
Don't forget to remove the |
…ingTools#841) Specifically using `mambaforge` which is a `miniconda` replacement that defaults to using the `conda-forge` channel and `mamba` instead of `conda` by default. * Set strict channel priority to conda-forge only with no defaults to see if it speeds up resolver. See also https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-channels.html#strict-channel-priority * Use mamba on GMT Dev Tests CI build * Use mamba in CI docs and Cache Data workflows * Pin gmt dev version to 6.3 on Windows CI Co-authored-by: Dongdong Tian <[email protected]>
Description of proposed changes
To cut down on our Continuous Integration's installation time (~9 min on Windows), let's replace
conda
with a more efficient installer calledmamba
! Specifically usingmambaforge
which is a fasterminiconda
replacement that defaults to using theconda-forge
channel andmamba
instead ofconda
by default.Continuation of #813 which sped up our Continuous Documentation builds.
Update September 2021: Below shows comparison on Windows - Python 3.9 with a 5min speedup (18m44s -> 13m42s), this is without caching.
conda
(18m 44s)mamba
(13m 42s)More benchmarks:
References:
Addresses #584
Reminders
make format
andmake check
to make sure the code follows the style guide.doc/api/index.rst
.Slash Commands
You can write slash commands (
/command
) in the first line of a comment to performspecific operations. Supported slash commands are:
/format
: automatically format and lint the code/test-gmt-dev
: run full tests on the latest GMT development version