Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

release: v2.0 🎉 #80

Merged
merged 49 commits into from
Jun 21, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
49 commits
Select commit Hold shift + click to select a range
3ef79fe
feat: add input bun-version-file (#76)
adeherysh Apr 12, 2024
a0f1a9b
refactor: reduce read from file code
xhyrom May 7, 2024
116db81
[autofix.ci] apply automated fixes
autofix-ci[bot] May 7, 2024
e95e252
feat: read from all known files if not specified
xhyrom May 7, 2024
3ab03f7
[autofix.ci] apply automated fixes
autofix-ci[bot] May 7, 2024
7d417e1
fix: just continue if file doesnt exist
xhyrom May 7, 2024
97de633
[autofix.ci] apply automated fixes
autofix-ci[bot] May 7, 2024
ff32c47
fix: return output if found version
xhyrom May 7, 2024
a61c3e7
[autofix.ci] apply automated fixes
autofix-ci[bot] May 7, 2024
13cc864
fix: make whitespace in .tool-versions optional
xhyrom May 7, 2024
7df30a5
[autofix.ci] apply automated fixes
autofix-ci[bot] May 7, 2024
2c99120
log loglog
xhyrom May 7, 2024
a06305c
[autofix.ci] apply automated fixes
autofix-ci[bot] May 7, 2024
3b5d993
log log log
xhyrom May 7, 2024
0b54beb
[autofix.ci] apply automated fixes
autofix-ci[bot] May 7, 2024
ebd8028
better warnings, fix ci failing
xhyrom May 7, 2024
ce012a6
[autofix.ci] apply automated fixes
autofix-ci[bot] May 7, 2024
11f18d9
feat: log obtained version
xhyrom May 7, 2024
48d2521
[autofix.ci] apply automated fixes
autofix-ci[bot] May 7, 2024
33f36f9
build: bump version
xhyrom May 7, 2024
77ae171
[autofix.ci] apply automated fixes
autofix-ci[bot] May 7, 2024
f885433
fix: add .zip extension if it's not present
xhyrom May 8, 2024
b9b566f
[autofix.ci] apply automated fixes
autofix-ci[bot] May 8, 2024
6c61d0a
docs: add comment for easier understanding
xhyrom May 8, 2024
83142f7
ci: more readable version
xhyrom May 8, 2024
92b0900
ci: match name
xhyrom May 8, 2024
6eefc6a
docs: add package.json and .tool-versions to bun-version-file examples
xhyrom May 8, 2024
1cdb57b
ci: add cache test
xhyrom May 8, 2024
6f448b3
ci: install another pkg for cache test
xhyrom May 8, 2024
307c87c
ci: install more pkgs for cache test
xhyrom May 8, 2024
69507d8
ci: block all trusted deps in cache test
xhyrom May 8, 2024
8082cb7
ci: more deps for cache test
xhyrom May 8, 2024
93c92af
ci: cache test should cache
xhyrom May 8, 2024
1cea06d
refactor: dont try all files if not defined
xhyrom May 8, 2024
49d961d
[autofix.ci] apply automated fixes
autofix-ci[bot] May 8, 2024
f56f779
ci: remove cache test
xhyrom May 9, 2024
90f3195
feat: support .bunrc
xhyrom May 20, 2024
2953918
[autofix.ci] apply automated fixes
autofix-ci[bot] May 20, 2024
b43e4d1
refactor: .bun-version instead .bunrc
xhyrom May 22, 2024
3458468
[autofix.ci] apply automated fixes
autofix-ci[bot] May 22, 2024
ac64dab
feat: add bun paths and url to output
xhyrom May 27, 2024
247a216
[autofix.ci] apply automated fixes
autofix-ci[bot] May 27, 2024
e29b840
build: upstream
xhyrom Jun 3, 2024
275f7ae
ci: test for .bun-version
xhyrom Jun 8, 2024
0900cf0
feat: make .bun-version as default in bun-version-file
xhyrom Jun 8, 2024
e02a6b5
ci: remove cache before test
xhyrom Jun 15, 2024
c2df4e8
ci: remove cache before test
xhyrom Jun 15, 2024
9e6c317
ci: remove cache before test
xhyrom Jun 15, 2024
75cd831
ci: remove cache before test
xhyrom Jun 15, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 28 additions & 0 deletions .github/actions/compare-bun-version/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
name: Compare Bun Version
description: Compare the version of Bun to a specified version

inputs:
bun-version:
description: "The version of Bun to compare against"
required: true
default: "1.1.0"

runs:
using: "composite"
steps:
- name: Get installed Bun version
id: bun
shell: bash
run: |
bun --version
echo "version=$(bun --version)" >> $GITHUB_OUTPUT

- name: Compare versions
shell: bash
run: |
if [[ "${{ steps.bun.outputs.version }}" == "${{ inputs.bun-version }}" ]]; then
echo "Version is ${{ inputs.bun-version }}"
else
echo "Expected version to be ${{ inputs.bun-version }}, got ${{ steps.bun.outputs.version }}"
exit 1
fi
124 changes: 61 additions & 63 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,35 @@ on:
- main

permissions:
contents: read
contents: write

jobs:
remove-cache:
runs-on: ubuntu-latest
permissions: write-all
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Install github cli
run: |
(type -p wget >/dev/null || (sudo apt update && sudo apt-get install wget -y)) \
&& sudo mkdir -p -m 755 /etc/apt/keyrings \
&& wget -qO- https://cli.github.com/packages/githubcli-archive-keyring.gpg | sudo tee /etc/apt/keyrings/githubcli-archive-keyring.gpg > /dev/null \
&& sudo chmod go+r /etc/apt/keyrings/githubcli-archive-keyring.gpg \
&& echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | sudo tee /etc/apt/sources.list.d/github-cli.list > /dev/null \
&& sudo apt update \
&& sudo apt install gh -y

- run: |
gh cache delete --all || true
env:
GH_TOKEN: ${{ github.token }}

setup-bun:
runs-on: ${{ matrix.os }}
continue-on-error: true
needs: [remove-cache]
strategy:
matrix:
os:
Expand Down Expand Up @@ -46,80 +69,55 @@ jobs:
run: |
bun --version

setup-bun-from-package-json-version:
setup-bun-from-file:
name: setup-bun from (${{ matrix.os }}, ${{ matrix.file.name }})
runs-on: ${{ matrix.os }}
continue-on-error: true
needs: [remove-cache]
strategy:
matrix:
os:
- ubuntu-latest
- macos-latest
- windows-latest
packageManager:
- [email protected]
- yarn@[email protected]
file:
- name: package.json ([email protected])
file: package.json
run: |
echo "$(jq '. += {"packageManager": "[email protected]"}' package.json)" > package.json
- name: package.json (yarn@[email protected])
file: package.json
run: |
echo "$(jq '. += {"packageManager": "yarn@[email protected]"}' package.json)" > package.json
- name: .tool-versions (bun 1.1.0)
file: .tool-versions
run: |
echo "bun 1.1.0" > .tool-versions
- name: .tool-versions (bun1.1.0)
file: .tool-versions
run: |
echo "bun1.1.0" > .tool-versions
- name: .bumrc (1.1.0)
file: .bumrc
run: |
echo "1.1.0" > .bumrc
- name: .bun-version (1.1.0)
file: .bun-version
run: |
echo "1.1.0" > .bun-version
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Setup package.json
shell: bash
run: |
echo "$(jq '. += {"packageManager": "${{ matrix.packageManager }}"}' package.json)" > package.json
- name: Setup file
run: ${{ matrix.file.run }}

- name: Setup Bun
uses: ./
with:
bun-version-file: ${{ matrix.file.file }}

- name: Run Bun
id: bun
shell: bash
run: |
bun --version
echo "version=$(bun --version)" >> $GITHUB_OUTPUT

- name: Check version
shell: bash
run: |
if [[ "${{ steps.bun.outputs.version }}" == "1.1.0" ]]; then
echo "Version is 1.1.0"
else
echo "Expected version to be 1.1.0, got ${{ steps.bun.outputs.version }}"
exit 1
fi
setup-bun-from-tool-versions:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os:
- ubuntu-latest
- macos-latest
- windows-latest
content:
- "bun 1.1.0"
- "bun1.1.0"
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup package.json
shell: bash
run: |
echo "bun ${{ matrix.content }}" > .tool-versions

- name: Setup Bun
uses: ./

- name: Run Bun
id: bun
shell: bash
run: |
bun --version
echo "version=$(bun --version)" >> $GITHUB_OUTPUT

- name: Check version
shell: bash
run: |
if [[ "${{ steps.bun.outputs.version }}" == "1.1.0" ]]; then
echo "Version is 1.1.0"
else
echo "Expected version to be 1.1.0, got ${{ steps.bun.outputs.version }}"
exit 1
fi
- name: Compare versions
uses: ./.github/actions/compare-bun-version
with:
bun-version: "1.1.0"
22 changes: 15 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,14 @@ Download, install, and setup [Bun](https://bun.sh) in GitHub Actions.
bun-version: latest
```

## Using version file

```yaml
- uses: oven-sh/setup-bun@v1
with:
bun-version-file: ".bumrc"
```

### Using a custom NPM registry

```yaml
Expand Down Expand Up @@ -44,13 +52,13 @@ In most cases, you shouldn't need to use the [setup-node](https://github.com/act

## Inputs

| Name | Description | Default | Examples |
| ------------------ | -------------------------------------------------- | ----------- | ------------------------------- |
| `bun-version` | The version of Bun to download and install. | `latest` | `canary`, `1.0.0`, `1.0.x` |
| `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"` |
| `no-cache` | Disable caching of the downloaded executable. | `false` | `true`, `false` |
| Name | Description | Default | Examples |
| ------------------ | ----------------------------------------------------- | ----------- | ------------------------------- |
| `bun-version` | The version of Bun to download and install. | `latest` | `canary`, `1.0.0`, `1.0.x` |
| `bun-version-file` | The version of Bun to download and install from file. | `undefined` | `.bumrc` |
| `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

Expand Down
15 changes: 12 additions & 3 deletions action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,16 @@ branding:
icon: play-circle
color: white
inputs:
bun-download-url:
description: "Override the URL to download Bun from. This skips version resolution and verifying AVX2 support."
required: false
bun-version:
description: 'The version of Bun to install. (e.g. "latest", "canary", "1.0.0", "1.0.x", <sha>)'
required: false
bun-version-file:
description: 'The version of Bun to install from file. (e.g. "package.json", ".bumrc", ".tool-versions")'
default: ".bun-version"
required: false
bun-download-url:
description: "Override the URL to download Bun from. This skips version resolution and verifying AVX2 support."
required: false
registry-url:
required: false
description: "The URL of the package registry to use for installing Bun. Set the $BUN_AUTH_TOKEN environment variable to authenticate with the registry."
Expand All @@ -27,8 +31,13 @@ outputs:
description: The version of Bun that was installed.
bun-revision:
description: The revision of Bun that was installed.
bun-path:
description: The path to the Bun executable.
bun-download-url:
description: The URL from which Bun was downloaded.
cache-hit:
description: If the version of Bun was cached.

runs:
using: "node20"
main: "dist/setup/index.js"
Expand Down
Loading
Loading