Skip to content

How to use Volta in CI #43

Open
Open
@dherman

Description

@dherman

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 or source 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    docsSpecific to the docs. subdomain

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions