-
Notifications
You must be signed in to change notification settings - Fork 300
Closed
Description
📰 Custom Issue
Current cirrus ci resolves a new environment every run. Due to computational constraints, sometimes this can take more than an hour and force the job to timeout when running the command conda env update --prefix=/tmp/cirrus-ci-build/.nox/tests --file=requirements/ci/py36.yml --prune. Proposed alternative:
- Create environment:
a. ifenvironment-py36.lockdoesn't exist, resolve an environment withconda env create. useconda-lockto create an explicit lock fileenvironment-py36.yml.
b. ifenvironment-py36.lockdoes exist, useconda create -f environment-py36.ymlto avoid resolving a new env. - Run tests.
- Only cache
environment-py36.ymlwith our current cache invalidation logic (weekly I think?) rather than the whole conda directory.
This would mean reproducible environments, but not committing an explicit environment to our repo and avoid long resolve and update calls in the CI.
Alternatively, we could resolve and check-in lock files to our repository. This is standard practice in the javascript world, see https://stackoverflow.com/questions/44206782/do-i-commit-the-package-lock-json-file-created-by-npm-5 for some discussions of the pros and cons of doing so.
trexfeathers and tkknight
Metadata
Metadata
Assignees
Labels
No labels