
setup-deno
https://github.com/denoland/setup-deno- Category
- Developer Tools
- Rank
- No. 398Tools index
- Pricing
- Open Source
- Type
- TOOL
- Builder
- denoland
- GitHub
- 330 stars
- Latest release
- v2.0.5
- Date
About
GitHub Action for setting up a specific version of Deno in your CI workflow.
What it does
It resolves a requested Deno release, downloads the matching archive, caches the installation, and adds its binaries to the workflow path. Version choices include stable ranges, LTS, release candidates, canary builds, commit hashes, and project version files. Optional dependency caching can reduce repeated network work.
Why it's ranked here
This is a focused choice for Deno automation because it handles both ordinary pinned releases and less common channels through one configuration surface. Version and release-channel outputs help later steps inspect what was installed. Built-in installation and dependency caches address repeated downloads, though version resolution still depends on remote Deno services.
What's good
Version selection is unusually flexible: exact releases, semantic ranges, channels, commit hashes, and version files all work. It supports renamed binaries for side-by-side installations. Dependency caching uses the job, runner operating system, architecture, and project lock data, while allowing callers to replace the project hash.
Tradeoffs
Supported runners are limited to Linux, macOS, and Windows on x64 or arm64. Stable range resolution and moving channels require network access to Deno release services. Dependency caching needs matching Deno directory configuration across relevant steps. The default version is a moving major range, so reproducibility requires an explicit pin.
How to use it well
Use it in GitHub Actions jobs that need a predictable Deno executable before linting, testing, building, or publishing. Pin an exact release when repeatability matters, and enable dependency caching when jobs repeatedly fetch the same locked modules. It installs and caches Deno, but it does not define or execute your project checks or deployment process.
Technical notes+
action.yml defines a Node 24 action with separate main and always-run post entrypoints, five inputs, and three outputs. src/main.ts parses configuration, resolves a release, installs it, registers the problem matcher, emits version metadata, and optionally restores dependency state. src/version.ts uses semver plus retried HTTP requests, with exponential delays capped at 10 seconds. src/install.ts downloads ZIP archives through the Actions tool cache and supports Linux, Darwin, and Windows for x64 and arm64. src/cache.ts restores failures as warnings but lets save failures reach src/post.ts, which marks the action failed. scripts/build.ts bundles src/main.ts and src/post.ts as ESM targeting Node 20.19, while action.yml selects the Node 24 runtime.
Observed
- License
- MIT
- Primary language
- TypeScript
- Packaging
- GitHub Action executed with the Node 24 runtime
- Interface
- Workflow inputs for version, version file, binary name, dependency caching, and cache hash
- Outputs
- Cache hit status, installed Deno version, and release channel
- Platform support
- Linux, macOS, and Windows on x64 or arm64
Read from README.md, deno.json, package.json, src/main.ts, src/post.ts, src/cache.ts, src/install.ts, src/version.ts, scripts/build.ts, .dvmrc, LICENSE, deno.lock, CODEOWNERS, action.yml, .tool-versions.
What it can do
Install specific version of Deno
Version number or tag → Deno runtime installed in CI environment
Add Deno to system PATH
Installed Deno binary → Deno command available globally in CI steps
Cache Deno installation
Deno version and platform info → Cached Deno binary for faster subsequent runs
Download Deno from official releases
GitHub releases API and version specification → Deno binary downloaded to runner
Set up environment variables
Deno installation path → Environment variables configured for Deno usage
Tags
Tech Stack
Comments (0)
No comments yet
Editorially curated, with community endorsements as a secondary signal. Corrections welcome.