Vibeleaderboard
Index / tool
Visit github.com
Category
Developer Tools
Rank
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 tagDeno runtime installed in CI environment

  • Add Deno to system PATH

    Installed Deno binaryDeno command available globally in CI steps

  • Cache Deno installation

    Deno version and platform infoCached Deno binary for faster subsequent runs

  • Download Deno from official releases

    GitHub releases API and version specificationDeno binary downloaded to runner

  • Set up environment variables

    Deno installation pathEnvironment variables configured for Deno usage

Tags

denogithub-actionscitypescript

Tech Stack

Node.js

Comments (0)

No comments yet

Editorially curated, with community endorsements as a secondary signal. Corrections welcome.