setup-deno
Set up your GitHub Actions workflow with a specific version of Deno.
Usage
Latest stable for a major
- 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.
- uses: denoland/setup-deno@v2
with:
deno-version: vx.x.x
Specific stable
- uses: denoland/setup-deno@v2
with:
deno-version: "1.8.2"
Semver range
- uses: denoland/setup-deno@v2
with:
deno-version: "~1.7"
Latest canary
- uses: denoland/setup-deno@v2
with:
deno-version: canary
Specific canary
- uses: denoland/setup-deno@v2
with:
deno-version: e7b7129b7a92b7500ded88f8f5baa25a7f59e56e
Latest release candidate
- uses: denoland/setup-deno@v2
with:
deno-version: rc
Specific release candidate
- uses: denoland/setup-deno@v2
with:
deno-version: 2.0.0-rc.1
Latest LTS
- uses: denoland/setup-deno@v2
with:
deno-version: lts
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') }}