Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

https://github.com/antongolub/action-setup-bun

Setup GitHub Actions workflow with a specific version of Bun
https://github.com/antongolub/action-setup-bun

actions bun github github-actions

Last synced: about 1 month ago
JSON representation

Setup GitHub Actions workflow with a specific version of Bun

Lists

README

        

# action-setup-bun

> Setup GitHub Actions workflow with a specific version of [Bun](https://github.com/oven-sh/bun) and add `$BUN_INSTALL/bin` to the `$PATH`.

[![CI](https://github.com/antongolub/action-setup-bun/actions/workflows/ci.yaml/badge.svg)](https://github.com/antongolub/action-setup-bun/actions/workflows/ci.yaml)
[![Maintainability](https://api.codeclimate.com/v1/badges/51f63421b9c234ac6f27/maintainability)](https://codeclimate.com/github/antongolub/action-setup-bun/maintainability)
[![Test Coverage](https://api.codeclimate.com/v1/badges/51f63421b9c234ac6f27/test_coverage)](https://codeclimate.com/github/antongolub/action-setup-bun/test_coverage)

## Requirements
* macOS x64 & Silicon, Linux x64, Windows Subsystem for Linux

## Usage
```yaml
- name: Setup Bun Runtime
uses: antongolub/action-setup-bun@v1 # or @v1.x.x
with:
# Optional, if empty the latest bun version will be used
# Examples: 0.0.77, 0.1.2, >=0.1, *
bun-version: 0.1.2

# Optional, default is 'Jarred-Sumner/bun-releases-for-updater'
# Example: oven-sh/misc-test-builds
bun-repo: 'Jarred-Sumner/bun-releases-for-updater'

# Override bunfig.toml inners
# Optional. JSON-formatted string as input
# See: https://github.com/oven-sh/bun#bunfigtoml
bun-config: '{"install": {"production": false}}'

# Attach $BUN_INSTALL/install/cache to action/cache
# Optional, defaults to false
cache: true

# actions/tool-cache provides a cache for the current job only
# Use actions/cache to store the bun binary for the whole workflow
# Optional, defaults to false
cache-bin: true

# Optional, default is process.platform
# Examples: darwin, linux
platform: 'linux'

# Optional, default is process.arch
# Examples: x64, arm64
arch: 'x64'

# Authenticated requests get a higher rate limit
# Optional. Defaults to ${{ github.token }}
token: 'gh-token'

- name: Run script
run: bun index.js
```

### bun-repo
There are at least 3 known places to fetch bun distributions:
* [`Jarred-Sumner/bun-releases-for-updater`](https://github.com/Jarred-Sumner/bun-releases-for-updater/releases)
* [`oven-sh/bun`](https://github.com/oven-sh/bun/releases)
* [`oven-sh/misc-test-builds`](https://github.com/oven-sh/misc-test-builds/releases)

### $HOME
The `env.HOME` is used to store the `bun` binary (`${HOME}/.bun/bin`). If you want to assign another directory, you can override this `env` option.
```yaml
env:
HOME: '/custom/path'
```

### Outputs
| Name | Description |
|---------------|------------------------------------------|
| `bun-version` | The version of Bun that was installed |
| `cache-hit` | if the bun cache was hit: `true / false` |
| `error` | if an error occurred, the error message |

### Debug
[This flag](https://github.com/actions/toolkit/blob/master/docs/action-debugging.md) can be enabled by setting the secret `ACTIONS_STEP_DEBUG` to `true`.

## License
[MIT](LICENSE)