prep-ipm

Downloads and installs the IPM CLI for the runner’s OS and architecture, then exposes it on PATH. Safe to call multiple times within a job — it skips the download if the requested version is already installed.

This action is used internally by ipm-init, ipm-sync, and ipm-status. You only need to use it directly if you want to run IPM CLI commands manually in a subsequent step.

Usage

- uses: ipmhubio/ipm-actions/.github/actions/prep-ipm@v1
  with:
    version: ''          # Optional: specific version without 'v' prefix (default: latest)
    alias-name: 'ipm'   # Optional: alias exposed on PATH (default: 'ipm')

Inputs

Input Required Default Description
version No latest Specific IPM version to install, without the v prefix (e.g. 0.12.0). Omit or leave empty for latest.
alias-name No ipm The name of the binary alias exposed on PATH.
alias-per-version No false When true, the alias becomes <alias-name>-<version> so multiple versions can coexist in the same job.
install-root No ${{ runner.temp }}/ipm-bin Root directory used to cache installs across steps within the job.

Outputs

Output Description
bin_dir Directory containing the installed binary.
alias_path Full path to the binary alias.
alias Alias name that was added to PATH.
version_key Normalized version key (e.g. 0.12.0 or latest).

Supported Platforms

OS Architectures
Ubuntu x64, arm, arm64
macOS x64, arm64
Windows x86, x64, arm64

Examples

Install latest and use in a subsequent step

- name: Install IPM
  id: ipm
  uses: ipmhubio/ipm-actions/.github/actions/prep-ipm@v1

- name: Run custom IPM command
  run: ipm info myorg/mypackage --non-interactive
  env:
    IPM_CLIENT_SECRETS: ${{ secrets.IPM_CLIENT_SECRETS }}

Pin a specific version

- name: Install IPM 0.12.0
  uses: ipmhubio/ipm-actions/.github/actions/prep-ipm@v1
  with:
    version: '0.12.0'

Run two IPM versions in the same job

- name: Install IPM latest
  uses: ipmhubio/ipm-actions/.github/actions/prep-ipm@v1
  with:
    alias-per-version: 'true'

- name: Install IPM 0.10.0
  uses: ipmhubio/ipm-actions/.github/actions/prep-ipm@v1
  with:
    version: '0.10.0'
    alias-per-version: 'true'

- name: Compare outputs
  run: |
    ipm-latest --version
    ipm-0.10.0 --version