mirror of
https://github.com/oven-sh/bun
synced 2026-02-14 12:51:54 +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>
272 lines
9.1 KiB
YAML
272 lines
9.1 KiB
YAML
name: bun-linux
|
|
|
|
concurrency:
|
|
group: bun-linux-build-${{ github.ref }}
|
|
cancel-in-progress: true
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- main
|
|
paths:
|
|
- "src/**/*"
|
|
- "test/**/*"
|
|
- "packages/bun-usockets/src/**/*"
|
|
- "build.zig"
|
|
- "Makefile"
|
|
- "Dockerfile"
|
|
pull_request:
|
|
branches:
|
|
- main
|
|
paths:
|
|
- "src/**/*"
|
|
- "test/**/*"
|
|
- "packages/bun-usockets/src/**/*"
|
|
- "build.zig"
|
|
- "Makefile"
|
|
- "Dockerfile"
|
|
# Allows you to run this workflow manually from the Actions tab
|
|
workflow_dispatch:
|
|
|
|
jobs:
|
|
linux:
|
|
name: ${{matrix.tag}}
|
|
runs-on: ${{matrix.runner}}
|
|
if: github.repository_owner == 'oven-sh'
|
|
timeout-minutes: 90
|
|
permissions: write-all
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
include:
|
|
- cpu: haswell
|
|
tag: linux-x64
|
|
arch: x86_64
|
|
build_arch: amd64
|
|
runner: big-ubuntu
|
|
build_machine_arch: x86_64
|
|
- cpu: nehalem
|
|
tag: linux-x64-baseline
|
|
arch: x86_64
|
|
build_arch: amd64
|
|
runner: big-ubuntu
|
|
build_machine_arch: x86_64
|
|
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
with:
|
|
submodules: recursive
|
|
- uses: docker/setup-buildx-action@v2
|
|
id: buildx
|
|
with:
|
|
install: true
|
|
- name: Run
|
|
run: |
|
|
rm -rf ${{runner.temp}}/release
|
|
- name: Login to GitHub Container Registry
|
|
uses: docker/login-action@v2
|
|
with:
|
|
registry: ghcr.io
|
|
username: ${{ github.actor }}
|
|
password: ${{ secrets.GITHUB_TOKEN }}
|
|
- run: |
|
|
mkdir -p /tmp/.buildx-cache-${{matrix.tag}}
|
|
- name: Build and push
|
|
uses: docker/build-push-action@v3
|
|
with:
|
|
context: .
|
|
push: false
|
|
cache-from: type=local,src=/tmp/.buildx-cache-${{matrix.tag}}
|
|
cache-to: type=local,dest=/tmp/.buildx-cache-${{matrix.tag}}
|
|
build-args: |
|
|
ARCH=${{matrix.arch}}
|
|
BUILDARCH=${{matrix.build_arch}}
|
|
BUILD_MACHINE_ARCH=${{matrix.build_machine_arch}}
|
|
CPU_TARGET=${{matrix.cpu}}
|
|
GIT_SHA=${{github.sha}}
|
|
|
|
SCCACHE_BUCKET=bun
|
|
SCCACHE_REGION=auto
|
|
SCCACHE_S3_USE_SSL=true
|
|
SCCACHE_ENDPOINT=${{ secrets.CACHE_S3_ENDPOINT }}
|
|
AWS_ACCESS_KEY_ID=${{ secrets.CACHE_S3_ACCESS_KEY_ID }}
|
|
AWS_SECRET_ACCESS_KEY=${{ secrets.CACHE_S3_SECRET_ACCESS_KEY }}
|
|
platforms: linux/${{matrix.build_arch}}
|
|
target: artifact
|
|
outputs: type=local,dest=${{runner.temp}}/release
|
|
- name: Zip
|
|
run: |
|
|
# if zip is not found
|
|
if [ ! -x "$(command -v zip)" ]; then
|
|
sudo apt-get update && sudo apt-get install -y zip --no-install-recommends
|
|
fi
|
|
|
|
if [ ! -x "$(command -v strip)" ]; then
|
|
sudo apt-get update && sudo apt-get install -y binutils --no-install-recommends
|
|
fi
|
|
|
|
cd ${{runner.temp}}/release
|
|
chmod +x bun-profile bun
|
|
|
|
mkdir bun-${{matrix.tag}}-profile
|
|
mkdir bun-${{matrix.tag}}
|
|
|
|
strip bun
|
|
|
|
mv bun-profile bun-${{matrix.tag}}-profile/bun-profile
|
|
mv bun bun-${{matrix.tag}}/bun
|
|
|
|
zip -r bun-${{matrix.tag}}-profile.zip bun-${{matrix.tag}}-profile
|
|
zip -r bun-${{matrix.tag}}.zip bun-${{matrix.tag}}
|
|
- uses: actions/upload-artifact@v3
|
|
with:
|
|
name: bun-${{matrix.tag}}-profile
|
|
path: ${{runner.temp}}/release/bun-${{matrix.tag}}-profile.zip
|
|
- uses: actions/upload-artifact@v3
|
|
with:
|
|
name: bun-${{matrix.tag}}
|
|
path: ${{runner.temp}}/release/bun-${{matrix.tag}}.zip
|
|
- uses: actions/upload-artifact@v3
|
|
with:
|
|
name: bun-obj-${{matrix.tag}}
|
|
path: ${{runner.temp}}/release/bun-obj
|
|
- uses: actions/upload-artifact@v3
|
|
with:
|
|
name: ${{matrix.tag}}-dependencies
|
|
path: ${{runner.temp}}/release/bun-dependencies
|
|
- name: Release
|
|
id: release
|
|
uses: ncipollo/release-action@v1
|
|
if: |
|
|
github.repository_owner == 'oven-sh'
|
|
&& github.ref == 'refs/heads/main'
|
|
with:
|
|
prerelease: true
|
|
body: "This canary release of Bun corresponds to the commit [${{ github.sha }}]"
|
|
allowUpdates: true
|
|
replacesArtifacts: true
|
|
generateReleaseNotes: true
|
|
artifactErrorsFailBuild: true
|
|
token: ${{ secrets.GITHUB_TOKEN }}
|
|
name: "Canary (${{github.sha}})"
|
|
tag: "canary"
|
|
artifacts: "${{runner.temp}}/release/bun-${{matrix.tag}}.zip,${{runner.temp}}/release/bun-${{matrix.tag}}-profile.zip"
|
|
- uses: sarisia/actions-status-discord@v1
|
|
if: failure() && github.repository_owner == 'oven-sh' && github.event_name == 'pull_request'
|
|
with:
|
|
title: ""
|
|
webhook: ${{ secrets.DISCORD_WEBHOOK }}
|
|
status: ${{ job.status }}
|
|
noprefix: true
|
|
nocontext: true
|
|
description: |
|
|
Pull Request
|
|
### [${{github.event.pull_request.title}}](https://github.com/oven-sh/bun/pull/${{github.event.number}})
|
|
|
|
@${{ github.actor }}
|
|
|
|
Build failed on ${{ matrix.tag }}:
|
|
|
|
**[View build output](https://github.com/oven-sh/bun/actions/runs/${{github.run_id}})**
|
|
|
|
[Commit ${{github.sha}}](https://github.com/oven-sh/bun/commits/${{github.sha}})
|
|
linux-test:
|
|
name: Tests ${{matrix.tag}}
|
|
runs-on: ubuntu-latest
|
|
needs: [linux]
|
|
if: github.event_name == 'pull_request'
|
|
timeout-minutes: 20
|
|
permissions:
|
|
pull-requests: write
|
|
outputs:
|
|
failing_tests: ${{ steps.test.outputs.failing_tests }}
|
|
failing_tests_count: ${{ steps.test.outputs.failing_tests_count }}
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
include:
|
|
- tag: linux-x64
|
|
- tag: linux-x64-baseline
|
|
steps:
|
|
- id: checkout
|
|
name: Checkout
|
|
uses: actions/checkout@v3
|
|
with:
|
|
submodules: false
|
|
- id: download
|
|
name: Download
|
|
uses: actions/download-artifact@v3
|
|
with:
|
|
name: bun-${{matrix.tag}}
|
|
path: ${{runner.temp}}/release
|
|
- id: install-bun
|
|
name: Install Bun
|
|
run: |
|
|
cd ${{runner.temp}}/release
|
|
unzip bun-${{matrix.tag}}.zip
|
|
cd bun-${{matrix.tag}}
|
|
chmod +x bun
|
|
pwd >> $GITHUB_PATH
|
|
./bun --version
|
|
- id: install-dependnecies
|
|
name: Install dependencies
|
|
run: |
|
|
sudo apt-get update && sudo apt-get install -y openssl
|
|
bun install --verbose
|
|
bun install --cwd=test --verbose
|
|
bun install --cwd=packages/bun-internal-test --verbose
|
|
- id: test
|
|
name: Test (node runner)
|
|
env:
|
|
SMTP_SENDGRID_SENDER: ${{ secrets.SMTP_SENDGRID_SENDER }}
|
|
TLS_MONGODB_DATABASE_URL: ${{ secrets.TLS_MONGODB_DATABASE_URL }}
|
|
TLS_POSTGRES_DATABASE_URL: ${{ secrets.TLS_POSTGRES_DATABASE_URL }}
|
|
# if: ${{github.event.inputs.use_bun == 'false'}}
|
|
run: |
|
|
node packages/bun-internal-test/src/runner.node.mjs || true
|
|
- uses: sarisia/actions-status-discord@v1
|
|
if: always() && steps.test.outputs.failing_tests != '' && github.event_name == 'pull_request'
|
|
with:
|
|
title: ""
|
|
webhook: ${{ secrets.DISCORD_WEBHOOK }}
|
|
status: "failure"
|
|
noprefix: true
|
|
nocontext: true
|
|
description: |
|
|
Pull Request
|
|
### ❌ [${{github.event.pull_request.title}}](https://github.com/oven-sh/bun/pull/${{github.event.number}})
|
|
|
|
@${{ github.actor }}, there are ${{ steps.test.outputs.failing_tests_count }} files with test failures on ${{ matrix.tag }}:
|
|
|
|
${{ steps.test.outputs.failing_tests }}
|
|
|
|
**[View test output](https://github.com/oven-sh/bun/actions/runs/${{github.run_id}})**
|
|
- name: Comment on PR
|
|
if: steps.test.outputs.failing_tests != '' && github.event_name == 'pull_request'
|
|
uses: thollander/actions-comment-pull-request@v2
|
|
with:
|
|
comment_tag: test-failures-${{matrix.tag}}
|
|
message: |
|
|
❌ @${{ github.actor }} ${{ steps.test.outputs.failing_tests_count }} files with test failures on ${{ matrix.tag }}:
|
|
|
|
${{ steps.test.outputs.failing_tests }}
|
|
|
|
**[View test output](https://github.com/oven-sh/bun/actions/runs/${{github.run_id}})**
|
|
|
|
<sup>[#${{github.sha}}](https://github.com/oven-sh/bun/commits/${{github.sha}})</sup>
|
|
- name: Uncomment on PR
|
|
if: steps.test.outputs.failing_tests == '' && github.event_name == 'pull_request'
|
|
uses: thollander/actions-comment-pull-request@v2
|
|
with:
|
|
comment_tag: test-failures-${{matrix.tag}}
|
|
mode: upsert
|
|
create_if_not_exists: false
|
|
message: |
|
|
✅ test failures on ${{ matrix.tag }} have been resolved.
|
|
|
|
<sup>[#${{github.sha}}](https://github.com/oven-sh/bun/commits/${{github.sha}})</sup>
|
|
- id: fail
|
|
name: Fail the build
|
|
if: steps.test.outputs.failing_tests != ''
|
|
run: exit 1
|