https://github.com/elide-dev/setup-elide
Sets up Elide in a GitHub action
https://github.com/elide-dev/setup-elide
elide github-actions javascript kotlin runtime typescript
Last synced: 24 days ago
JSON representation
Sets up Elide in a GitHub action
- Host: GitHub
- URL: https://github.com/elide-dev/setup-elide
- Owner: elide-dev
- License: mit
- Created: 2023-10-15T23:46:13.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2026-03-27T15:13:57.000Z (about 1 month ago)
- Last Synced: 2026-03-27T17:40:24.512Z (about 1 month ago)
- Topics: elide, github-actions, javascript, kotlin, runtime, typescript
- Language: TypeScript
- Homepage: https://elide.dev
- Size: 2.31 MB
- Stars: 4
- Watchers: 4
- Forks: 2
- Open Issues: 11
-
Metadata Files:
- Readme: README.md
- Code of conduct: .github/CODE_OF_CONDUCT.md
- Codeowners: .github/CODEOWNERS
- Security: .github/SECURITY.md
Awesome Lists containing this project
README
# GitHub Action: Setup Elide
[](https://elide.dev)
[](https://github.com/elide-dev/setup-elide/actions)
[](https://codecov.io/gh/elide-dev/setup-elide)
[](.github/CODE_OF_CONDUCT.md)
This repository provides a [GitHub Action][0] to install the [Elide][1] runtime within your workflows.
## Quick Start
```yaml
- 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**
```yaml
- name: "Setup: Elide"
uses: elide-dev/setup-elide@v4
with:
version: 1.0.0
channel: release
```
**Install via apt on Debian/Ubuntu**
```yaml
- name: "Setup: Elide"
uses: elide-dev/setup-elide@v4
with:
installer: apt
```
**Install via shell script (uses GitHub Releases for faster downloads in GHA)**
```yaml
- name: "Setup: Elide"
uses: elide-dev/setup-elide@v4
with:
installer: shell
```
**Install via PKG on macOS**
```yaml
- name: "Setup: Elide"
uses: elide-dev/setup-elide@v4
with:
installer: pkg
```
**Install without adding to PATH**
```yaml
- name: "Setup: Elide"
uses: elide-dev/setup-elide@v4
with:
export_path: false
```
**Use outputs in subsequent steps**
```yaml
- 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](#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](#telemetry)) |
| `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][4] 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:
```yaml
- 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][1]**, our website, which runs on Elide
- **Watch the [launch video][2]** for demos, benchmarks, and a full feature tour
- **Join the devs on [Discord][3]**, we are always open to new ideas and feedback
## License
[MIT](.github/LICENSE)
[0]: https://github.com/features/actions
[1]: https://elide.dev
[2]: https://www.youtube.com/watch?v=Txl9ryfbCw4
[3]: https://elide.dev/discord
[4]: https://github.com/actions/toolkit/tree/main/packages/tool-cache