GitHub - elide-dev/setup-elide: Sets up Elide in a GitHub action

Elide CI codecov Contributor Covenant

This repository provides a GitHub Action to install the Elide runtime within your workflows.

Quick Start

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

This installs the latest nightly build of Elide and adds it to the PATH.

Usage Examples

Install a specific version

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

Install via apt on Debian/Ubuntu

- name: "Setup: Elide"
  uses: elide-dev/setup-elide@v4
  with:
    installer: apt

Install via shell script (uses GitHub Releases for faster downloads in GHA)

- name: "Setup: Elide"
  uses: elide-dev/setup-elide@v4
  with:
    installer: shell

Install via PKG on macOS

- name: "Setup: Elide"
  uses: elide-dev/setup-elide@v4
  with:
    installer: pkg

Install without adding to PATH

- name: "Setup: Elide"
  uses: elide-dev/setup-elide@v4
  with:
    export_path: false

Use outputs in subsequent steps

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

- name: "Check"
  run: |
    echo "Installed: ${{ steps.setup-elide.outputs.version }}"
    echo "Path: ${{ steps.setup-elide.outputs.path }}"
    echo "Cached: ${{ steps.setup-elide.outputs.cached }}"
    echo "Installer: ${{ steps.setup-elide.outputs.installer }}"

Inputs

Input Type Default Description
version string latest Version to install, or latest for the newest release
channel string nightly Release channel: nightly, preview, or release
installer string archive Installation method (see Installers below)
os string (auto) Target OS override
arch string (auto) Target architecture override
install_path string (conventional) Custom install directory
force boolean false Force installation even if Elide is already installed
export_path boolean true Add Elide to the PATH
no_cache boolean false Disable the GitHub Actions tool cache
telemetry boolean true Enable anonymous error telemetry (details)
token string ${{ github.token }} GitHub token for API requests
custom_url string Custom download URL (overrides all other download logic)
version_tag string Version tag to use with a custom download URL

Outputs

Output Description
path Path to the installed Elide binary
version Installed version string
cached true if the installation was served from the tool cache
installer The effective installer method that was used

Installers

The installer input controls how Elide is installed. The default (archive) downloads a prebuilt archive from the Elide CDN and caches it using the GitHub Actions tool cache.

Installer Platforms Description
archive All Download and extract a .tgz/.txz/.zip archive (default)
shell All Run the official install script (install.sh or install.ps1)
apt Linux (Debian/Ubuntu) Install via the Elide apt repository
rpm Linux (RHEL/Fedora) Install via .rpm package
pkg macOS Install via .pkg installer
msi Windows Install via .msi installer

If you choose an installer that doesn't match your platform (e.g., msi on Linux), the action will warn and fall back to archive.

Supported Platforms

Platform Architectures
Linux amd64, aarch64
macOS amd64, aarch64
Windows amd64

OS aliases: darwin, mac, macos, windows, win, win32, linux Arch aliases: amd64, x64, x86_64, aarch64, arm64

Caching

The archive installer uses the GitHub Actions tool cache to avoid re-downloading on subsequent runs. Cache keys are scoped by version and architecture. Set no_cache: true to disable caching.

Telemetry

This action sends anonymous error telemetry to help the Elide team detect and fix issues at scale. No secrets, tokens, environment variables, or personally identifiable information are ever transmitted. Only the error message (scrubbed of sensitive values), stack trace, and action configuration (installer, os, arch, channel, version) are sent.

To opt out:

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

GitHub Integration

This action uses GitHub Actions features to provide a polished CI experience:

  • Grouped log output -- Installation phases are wrapped in collapsible log groups
  • Job summary -- A summary table is written to the Actions Summary tab showing version, platform, installer, timing, and cache status
  • Annotations -- Errors and warnings appear as titled annotations in the Actions UI
  • Rich outputs -- Downstream steps can branch on cached, installer, version, and path

What is Elide?

Elide is a new runtime and framework designed for the polyglot era. Mix and match languages including JavaScript, Python, Ruby, and JVM, with the ability to share objects between them. It's fast: Elide can execute Python at up to 3x the speed of CPython, Ruby at up to 22x vs. CRuby, and JavaScript at up to 75x the speed of Node.

  • Visit elide.dev, our website, which runs on Elide
  • Watch the launch video for demos, benchmarks, and a full feature tour
  • Join the devs on Discord, we are always open to new ideas and feedback

License

MIT