Open
Description
I had a great conversation with @chancancode about using Volta in CI. The main takeaway was we should have instructions in the docs for how to use Volta in CI. But it turned out to be nontrivial and we should spend some time polishing the user experience and testing it out in popular CI systems (Travis, Circle, Azure Pipelines, and GitHub Actions). We should also have doc pages or sections for each of these popular CI systems.
Some of the challenges Godfrey ran into:
- In Travis, the setup command
curl | bash
silently fails sometimes because of something about how Travis does download caching. - Since installing Volta requires opening a new shell to get the persisted changes to the environment, you can't install it and use it in the same shell. What should we recommend here?
- Manually make the env changes in CI?
- Some kind of CI installer that spits out commands to
eval
orsource
in the CI yaml? - Should we move the volta executable to
VOLTA_HOME/bin
? - Can we eliminate the function wrapper soon?
- How should we interact with build matrices? It would be nice to be able to choose different tool versions via VOLTA_* env vars, but we should think about whether this kind of precedence algorithm (overriding local config with an env var) could be problematic.
For reference, here's a fairly minimal travis config Godfrey is using for his project, where he got Volta working.