mirror of
https://github.com/oven-sh/bun
synced 2026-02-11 03:18:53 +00:00
* Prepare for windows event loop * More progress * Update libuv.zig * wip * Make compiling each dependency a shell script * Bump mimalloc * Add the build scripts * Update settings.json * Fix a bunch of compiler warnings * Remove more warnings * more warnings * cmake works * Update JSSQLStatement.h * put it in the zig file * Fix usockets warnings * Fixup * Fix one of the compiler errors * chunk * draw the rest of the owl * theres more * Rename Process -> BunProcess Works around a Windows issue * Add musl polyfill for memmem on Windows * More * 12 mb * Fix getenvZ * fix variosu issues * Add fast-ish path for bun install on Windows * Update windows.zig * Update windows.zig * Fix build issue * it works * hmmm * Rename file * Fixups * Update wtf-bindings.cpp * Update src/bun.js/bindings/headers-handwritten.h Co-authored-by: Dylan Conway <35280289+dylan-conway@users.noreply.github.com> * further! * more * Update .gitignore * hm * quite a lot of fixes * Update CMakeLists.txt * zig fmt * Many more things are starting to work. * reb * regenaret * Update JSSink.h * fixup * fetch works * Bun.serve() and much of the event loop works now * Make require() work * bun install progress * more things work * use less std.os * Fixes * small fixes * Bump * Bummp * Undo that change * We have to bump the version of Debian because libarchive has a higher minimum requirement * ok * some clenaup * windows * Update bun.zig * fixup * avoid duplicate symbols * avoid undefined symbols * bump * Remove issue template for install It's not used, and use the bug issue instead. * Add types for cp and cpSync * Add types for watchFile and unwatchFile * Add bun-types to 'bun fmt' script * Update nodejs compat docs cp/cpSync/watchFile/unwatchFile (#4525) * feat(fetch) rejectUnauthorized and checkServerIdentity (#4514) * enable root certs on fetch * rebase * fix lookup * some fixes and improvements * fmt * more fixes * more fixes * check detached onHandshake * fix promise case * fix cert non-Native * add fetch tls tests * more one test * churn * Update feature_flags.zig * Update response.zig * Revert "avoid undefined symbols" This reverts commitca835b726f. * Revert "avoid duplicate symbols" This reverts commit4ac6ca8700. * Update feature_flags.zig * Set permissions * more * Update mimalloc * Fix sqlite test failures * Fix some test failures * Make sure we remove libusockets is removed * hm * [dave]: fix webcrypto crash * bump * Update index.ts * windows zig compiles * cmake on mac works * progress * yay * bun run build * fix * ok * oops * asdfasfdafdsafda * fghjkl * git ignore * wow * Process -> BunProcess * hmm * blah * finalize merge * now it only has linker errors on mac * sdfadsf * g * getting farther * sxdcvbnmk, * adfhjskfjdhkas * a * fgh * update build dot zig * asdfg * theoretical -DCANARY flag we can use * asdf * cool * okay * colorterm * New build workflow * Fix script * Use sudo * More sudo * Tweak dependencies * Another sudo attempt * Tweak script * 16.0 -> 16 * Tweak script * Tweak script * Tweak script * Tweak script * Tweak script * bun install * ssh into github actions * add more to ssh * Fix postinstal * Skip llvm * New dockerfile * Build * More changes to Dockerfile * chaos chaos chaos * okay * a * more cmake nonsense * add unified sources code (does not work) * stuff * prepare for CI builds * ok * yay * yeah * make this more stable simply by trying again if it fails, 5 times, then lose. it fixes the stability issue i was running into L O L * messing with ci * x * a * clean dependencies before build * oops * this is not going to work but its closer * not gonna work either * a * a * did i do it * a * a * work around weird fs+Bun.build issues * properly pass debug flag correctly * idk im sorry * lose * maybe * run the tests please * a * fix zlib script * a * hi * prevent stupid ci issue * i totally didnt leave in a syntax error on cmakelists * a * lol * relax * 😭 * a * SO SILLY * 😡 one line mistake * one character diff * fix linking symbols missing * work on dependency scripts * does this work now? * fix mac build * a * bump! * woops * add macos baseline build * . * fix sqlite and also enable $assert/$debug support in builtin functions * okay * oops * zig upgrade lol * Merge * Fix spawn test issue * Set a timeout * yeah * etc * mi --------- Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> Co-authored-by: Dylan Conway <dylan.conway567@gmail.com> Co-authored-by: Dylan Conway <35280289+dylan-conway@users.noreply.github.com> Co-authored-by: Ashcon Partovi <ashcon@partovi.net> Co-authored-by: Birk Skyum <74932975+birkskyum@users.noreply.github.com> Co-authored-by: dave caruso <me@paperdave.net>
264 lines
8.4 KiB
YAML
264 lines
8.4 KiB
YAML
name: bun-release
|
|
concurrency: release
|
|
env:
|
|
BUN_VERSION: ${{ github.event.inputs.tag || github.event.release.tag_name || 'canary' }}
|
|
BUN_LATEST: ${{ (github.event.inputs.is-latest || github.event.release.tag_name) && 'true' || 'false' }}
|
|
on:
|
|
release:
|
|
types:
|
|
- published
|
|
schedule:
|
|
- cron: "0 14 * * *" # every day at 6am PST
|
|
workflow_dispatch:
|
|
inputs:
|
|
is-latest:
|
|
description: Is this the latest release?
|
|
type: boolean
|
|
default: false
|
|
tag:
|
|
type: string
|
|
description: What is the release tag? (e.g. "1.0.2", "canary")
|
|
required: true
|
|
use-docker:
|
|
description: Should Docker images be released?
|
|
type: boolean
|
|
default: false
|
|
use-npm:
|
|
description: Should npm packages be published?
|
|
type: boolean
|
|
default: false
|
|
use-homebrew:
|
|
description: Should binaries be released to Homebrew?
|
|
type: boolean
|
|
default: false
|
|
use-s3:
|
|
description: Should binaries be uploaded to S3?
|
|
type: boolean
|
|
default: false
|
|
use-types:
|
|
description: Should types be released to npm?
|
|
type: boolean
|
|
default: false
|
|
jobs:
|
|
sign:
|
|
name: Sign Release
|
|
runs-on: ubuntu-latest
|
|
if: ${{ github.repository_owner == 'oven-sh' }}
|
|
permissions:
|
|
contents: write
|
|
defaults:
|
|
run:
|
|
working-directory: packages/bun-release
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v3
|
|
- name: Setup GPG
|
|
uses: crazy-max/ghaction-import-gpg@v5
|
|
with:
|
|
gpg_private_key: ${{ secrets.GPG_PRIVATE_KEY }}
|
|
passphrase: ${{ secrets.GPG_PASSPHRASE }}
|
|
- name: Setup Bun
|
|
uses: oven-sh/setup-bun@v1
|
|
with:
|
|
bun-version: latest
|
|
- name: Install Dependencies
|
|
run: bun install
|
|
- name: Sign Release
|
|
run: |
|
|
echo "$GPG_PASSPHRASE" | bun upload-assets -- "${{ env.BUN_VERSION }}"
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }}
|
|
npm:
|
|
name: Release to NPM
|
|
runs-on: ubuntu-latest
|
|
needs: sign
|
|
if: ${{ github.event_name != 'workflow_dispatch' || github.event.inputs.use-npm == 'true' }}
|
|
permissions:
|
|
contents: read
|
|
defaults:
|
|
run:
|
|
working-directory: packages/bun-release
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v3
|
|
- name: Setup Bun
|
|
uses: oven-sh/setup-bun@v1
|
|
with:
|
|
bun-version: latest
|
|
- name: Install Dependencies
|
|
run: bun install
|
|
- name: Release
|
|
run: bun upload-npm -- "${{ env.BUN_VERSION }}" publish
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
|
|
npm-types:
|
|
name: Release types to NPM
|
|
runs-on: ubuntu-latest
|
|
needs: sign
|
|
if: ${{ github.event_name != 'workflow_dispatch' || github.event.inputs.use-types == 'true' }}
|
|
permissions:
|
|
contents: read
|
|
defaults:
|
|
run:
|
|
working-directory: packages/bun-types
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v3
|
|
- name: Setup Node.js
|
|
uses: actions/setup-node@v3
|
|
with:
|
|
node-version: latest
|
|
- name: Setup Bun
|
|
uses: oven-sh/setup-bun@v1
|
|
with:
|
|
bun-version: latest
|
|
- name: Install Dependencies
|
|
run: bun install
|
|
- name: Setup Tag
|
|
if: ${{ env.BUN_VERSION == 'canary' }}
|
|
run: |
|
|
VERSION=$(bun --version)
|
|
TAG="${VERSION}-canary.$(date +'%Y%m%dT%H%M%S')"
|
|
echo "Setup tag: ${TAG}"
|
|
echo "TAG=${TAG}" >> ${GITHUB_ENV}
|
|
- name: Build
|
|
run: bun run build
|
|
env:
|
|
BUN_VERSION: ${{ env.TAG || env.BUN_VERSION }}
|
|
- name: Release (canary)
|
|
if: ${{ env.BUN_VERSION == 'canary' }}
|
|
uses: JS-DevTools/npm-publish@v1
|
|
with:
|
|
package: packages/bun-types/dist/package.json
|
|
token: ${{ secrets.NPM_TOKEN }}
|
|
tag: canary
|
|
- name: Release (latest)
|
|
if: ${{ env.BUN_LATEST == 'true' }}
|
|
uses: JS-DevTools/npm-publish@v1
|
|
with:
|
|
package: packages/bun-types/dist/package.json
|
|
token: ${{ secrets.NPM_TOKEN }}
|
|
docker:
|
|
name: Release to Dockerhub
|
|
runs-on: ubuntu-latest
|
|
needs: sign
|
|
if: ${{ github.event_name != 'workflow_dispatch' || github.event.inputs.use-docker == 'true' }}
|
|
permissions:
|
|
contents: read
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
include:
|
|
- variant: debian
|
|
suffix: ""
|
|
- variant: debian
|
|
suffix: -debian
|
|
- variant: slim
|
|
suffix: -slim
|
|
dir: debian-slim
|
|
- variant: alpine
|
|
suffix: -alpine
|
|
- variant: distroless
|
|
suffix: -distroless
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v3
|
|
- name: Setup Docker emulator
|
|
uses: docker/setup-qemu-action@v2
|
|
- id: buildx
|
|
name: Setup Docker buildx
|
|
uses: docker/setup-buildx-action@v2
|
|
with:
|
|
platforms: linux/amd64,linux/arm64
|
|
- id: metadata
|
|
name: Setup Docker metadata
|
|
uses: docker/metadata-action@v4
|
|
with:
|
|
images: oven/bun
|
|
flavor: |
|
|
latest=false
|
|
tags: |
|
|
type=raw,value=latest,enable=${{ env.BUN_LATEST == 'true' && matrix.suffix == '' }}
|
|
type=raw,value=${{ matrix.variant }},enable=${{ env.BUN_LATEST == 'true' }}
|
|
type=match,pattern=(bun-v)?(canary|\d+.\d+.\d+),group=2,value=${{ env.BUN_VERSION }},suffix=${{ matrix.suffix }}
|
|
type=match,pattern=(bun-v)?(canary|\d+.\d+),group=2,value=${{ env.BUN_VERSION }},suffix=${{ matrix.suffix }}
|
|
type=match,pattern=(bun-v)?(canary|\d+),group=2,value=${{ env.BUN_VERSION }},suffix=${{ matrix.suffix }}
|
|
- name: Login to Docker
|
|
uses: docker/login-action@v2
|
|
with:
|
|
username: ${{ secrets.DOCKER_USERNAME }}
|
|
password: ${{ secrets.DOCKER_PASSWORD }}
|
|
- name: Push to Docker
|
|
uses: docker/build-push-action@v3
|
|
with:
|
|
context: ./dockerhub/${{ matrix.dir || matrix.variant }}
|
|
platforms: linux/amd64,linux/arm64
|
|
builder: ${{ steps.buildx.outputs.name }}
|
|
push: true
|
|
tags: ${{ steps.metadata.outputs.tags }}
|
|
labels: ${{ steps.metadata.outputs.labels }}
|
|
build-args: |
|
|
BUN_VERSION=${{ env.BUN_VERSION }}
|
|
homebrew:
|
|
name: Release to Homebrew
|
|
runs-on: ubuntu-latest
|
|
needs: sign
|
|
permissions:
|
|
contents: read
|
|
if: ${{ github.event_name == 'release' || github.event.inputs.use-homebrew == 'true' }}
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v3
|
|
with:
|
|
repository: oven-sh/homebrew-bun
|
|
token: ${{ secrets.ROBOBUN_TOKEN }}
|
|
- id: gpg
|
|
name: Setup GPG
|
|
uses: crazy-max/ghaction-import-gpg@v5
|
|
with:
|
|
gpg_private_key: ${{ secrets.GPG_PRIVATE_KEY }}
|
|
passphrase: ${{ secrets.GPG_PASSPHRASE }}
|
|
- name: Setup Ruby
|
|
uses: ruby/setup-ruby@v1
|
|
with:
|
|
ruby-version: "2.6"
|
|
- name: Update Tap
|
|
run: ruby scripts/release.rb "${{ env.BUN_VERSION }}"
|
|
- name: Commit Tap
|
|
uses: stefanzweifel/git-auto-commit-action@v4
|
|
with:
|
|
commit_options: --gpg-sign=${{ steps.gpg.outputs.keyid }}
|
|
commit_message: Release ${{ env.BUN_VERSION }}
|
|
commit_user_name: robobun
|
|
commit_user_email: robobun@oven.sh
|
|
commit_author: robobun <robobun@oven.sh>
|
|
s3:
|
|
name: Upload to S3
|
|
runs-on: ubuntu-latest
|
|
needs: sign
|
|
if: ${{ github.event_name != 'workflow_dispatch' || github.event.inputs.use-s3 == 'true' }}
|
|
permissions:
|
|
contents: read
|
|
defaults:
|
|
run:
|
|
working-directory: packages/bun-release
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v3
|
|
- name: Setup Bun
|
|
uses: oven-sh/setup-bun@v1
|
|
with:
|
|
bun-version: latest
|
|
- name: Install Dependencies
|
|
run: bun install
|
|
- name: Release
|
|
run: bun upload-s3 -- "${{ env.BUN_VERSION }}"
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
|
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY}}
|
|
AWS_ENDPOINT: ${{ secrets.AWS_ENDPOINT }}
|
|
AWS_BUCKET: bun
|