Skip to content

Setup IVPM

Actions

About

Install IVPM, restore its dependency cache, and run ivpm update
v1.0.0
Latest
Star (0)

Setup IVPM (ivpm-setup)

A GitHub Action that installs IVPM, restores its content-addressed dependency cache, and runs ivpm update — collapsing the usual CI boilerplate into one cache-aware step.

- uses: actions/checkout@v4
- uses: fvutils/ivpm-setup@v1
  with:
    dep-set: ci
# deps are now populated in ./packages, and the cache is warm

Instead of this (no caching — re-clones/re-downloads every run):

- run: python -m pip install ivpm
- run: ivpm update

What it does

  1. Installs IVPM (pinned if you want), using uv when available, else pip.
  2. Restores IVPM's content-addressed cache (and optionally the pip/uv download caches), keyed on your dependency manifest.
  3. Runs ivpm update to populate ./packages (unless run-update: false).
  4. Saves the cache inline after the update.

IVPM's cache is content-addressed by commit/version, so restoring a stale cache is always safe — only changed deps are re-fetched.

Quickstart

name: CI
on: [push, pull_request]
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: fvutils/ivpm-setup@v1
      - run: ./packages/python/bin/python -m pytest

Running workspace tools

After ivpm update, run tools either directly (./packages/python/bin/python …) or — for workspaces that pull in tools publishing export.envrc (e.g. EDA toolchains) — through direnv against the generated packages/packages.envrc:

      - uses: fvutils/ivpm-setup@v1
      - run: sudo apt-get update && sudo apt-get install -y direnv && direnv allow .
      - run: direnv exec . pytest

This needs direnv on the runner and a project-root .envrc that does source_env packages/packages.envrc. See the docs for details.

Common inputs

Input Default Description
version latest IVPM version spec to install (pin for reproducibility).
python-version If set, runs actions/setup-python first.
installer auto auto (uv if available, else pip), pip, or uv.
dep-set Dependency set(s); repeated -d. Newline/comma/space separated.
run-update true false for setup-only mode.
token ${{ github.token }} Token for private deps / API limits.

See the full documentation for all inputs, outputs, caching details, and authentication.

Outputs

Output Description
cache-hit true if the primary cache key matched exactly.
ivpm-version Resolved installed IVPM version.
cache-dir Absolute path used as IVPM_CACHE.

Documentation

Full docs: https://fvutils.github.io/ivpm-setup/

License

See LICENSE.

Setup IVPM is not certified by GitHub. It is provided by a third-party and is governed by separate terms of service, privacy policy, and support documentation.

About

Install IVPM, restore its dependency cache, and run ivpm update
v1.0.0
Latest

Setup IVPM is not certified by GitHub. It is provided by a third-party and is governed by separate terms of service, privacy policy, and support documentation.