# setup-deno

Set up your GitHub Actions workflow with a specific version of Deno.

## Usage

### Latest stable for a major

```yaml
- uses: denoland/setup-deno@v1
  with:
    deno-version: v1.x
```

### Latest stable for any major

Targets the latest major, minor and patch version of Deno.

```yaml
- uses: denoland/setup-deno@v1
  with:
    deno-version: vx.x.x
```

### Specific stable

```yaml
- uses: denoland/setup-deno@v1
  with:
    deno-version: "1.8.2"
```

### Semver range

```yaml
- uses: denoland/setup-deno@v1
  with:
    deno-version: "~1.7"
```

### Latest canary

```yaml
- uses: denoland/setup-deno@v1
  with:
    deno-version: canary
```

### Specific canary

```yaml
- uses: denoland/setup-deno@v1
  with:
    deno-version: e7b7129b7a92b7500ded88f8f5baa25a7f59e56e
```

### Latest release candidate

```yaml
- uses: denoland/setup-deno@v1
  with:
    deno-version: rc
```

### Specific release candidate

```yaml
- uses: denoland/setup-deno@v1
  with:
    deno-version: 2.0.0-rc.1
```

### Version from file

The extension can also automatically read the version file from
[`.tool-versions`](https://asdf-vm.com/manage/configuration.html#tool-versions)

```yaml
- uses: denoland/setup-deno@v1
  with:
    deno-version-file: .tool-versions
```

The extension can also automatically read the file from
[`dvm`](https://github.com/justjavac/dvm).

```yaml
- uses: denoland/setup-deno@v1
  with:
    deno-version-file: .dvmrc
```

### Specifying binary name

This is useful when you want to install different versions of Deno side by side.

```yaml
- uses: denoland/setup-deno@v1
  with:
    deno-version: canary
    deno-binary-name: deno_canary
```

### Determining the release channel

You can determine the release channel reading back the `release-channel` output.

Valid values are `stable`, `canary` and `rc`.

```yaml
- uses: denoland/setup-deno@v1
  id: deno
  with:
    deno-version: canary

- run: echo "Deno release channel is ${{ steps.deno.outputs.release-channel }}"
```

### Determining the installed version

You can determine the installed version reading back the `deno-version` output.

For canary versions, the output will be in the form `0.0.0-GIT_HASH`.

For stable and rc versions, the output will be the regular semver version
number.

```yaml
- uses: denoland/setup-deno@v1
  id: deno
  with:
    deno-version: canary

- run: echo "Deno version is ${{ steps.deno.outputs.deno-version }}"
```
