setup-deno
Set up your GitHub Actions workflow with a specific version of Deno.
Usage
The installed version is v2.x by default.
- uses: denoland/setup-deno@v2
Version from input
To pick the latest version of specific release channel, set deno-version to
one of the following:
| Channel | Description |
|---|---|
stable |
Latest Stable release version |
lts |
Latest Long-Term-Support version |
rc |
Latest Release-Candidate version |
canary |
Latest Canary release version |
- uses: denoland/setup-deno@v2
with:
deno-version: lts
A version can also be selected by providing a valid Semver range or commit hash.
Examples
- Specific versions:
"1.8.2",2.0.0-rc.1 - Semver range:
"^2","~1.7",v2.1.x,vx.x.x - Commit hash:
e7b7129b7a92b7500ded88f8f5baa25a7f59e56e
- uses: denoland/setup-deno@v2
with:
deno-version: v2.1.x
Version from file
The extension can also automatically read the version file from
.tool-versions
- uses: denoland/setup-deno@v2
with:
deno-version-file: .tool-versions
The extension can also automatically read the file from
dvm.
- 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.
- 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, lts, canary and rc.
- 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.
- 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 between workflow runs. This helps make your GH action run faster by not repeating caching work and network requests done by a previous run.
To enable the cache, use cache: true.
- uses: denoland/setup-deno@v2
with:
cache: true
Warning
If an environment variable
DENO_DIRis set for steps that run/download dependencies, thenDENO_DIRmust also be set for thedenoland/setup-denoaction, for the caching to work as intended.
By default, the cache is automatically keyed by:
- the github job_id
- the runner os and architecture
- a hash of the
deno.lockfiles in the project
It is possible to customize the default hash
(${{ hashFiles('**/deno.lock') }}) used as part of the cache key via the
cache-hash input.
- uses: denoland/setup-deno@v2
with:
# setting `cache-hash` implies `cache: true` and will replace
# the default cache-hash of `${{ hashFiles('**/deno.lock') }}`
cache-hash: ${{ hashFiles('**/deno.json') }}