Files
setup-deno/README.md
2025-05-12 12:53:44 -04:00

164 lines
3.1 KiB
Markdown

# 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@v2
with:
deno-version: v2.x
```
### Latest stable for any major
Targets the latest major, minor and patch version of Deno.
```yaml
- uses: denoland/setup-deno@v2
with:
deno-version: vx.x.x
```
### Specific stable
```yaml
- uses: denoland/setup-deno@v2
with:
deno-version: "1.8.2"
```
### Semver range
```yaml
- uses: denoland/setup-deno@v2
with:
deno-version: "~1.7"
```
### Latest canary
```yaml
- uses: denoland/setup-deno@v2
with:
deno-version: canary
```
### Specific canary
```yaml
- uses: denoland/setup-deno@v2
with:
deno-version: e7b7129b7a92b7500ded88f8f5baa25a7f59e56e
```
### Latest release candidate
```yaml
- uses: denoland/setup-deno@v2
with:
deno-version: rc
```
### Specific release candidate
```yaml
- uses: denoland/setup-deno@v2
with:
deno-version: 2.0.0-rc.1
```
### Latest LTS
```yaml
- uses: denoland/setup-deno@v2
with:
deno-version: lts
```
### 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@v2
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@v2
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@v2
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@v2
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@v2
id: deno
with:
deno-version: canary
- run: echo "Deno version is ${{ steps.deno.outputs.deno-version }}"
```
### Caching dependencies downloaded by Deno automatically
Dependencies installed by Deno can be cached automatically, which is similar to
the [`cache` option in `setup-node`](https://github.com/actions/setup-node).
To enable the cache, use `cache: true`. It's recommended to also add the
`cache-hash` property, to scope caches based on lockfile changes.
```yaml
- uses: denoland/setup-deno@v2
with:
cache: true
cache-hash: ${{ hashFiles('**/deno.lock') }}
```
> [!WARNING]
> If an environment variable `DENO_DIR` is set for steps that run/download
> dependencies, then `DENO_DIR` must also be set for the `denoland/setup-deno`
> action, for the caching to work as intended.