# Continuous integration

> Install Elide in GitHub Actions with the setup-elide action, pin a release instead of the default nightly channel, and see an example workflow.

The [setup-elide](https://github.com/elide-dev/setup-elide) action installs Elide and adds it to `PATH`. It
defaults to `nightly`; pin a release:

```yaml
- name: Set up Elide
  uses: elide-dev/setup-elide@v4.2.0
  with:
    version: 1.6.0
    channel: release
```

The action's README lists its other inputs and outputs.

## Example workflow

```yaml
name: CI
on: [push, pull_request]

jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: elide-dev/setup-elide@v4.2.0
        with:
          version: 1.6.0
          channel: release
      - run: elide install --workspace
      - run: elide format --list-files -- --dry-run src
      - run: elide test
```

`elide install --workspace` installs every ecosystem the project declares; plain `elide install` installs Maven
only. The format step fails when a file under `src` needs formatting.

The action does not install Python; add a step for it:

```yaml
- run: elide setup python
```

To trace `elide build` and `elide test` in CI, see [Builds and tests in CI](https://elide.help/docs/opentelemetry/runtime#builds-and-tests-in-ci).
