Set up your GitHub Actions workflow with a specific version of Bun
Find a file
Jozef Steinhübl 22457c87c1
Some checks failed
autofix.ci / format (push) Failing after 54s
🧪 Test / remove-cache (push) Successful in 55s
🧪 Test / Tests (push) Successful in 3m16s
🧪 Test / setup-bun (1.1.0, ubuntu-latest) (push) Successful in 57s
🧪 Test / setup-bun (canary, ubuntu-latest) (push) Successful in 1m0s
🧪 Test / setup-bun from (ubuntu-latest, .tool-versions (bun 1.1.0)) (push) Successful in 57s
🧪 Test / setup-bun from (ubuntu-latest, .tool-versions (bun1.1.0)) (push) Successful in 57s
🧪 Test / setup-bun from (ubuntu-latest, package.json (packageManager bun@1.1.0)) (push) Successful in 57s
🧪 Test / setup-bun from (ubuntu-latest, download url) (push) Successful in 1m0s
🧪 Test / setup-bun (latest, ubuntu-latest) (push) Successful in 59s
🧪 Test / setup-bun from (ubuntu-latest, .bumrc (1.1.0)) (push) Successful in 57s
🧪 Test / setup-bun from (ubuntu-latest, .bun-version (1.1.0)) (push) Successful in 57s
🧪 Test / setup-bun from (ubuntu-latest, .tool-versions (bun 1.1.0)) (push) Successful in 57s
🧪 Test / setup-bun from (ubuntu-latest, foo/package.json (packageManager bun@1.1.0)) (push) Successful in 57s
🧪 Test / setup-bun from (ubuntu-latest, package.json (engines bun@1.1.0)) (push) Successful in 1m1s
🧪 Test / setup-bun from (ubuntu-latest, package.json (packageManager yarn@bun@1.1.0)) (push) Successful in 57s
🧪 Test / test installing deps from custom registries (ubuntu-latest) (push) Failing after 3m15s
🧪 Test / setup-bun from (macos-latest, .tool-versions (bun 1.1.0)) (push) Has been cancelled
🧪 Test / setup-bun from (windows-latest, .tool-versions (bun1.1.0)) (push) Has been cancelled
🧪 Test / setup-bun (1.1.0, macos-latest) (push) Has been cancelled
🧪 Test / setup-bun (1.1.0, windows-latest) (push) Has been cancelled
🧪 Test / setup-bun (canary, macos-latest) (push) Has been cancelled
🧪 Test / setup-bun (canary, windows-latest) (push) Has been cancelled
🧪 Test / setup-bun (latest, macos-latest) (push) Has been cancelled
🧪 Test / setup-bun (latest, windows-latest) (push) Has been cancelled
🧪 Test / setup-bun from (macos-latest, .bumrc (1.1.0)) (push) Has been cancelled
🧪 Test / setup-bun from (windows-latest, .bumrc (1.1.0)) (push) Has been cancelled
🧪 Test / setup-bun from (macos-latest, .bun-version (1.1.0)) (push) Has been cancelled
🧪 Test / setup-bun from (windows-latest, .bun-version (1.1.0)) (push) Has been cancelled
🧪 Test / setup-bun from (macos-latest, .tool-versions (bun 1.1.0)) (push) Has been cancelled
🧪 Test / setup-bun from (windows-latest, .tool-versions (bun 1.1.0)) (push) Has been cancelled
🧪 Test / setup-bun from (windows-latest, .tool-versions (bun 1.1.0)) (push) Has been cancelled
🧪 Test / setup-bun from (macos-latest, .tool-versions (bun1.1.0)) (push) Has been cancelled
🧪 Test / setup-bun from (macos-latest, foo/package.json (packageManager bun@1.1.0)) (push) Has been cancelled
🧪 Test / setup-bun from (windows-latest, foo/package.json (packageManager bun@1.1.0)) (push) Has been cancelled
🧪 Test / setup-bun from (macos-latest, package.json (engines bun@1.1.0)) (push) Has been cancelled
🧪 Test / setup-bun from (windows-latest, package.json (engines bun@1.1.0)) (push) Has been cancelled
🧪 Test / setup-bun from (macos-latest, package.json (packageManager bun@1.1.0)) (push) Has been cancelled
🧪 Test / setup-bun from (windows-latest, package.json (packageManager bun@1.1.0)) (push) Has been cancelled
🧪 Test / setup-bun from (macos-latest, package.json (packageManager yarn@bun@1.1.0)) (push) Has been cancelled
🧪 Test / setup-bun from (windows-latest, package.json (packageManager yarn@bun@1.1.0)) (push) Has been cancelled
🧪 Test / setup-bun from (macos-latest, download url) (push) Has been cancelled
🧪 Test / setup-bun from (windows-latest, download url) (push) Has been cancelled
docs: remove unnecessary note
2025-07-10 21:09:16 +02:00
.github ci(format): use bun 2025-07-10 21:07:00 +02:00
.vscode chore: add settings for vscode (#120) 2025-07-08 15:29:27 +02:00
dist [autofix.ci] apply automated fixes 2025-07-10 19:07:39 +00:00
src feat: read engines from package json (#132) 2025-07-10 20:58:50 +02:00
tests feat: support for multiple registries (#109) 2025-07-09 12:22:12 +02:00
.gitattributes Fix bunx (#18) 2023-09-11 12:37:45 -07:00
.gitignore Fix bunx (#18) 2023-09-11 12:37:45 -07:00
.prettierrc chore: add settings for vscode (#120) 2025-07-08 15:29:27 +02:00
action.yml feat: support for multiple registries (#109) 2025-07-09 12:22:12 +02:00
bun.lock feat: support for multiple registries (#109) 2025-07-09 12:22:12 +02:00
bunfig.toml build: use text-based Bun lockfile (#116) 2025-01-05 12:45:22 +01:00
LICENSE chore: update package.json, license 2022-07-12 11:03:29 +02:00
package-lock.json feat: support for multiple registries (#109) 2025-07-09 12:22:12 +02:00
package.json feat: support for multiple registries (#109) 2025-07-09 12:22:12 +02:00
README.md docs: remove unnecessary note 2025-07-10 21:09:16 +02:00
tsconfig.json Various improvements and fixes to setup-bun (#40) 2023-11-17 15:58:17 -08:00

setup-bun

Download, install, and setup Bun in GitHub Actions.

Usage

- uses: oven-sh/setup-bun@v2
  with:
    bun-version: latest

Using version file

- uses: oven-sh/setup-bun@v2
  with:
    bun-version-file: ".bun-version"

Using custom registries

You can configure multiple package registries using the registries input. This supports both default and scoped registries with various authentication methods.

Registry configuration

- uses: oven-sh/setup-bun@v2
  with:
    registries: |
      https://registry.npmjs.org/
      @myorg:https://npm.pkg.github.com/|$GITHUB_TOKEN
      @internal:https://username:$INTERNAL_PASSWORD@registry.internal.com/

- name: Install dependencies
  env:
    GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
    INTERNAL_PASSWORD: ${{ secrets.INTERNAL_PASSWORD }}
  run: bun install

Registry format options

Type Format
Default registry https://registry.example.com/
Default registry with token https://registry.example.com/|$TOKEN
Scoped registry @scope:https://registry.example.com/
Scoped registry with token @scope:https://registry.example.com/|$TOKEN
Scoped registry with URL credentials @scope:https://username:$PASSWORD@registry.example.com/

Important

When using authentication, make sure to set the corresponding environment variables in your workflow steps that need access to the registries.

For more information about configuring registries in Bun, see the official documentation.

Override download url

If you need to override the download URL, you can use the bun-download-url input.

- uses: oven-sh/setup-bun@v2
  with:
    bun-download-url: "https://github.com/oven-sh/bun/releases/latest/download/bun-linux-x64.zip"

Inputs

Name Description Default Examples
bun-version The version of Bun to download and install. latest canary, 1.0.0
bun-version-file The version of Bun to download and install from file. undefined package.json, .bun-version, .tool-versions
bun-download-url URL to download .zip file for Bun release
registry-url Registry URL where some private package is stored. undefined "https://npm.pkg.github.com/"
scope Scope for private packages. undefined "@foo", "@orgname"

Outputs

Name Description Example
bun-version The output from bun --version. 1.0.0
bun-revision The output from bun --revision. 1.0.0+822a00c4
bun-path The path to the Bun executable. /path/to/bun
bun-download-url The URL from which Bun was downloaded. https://bun.sh/download/latest/linux/x64?avx2=true&profile=false
cache-hit If the Bun executable was read from cache. true