Elide in CI

Elide provides an official GitHub Action for installing the runtime in your workflows.

Quick Start

yaml
- name: "Setup: Elide"
  uses: elide-dev/setup-elide@v4

This installs the latest nightly build and adds it to the PATH. The binary is cached using the GitHub Actions tool cache so subsequent runs skip the download.

Install a Specific Version

Pin to a version and channel:

yaml
- name: "Setup: Elide"
  uses: elide-dev/setup-elide@v4
  with:
    version: 1.0.0
    channel: release

Installers

The installer input controls how Elide is installed:

yaml
- name: "Setup: Elide"
  uses: elide-dev/setup-elide@v4
  with:
    installer: apt
archive (default) -- Downloads a compressed archive (.tgz, .txz, or .zip) from the Elide CDN. Works on all platforms. Cached automatically by the GitHub Actions tool cache so repeated runs are fast. shell -- Runs the official install script. On Linux and macOS this runs install.sh; on Windows it runs install.ps1. The scripts use GitHub Releases for downloads, which can be faster inside GitHub Actions runners. apt -- Adds the Elide apt repository and installs via apt-get. Best for Debian and Ubuntu runners where you want system-level package management. rpm -- Downloads and installs a .rpm package. Uses dnf when available, otherwise falls back to rpm. For RHEL, Fedora, and CentOS runners. pkg -- Downloads and runs a macOS .pkg installer. For macOS runners. msi -- Downloads and runs a Windows .msi installer via msiexec. For Windows runners.

If you choose an installer that doesn't match your platform (e.g., apt on macOS), the action warns and falls back to archive.

Outputs

The action provides outputs you can reference in subsequent steps:

yaml
- name: "Setup: Elide"
  id: elide
  uses: elide-dev/setup-elide@v4

- name: "Print version"
  run: echo "Elide ${{ steps.elide.outputs.version }} at ${{ steps.elide.outputs.path }}"
OutputDescription
pathPath to the installed Elide binary
versionInstalled version string
cachedtrue if served from the tool cache
installerThe installer method that was used

All Inputs

InputDefaultDescription
versionlatestVersion to install
channelnightlyRelease channel: nightly, preview, or release
installerarchiveInstallation method
os_(auto)_Target OS override
arch_(auto)_Target architecture override
install_path_(conventional)_Custom install directory
forcefalseForce installation even if Elide is already present
export_pathtrueAdd Elide to the PATH
no_cachefalseDisable the tool cache
telemetrytrueEnable anonymous error telemetry
token${{ github.token }}GitHub token for API requests

Supported Platforms

PlatformArchitectures
Linuxamd64, aarch64
macOSamd64, aarch64
Windowsamd64

Caching

The archive installer caches binaries using the GitHub Actions tool cache. Subsequent runs with the same version and architecture skip the download. Set no_cache: true to disable.

Telemetry

The action sends anonymous error reports to help detect failures. No secrets, tokens, or environment data are transmitted. To opt out:

yaml
- uses: elide-dev/setup-elide@v4
  with:
    telemetry: false

Example Workflow

yaml
name: CI
on: [push, pull_request]

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - name: "Setup: Elide"
        uses: elide-dev/setup-elide@v4
        with:
          channel: release
          version: latest

      - name: "Run"
        run: elide run app.js