MCPcopy Index your code
hub / github.com/denoland/setup-deno

github.com/denoland/setup-deno @v2.0.5

Chat with this repo
repository ↗ · DeepWiki ↗ · release v2.0.5 ↗ · + Follow
22 symbols 63 edges 6 files 0 documented · 0%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

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
latest 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_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.

By default, the cache is automatically keyed by:

  • the github job_id
  • the runner os and architecture
  • a hash of the deno.lock files 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') }}

Extension points exported contracts — how you extend this code

VersionRange (Interface)
(no doc)
src/version.ts
ImportMeta (Interface)
(no doc)
src/main.ts
Version (Interface)
(no doc)
src/version.ts

Core symbols most depended-on inside this repo

fetchWithRetries
called by 5
src/version.ts
exit
called by 2
src/main.ts
saveCache
called by 1
src/cache.ts
restoreCache
called by 1
src/cache.ts
resolveDefaultCacheKey
called by 1
src/cache.ts
resolveDenoDir
called by 1
src/cache.ts
exec
called by 1
src/cache.ts
main
called by 1
src/post.ts

Shape

Function 19
Interface 3

Languages

TypeScript100%

Modules by API surface

src/version.ts10 symbols
src/cache.ts5 symbols
src/main.ts4 symbols
src/install.ts2 symbols
src/post.ts1 symbols

For agents

$ claude mcp add setup-deno \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact