Compare commits

..

6 Commits

Author SHA1 Message Date
Ashcon Partovi
23ea8875ac Test out Amazon Linux 2024-06-27 15:49:40 -07:00
Ashcon Partovi
d105b048b1 Use Buildkite for CI (#11477) 2024-06-27 14:56:07 -07:00
Ashcon Partovi
d356e27a4d Remove debug workflow
No longer needed
2024-06-26 23:54:51 -07:00
Ashcon Partovi
96e84b276b Add a debug workflow
Github actions only triggers the `status` event if the workflow is in the main branch. This can be removed later.
2024-06-26 18:38:56 -07:00
Jarred Sumner
60ef13e079 Fix assertion failure in Bun.escapeHTML with latin1 input (#12185) 2024-06-26 18:25:02 -07:00
Jarred Sumner
10ce5ddd24 Fixes #12188 2024-06-26 18:07:19 -07:00
8 changed files with 383 additions and 321 deletions

View File

@@ -4,8 +4,27 @@
# Changes to this file must be manually edited here:
# https://buildkite.com/bun/bun/settings/steps
steps:
- if: "build.pull_request.repository.fork"
block: ":eyes:"
prompt: ":rotating_light: Did you review the PR?"
blocked_state: "running"
- label: ":pipeline:"
command:
- "buildkite-agent pipeline upload .buildkite/ci.yml"
command: "buildkite-agent pipeline upload .buildkite/ci.yml"
agents:
queue: "build-linux"
- if: "build.branch == 'main' && !build.pull_request.repository.fork"
label: ":github:"
agents:
queue: "test-darwin"
depends_on:
- "darwin-aarch64-build-bun"
- "darwin-x64-build-bun"
- "linux-aarch64-build-bun"
- "linux-x64-build-bun"
- "linux-x64-baseline-build-bun"
- "windows-x64-build-bun"
- "windows-x64-baseline-build-bun"
command:
- ".buildkite/scripts/upload-release.sh"

View File

@@ -6,6 +6,14 @@
#
# Changes to this file will be automatically uploaded on the next run
# for a particular commit.
#
# Future tests machines to be added:
# - macOS 12
# - Windows Server 2016 & 2019
# - Amazon Linux 2 & 2023
# - CentOS / RHEL / Fedora / other Linux distros
# - Docker containers
# - Rasberry Pi?
steps:
# macOS aarch64
- key: "darwin-aarch64"
@@ -84,7 +92,9 @@ steps:
- key: "darwin-aarch64-build-bun"
label: ":darwin: aarch64 - build-bun"
depends_on:
- "darwin-aarch64-build-bun-nolto"
- "darwin-aarch64-build-deps"
- "darwin-aarch64-build-zig"
- "darwin-aarch64-build-cpp"
agents:
queue: "build-darwin"
os: "darwin"
@@ -155,33 +165,6 @@ steps:
command:
- "./scripts/runner.node.mjs --step darwin-aarch64-build-bun-nolto"
- key: "darwin-aarch64-test-macos-12"
label: ":darwin: 12 aarch64 - test-bun"
parallelism: 2
soft_fail:
- exit_status: 2
retry:
automatic:
- exit_status: 1
limit: 1
- exit_status: -1
limit: 3
- exit_status: 255
limit: 3
- signal_reason: agent_stop
limit: 3
- signal: SIGTERM
limit: 3
depends_on:
- "darwin-aarch64-build-bun-nolto"
agents:
queue: "test-darwin"
os: "darwin"
arch: "aarch64"
release: "12"
command:
- "./scripts/runner.node.mjs --step darwin-aarch64-build-bun-nolto"
- key: "darwin-aarch64-test-macos-14-smoke"
label: ":darwin: 14 aarch64 - test-bun (smoke)"
parallelism: 1
@@ -236,33 +219,6 @@ steps:
command:
- "./scripts/runner.node.mjs --step darwin-aarch64-build-bun --smoke 0.05"
- key: "darwin-aarch64-test-macos-12-smoke"
label: ":darwin: 12 aarch64 - test-bun (smoke)"
parallelism: 1
soft_fail:
- exit_status: 2
retry:
automatic:
- exit_status: 1
limit: 1
- exit_status: -1
limit: 3
- exit_status: 255
limit: 3
- signal_reason: agent_stop
limit: 3
- signal: SIGTERM
limit: 3
depends_on:
- "darwin-aarch64-build-bun"
agents:
queue: "test-darwin"
os: "darwin"
arch: "aarch64"
release: "12"
command:
- "./scripts/runner.node.mjs --step darwin-aarch64-build-bun --smoke 0.05"
# macOS x64
- key: "darwin-x64"
group: ":darwin: x64"
@@ -340,7 +296,9 @@ steps:
- key: "darwin-x64-build-bun"
label: ":darwin: x64 - build-bun"
depends_on:
- "darwin-x64-build-bun-nolto"
- "darwin-x64-build-deps"
- "darwin-x64-build-zig"
- "darwin-x64-build-cpp"
agents:
queue: "build-darwin"
os: "darwin"
@@ -410,33 +368,6 @@ steps:
command:
- "./scripts/runner.node.mjs --step darwin-x64-build-bun-nolto"
- key: "darwin-x64-test-macos-12"
label: ":darwin: 12 x64 - test-bun"
parallelism: 2
soft_fail:
- exit_status: 2
retry:
automatic:
- exit_status: 1
limit: 1
- exit_status: -1
limit: 3
- exit_status: 255
limit: 3
- signal_reason: agent_stop
limit: 3
- signal: SIGTERM
limit: 3
depends_on:
- "darwin-x64-build-bun-nolto"
agents:
queue: "test-darwin"
os: "darwin"
arch: "x64"
release: "12"
command:
- "./scripts/runner.node.mjs --step darwin-x64-build-bun-nolto"
- key: "darwin-x64-test-macos-14-smoke"
label: ":darwin: 14 x64 - test-bun (smoke)"
parallelism: 1
@@ -491,33 +422,6 @@ steps:
command:
- "./scripts/runner.node.mjs --step darwin-x64-build-bun --smoke 0.05"
- key: "darwin-x64-test-macos-12-smoke"
label: ":darwin: 12 x64 - test-bun (smoke)"
parallelism: 1
soft_fail:
- exit_status: 2
retry:
automatic:
- exit_status: 1
limit: 1
- exit_status: -1
limit: 3
- exit_status: 255
limit: 3
- signal_reason: agent_stop
limit: 3
- signal: SIGTERM
limit: 3
depends_on:
- "darwin-x64-build-bun"
agents:
queue: "test-darwin"
os: "darwin"
arch: "x64"
release: "12"
command:
- "./scripts/runner.node.mjs --step darwin-x64-build-bun --smoke 0.05"
# Linux aarch64
- key: "linux-aarch64"
group: ":linux: aarch64"
@@ -595,7 +499,9 @@ steps:
- key: "linux-aarch64-build-bun"
label: ":linux: aarch64 - build-bun"
depends_on:
- "linux-aarch64-build-bun-nolto"
- "linux-aarch64-build-deps"
- "linux-aarch64-build-zig"
- "linux-aarch64-build-cpp"
agents:
queue: "build-linux"
os: "linux"
@@ -639,34 +545,6 @@ steps:
command:
- "./scripts/runner.node.mjs --step linux-aarch64-build-bun-nolto"
- key: "linux-aarch64-test-debian-11"
label: ":debian: 11 aarch64 - test-bun"
parallelism: 5
soft_fail:
- exit_status: 2
retry:
automatic:
- exit_status: 1
limit: 1
- exit_status: -1
limit: 3
- exit_status: 255
limit: 3
- signal_reason: agent_stop
limit: 3
- signal: SIGTERM
limit: 3
depends_on:
- "linux-aarch64-build-bun-nolto"
agents:
robobun: "true"
os: "linux"
arch: "aarch64"
distro: "debian"
release: "11"
command:
- "./scripts/runner.node.mjs --step linux-aarch64-build-bun-nolto"
- key: "linux-aarch64-test-ubuntu-2204"
label: ":ubuntu: 22.04 aarch64 - test-bun"
parallelism: 5
@@ -723,6 +601,34 @@ steps:
command:
- "./scripts/runner.node.mjs --step linux-aarch64-build-bun-nolto"
- key: "linux-aarch64-test-amazonlinux-2023"
label: ":aws: 2023 aarch64 - test-bun"
parallelism: 5
soft_fail:
- exit_status: 2
retry:
automatic:
- exit_status: 1
limit: 1
- exit_status: -1
limit: 3
- exit_status: 255
limit: 3
- signal_reason: agent_stop
limit: 3
- signal: SIGTERM
limit: 3
depends_on:
- "linux-aarch64-build-bun-nolto"
agents:
robobun: "true"
os: "linux"
arch: "aarch64"
distro: "amazonlinux"
release: "2023"
command:
- "./scripts/runner.node.mjs --step linux-aarch64-build-bun-nolto"
- key: "linux-aarch64-test-debian-12-smoke"
label: ":debian: 12 aarch64 - test-bun-smoke"
parallelism: 1
@@ -751,34 +657,6 @@ steps:
command:
- "./scripts/runner.node.mjs --step linux-aarch64-build-bun --smoke 0.05"
- key: "linux-aarch64-test-debian-11-smoke"
label: ":debian: 11 aarch64 - test-bun (smoke)"
parallelism: 1
soft_fail:
- exit_status: 2
retry:
automatic:
- exit_status: 1
limit: 1
- exit_status: -1
limit: 3
- exit_status: 255
limit: 3
- signal_reason: agent_stop
limit: 3
- signal: SIGTERM
limit: 3
depends_on:
- "linux-aarch64-build-bun"
agents:
robobun: "true"
os: "linux"
arch: "aarch64"
distro: "debian"
release: "11"
command:
- "./scripts/runner.node.mjs --step linux-aarch64-build-bun --smoke 0.05"
- key: "linux-aarch64-test-ubuntu-2204-smoke"
label: ":ubuntu: 22.04 aarch64 - test-bun (smoke)"
parallelism: 1
@@ -835,6 +713,34 @@ steps:
command:
- "./scripts/runner.node.mjs --step linux-aarch64-build-bun --smoke 0.05"
- key: "linux-aarch64-test-amazonlinux-2023-smoke"
label: ":aws: 2023 aarch64 - test-bun (smoke)"
parallelism: 1
soft_fail:
- exit_status: 2
retry:
automatic:
- exit_status: 1
limit: 1
- exit_status: -1
limit: 3
- exit_status: 255
limit: 3
- signal_reason: agent_stop
limit: 3
- signal: SIGTERM
limit: 3
depends_on:
- "linux-aarch64-build-bun"
agents:
robobun: "true"
os: "linux"
arch: "aarch64"
distro: "amazonlinux"
release: "20.04"
command:
- "./scripts/runner.node.mjs --step linux-aarch64-build-bun --smoke 0.05"
# Linux x64
- key: "linux-x64"
group: ":linux: x64"
@@ -912,7 +818,9 @@ steps:
- key: "linux-x64-build-bun"
label: ":linux: x64 - build-bun"
depends_on:
- "linux-x64-build-bun-nolto"
- "linux-x64-build-deps"
- "linux-x64-build-zig"
- "linux-x64-build-cpp"
agents:
queue: "build-linux"
os: "linux"
@@ -956,34 +864,6 @@ steps:
command:
- "./scripts/runner.node.mjs --step linux-x64-build-bun-nolto"
- key: "linux-x64-test-debian-11"
label: ":debian: 11 x64 - test-bun"
parallelism: 5
soft_fail:
- exit_status: 2
retry:
automatic:
- exit_status: 1
limit: 1
- exit_status: -1
limit: 3
- exit_status: 255
limit: 3
- signal_reason: agent_stop
limit: 3
- signal: SIGTERM
limit: 3
depends_on:
- "linux-x64-build-bun-nolto"
agents:
robobun: "true"
os: "linux"
arch: "x64"
distro: "debian"
release: "11"
command:
- "./scripts/runner.node.mjs --step linux-x64-build-bun-nolto"
- key: "linux-x64-test-ubuntu-2204"
label: ":ubuntu: 22.04 x64 - test-bun"
parallelism: 5
@@ -1040,6 +920,34 @@ steps:
command:
- "./scripts/runner.node.mjs --step linux-x64-build-bun-nolto"
- key: "linux-x64-test-amazonlinux-2023"
label: ":aws: 2023 x64 - test-bun"
parallelism: 5
soft_fail:
- exit_status: 2
retry:
automatic:
- exit_status: 1
limit: 1
- exit_status: -1
limit: 3
- exit_status: 255
limit: 3
- signal_reason: agent_stop
limit: 3
- signal: SIGTERM
limit: 3
depends_on:
- "linux-x64-build-bun-nolto"
agents:
robobun: "true"
os: "linux"
arch: "x64"
distro: "amazonlinux"
release: "2023"
command:
- "./scripts/runner.node.mjs --step linux-x64-build-bun-nolto"
- key: "linux-x64-test-debian-12-smoke"
label: ":debian: 12 x64 - test-bun (smoke)"
parallelism: 1
@@ -1068,34 +976,6 @@ steps:
command:
- "./scripts/runner.node.mjs --step linux-x64-build-bun --smoke 0.05"
- key: "linux-x64-test-debian-11-smoke"
label: ":debian: 11 x64 - test-bun (smoke)"
parallelism: 1
soft_fail:
- exit_status: 2
retry:
automatic:
- exit_status: 1
limit: 1
- exit_status: -1
limit: 3
- exit_status: 255
limit: 3
- signal_reason: agent_stop
limit: 3
- signal: SIGTERM
limit: 3
depends_on:
- "linux-x64-build-bun"
agents:
robobun: "true"
os: "linux"
arch: "x64"
distro: "debian"
release: "11"
command:
- "./scripts/runner.node.mjs --step linux-x64-build-bun --smoke 0.05"
- key: "linux-x64-test-ubuntu-2204-smoke"
label: ":ubuntu: 22.04 x64 - test-bun (smoke)"
parallelism: 1
@@ -1152,6 +1032,34 @@ steps:
command:
- "./scripts/runner.node.mjs --step linux-x64-build-bun --smoke 0.05"
- key: "linux-x64-test-amazonlinux-2023-smoke"
label: ":aws: 2023 x64 - test-bun (smoke)"
parallelism: 1
soft_fail:
- exit_status: 2
retry:
automatic:
- exit_status: 1
limit: 1
- exit_status: -1
limit: 3
- exit_status: 255
limit: 3
- signal_reason: agent_stop
limit: 3
- signal: SIGTERM
limit: 3
depends_on:
- "linux-x64-build-bun"
agents:
robobun: "true"
os: "linux"
arch: "x64"
distro: "amazonlinux"
release: "2023"
command:
- "./scripts/runner.node.mjs --step linux-x64-build-bun --smoke 0.05"
# Linux x64-baseline
- key: "linux-x64-baseline"
group: ":linux: x64-baseline"
@@ -1229,7 +1137,9 @@ steps:
- key: "linux-x64-baseline-build-bun"
label: ":linux: x64-baseline - build-bun"
depends_on:
- "linux-x64-baseline-build-bun-nolto"
- "linux-x64-baseline-build-deps"
- "linux-x64-baseline-build-zig"
- "linux-x64-baseline-build-cpp"
agents:
queue: "build-linux"
os: "linux"
@@ -1273,34 +1183,6 @@ steps:
command:
- "./scripts/runner.node.mjs --step linux-x64-baseline-build-bun-nolto"
- key: "linux-x64-baseline-test-debian-11"
label: ":debian: 11 x64-baseline - test-bun"
parallelism: 5
soft_fail:
- exit_status: 2
retry:
automatic:
- exit_status: 1
limit: 1
- exit_status: -1
limit: 3
- exit_status: 255
limit: 3
- signal_reason: agent_stop
limit: 3
- signal: SIGTERM
limit: 3
depends_on:
- "linux-x64-baseline-build-bun-nolto"
agents:
robobun: "true"
os: "linux"
arch: "x64"
distro: "debian"
release: "11"
command:
- "./scripts/runner.node.mjs --step linux-x64-baseline-build-bun-nolto"
- key: "linux-x64-baseline-test-ubuntu-2204"
label: ":ubuntu: 22.04 x64-baseline - test-bun"
parallelism: 5
@@ -1357,6 +1239,34 @@ steps:
command:
- "./scripts/runner.node.mjs --step linux-x64-baseline-build-bun-nolto"
- key: "linux-x64-baseline-test-amazonlinux-2023"
label: ":aws: 2023 x64-baseline - test-bun"
parallelism: 5
soft_fail:
- exit_status: 2
retry:
automatic:
- exit_status: 1
limit: 1
- exit_status: -1
limit: 3
- exit_status: 255
limit: 3
- signal_reason: agent_stop
limit: 3
- signal: SIGTERM
limit: 3
depends_on:
- "linux-x64-baseline-build-bun-nolto"
agents:
robobun: "true"
os: "linux"
arch: "x64"
distro: "amazonlinux"
release: "2023"
command:
- "./scripts/runner.node.mjs --step linux-x64-baseline-build-bun-nolto"
- key: "linux-x64-baseline-test-debian-12-smoke"
label: ":debian: 12 x64-baseline - test-bun (smoke)"
parallelism: 1
@@ -1385,34 +1295,6 @@ steps:
command:
- "./scripts/runner.node.mjs --step linux-x64-baseline-build-bun --smoke 0.05"
- key: "linux-x64-baseline-test-debian-11-smoke"
label: ":debian: 11 x64-baseline - test-bun (smoke)"
parallelism: 1
soft_fail:
- exit_status: 2
retry:
automatic:
- exit_status: 1
limit: 1
- exit_status: -1
limit: 3
- exit_status: 255
limit: 3
- signal_reason: agent_stop
limit: 3
- signal: SIGTERM
limit: 3
depends_on:
- "linux-x64-baseline-build-bun"
agents:
robobun: "true"
os: "linux"
arch: "x64"
distro: "debian"
release: "11"
command:
- "./scripts/runner.node.mjs --step linux-x64-baseline-build-bun --smoke 0.05"
- key: "linux-x64-baseline-test-ubuntu-2204-smoke"
label: ":ubuntu: 22.04 x64-baseline - test-bun (smoke)"
parallelism: 1
@@ -1469,6 +1351,34 @@ steps:
command:
- "./scripts/runner.node.mjs --step linux-x64-baseline-build-bun --smoke 0.05"
- key: "linux-x64-baseline-test-amazonlinux-2023-smoke"
label: ":aws: 2023 x64-baseline - test-bun (smoke)"
parallelism: 1
soft_fail:
- exit_status: 2
retry:
automatic:
- exit_status: 1
limit: 1
- exit_status: -1
limit: 3
- exit_status: 255
limit: 3
- signal_reason: agent_stop
limit: 3
- signal: SIGTERM
limit: 3
depends_on:
- "linux-x64-baseline-build-bun"
agents:
robobun: "true"
os: "linux"
arch: "x64"
distro: "amazonlinux"
release: "2023"
command:
- "./scripts/runner.node.mjs --step linux-x64-baseline-build-bun --smoke 0.05"
# Windows x64
- key: "windows-x64"
group: ":windows: x64"
@@ -1538,7 +1448,9 @@ steps:
- key: "windows-x64-build-bun"
label: ":windows: x64 - build-bun"
depends_on:
- "windows-x64-build-bun-nolto"
- "windows-x64-build-deps"
- "windows-x64-build-zig"
- "windows-x64-build-cpp"
agents:
queue: "build-windows"
os: "windows"
@@ -1559,6 +1471,16 @@ steps:
parallelism: 10
soft_fail:
- exit_status: 1
retry:
automatic:
- exit_status: -1
limit: 3
- exit_status: 255
limit: 3
- signal_reason: agent_stop
limit: 3
- signal: SIGTERM
limit: 3
depends_on:
- "windows-x64-build-bun-nolto"
agents:
@@ -1573,6 +1495,16 @@ steps:
parallelism: 1
soft_fail:
- exit_status: 1
retry:
automatic:
- exit_status: -1
limit: 3
- exit_status: 255
limit: 3
- signal_reason: agent_stop
limit: 3
- signal: SIGTERM
limit: 3
depends_on:
- "windows-x64-build-bun"
agents:
@@ -1642,8 +1574,8 @@ steps:
os: "windows"
arch: "x64"
artifact_paths:
- "windows-x64-baseline-nolto.zip"
- "windows-x64-baseline-nolto-profile.zip"
- "bun-windows-x64-baseline-nolto.zip"
- "bun-windows-x64-baseline-nolto-profile.zip"
- "features.json"
env:
CPU_TARGET: "nehalem"
@@ -1655,14 +1587,16 @@ steps:
- key: "windows-x64-baseline-build-bun"
label: ":windows: x64-baseline - build-bun"
depends_on:
- "windows-x64-baseline-build-bun-nolto"
- "windows-x64-baseline-build-deps"
- "windows-x64-baseline-build-zig"
- "windows-x64-baseline-build-cpp"
agents:
queue: "build-windows"
os: "windows"
arch: "x64"
artifact_paths:
- "windows-x64-baseline.zip"
- "windows-x64-baseline-profile.zip"
- "bun-windows-x64-baseline.zip"
- "bun-windows-x64-baseline-profile.zip"
- "features.json"
env:
CPU_TARGET: "nehalem"
@@ -1676,6 +1610,16 @@ steps:
parallelism: 10
soft_fail:
- exit_status: 1
retry:
automatic:
- exit_status: -1
limit: 3
- exit_status: 255
limit: 3
- signal_reason: agent_stop
limit: 3
- signal: SIGTERM
limit: 3
depends_on:
- "windows-x64-baseline-build-bun-nolto"
agents:
@@ -1690,6 +1634,16 @@ steps:
parallelism: 1
soft_fail:
- exit_status: 1
retry:
automatic:
- exit_status: -1
limit: 3
- exit_status: 255
limit: 3
- signal_reason: agent_stop
limit: 3
- signal: SIGTERM
limit: 3
depends_on:
- "windows-x64-baseline-build-bun"
agents:

View File

@@ -0,0 +1,94 @@
#!/bin/bash
set -eo pipefail
function assert_main() {
if [ "$BUILDKITE_REPO" != "$BUILDKITE_PULL_REQUEST_REPO" ]; then
echo "error: Cannot upload release from a fork"
exit 1
fi
if [ -n "$BUILDKITE_PULL_REQUEST" ]; then
echo "error: Cannot upload release from a pull request"
exit 1
fi
if [ "$BUILDKITE_BRANCH" != "main" ]; then
echo "error: Cannot upload release from a branch other than main"
exit 1
fi
}
function assert_buildkite_agent() {
if ! command -v buildkite-agent &> /dev/null; then
echo "error: Cannot find buildkite-agent, please install it:"
echo "https://buildkite.com/docs/agent/v3/install"
exit 1
fi
}
function assert_gh() {
if ! command -v gh &> /dev/null; then
echo "warning: gh is not installed, installing..."
if command -v brew &> /dev/null; then
brew install gh
else
echo "error: Cannot install gh, please install it:"
echo "https://github.com/cli/cli#installation"
exit 1
fi
fi
}
function assert_gh_token() {
local token=$(buildkite-agent secret get GITHUB_TOKEN)
if [ -z "$token" ]; then
echo "error: Cannot find GITHUB_TOKEN secret"
echo ""
echo "hint: Create a secret named GITHUB_TOKEN with a GitHub access token:"
echo "https://buildkite.com/docs/pipelines/buildkite-secrets"
exit 1
fi
export GH_TOKEN="$token"
}
function download_artifact() {
local name=$1
buildkite-agent artifact download "$name" .
if [ ! -f "$name" ]; then
echo "error: Cannot find Buildkite artifact: $name"
exit 1
fi
}
function upload_assets() {
local tag=$1
local files=${@:2}
gh release upload "$tag" $files --clobber --repo "$BUILDKITE_REPO"
}
assert_main
assert_buildkite_agent
assert_gh
assert_gh_token
declare artifacts=(
bun-darwin-aarch64.zip
bun-darwin-aarch64-profile.zip
bun-darwin-x64.zip
bun-darwin-x64-profile.zip
bun-linux-aarch64.zip
bun-linux-aarch64-profile.zip
bun-linux-x64.zip
bun-linux-x64-profile.zip
bun-linux-x64-baseline.zip
bun-linux-x64-baseline-profile.zip
bun-windows-x64.zip
bun-windows-x64-profile.zip
bun-windows-x64-baseline.zip
bun-windows-x64-baseline-profile.zip
)
for artifact in "${artifacts[@]}"; do
download_artifact $artifact
done
upload_assets "canary" "${artifacts[@]}"

View File

@@ -1,28 +0,0 @@
name: CI
permissions:
contents: read
statuses: read
actions: write
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
on:
workflow_dispatch:
pull_request:
push:
jobs:
trigger:
name: CI
runs-on: ubuntu-latest
steps:
- id: ci
name: Start CI
uses: buildkite/trigger-pipeline-action@v2.2.0
with:
buildkite_api_access_token: ${{ secrets.BUILDKITE_TOKEN }}
pipeline: "bun/sandbox"
send_pull_request: true

View File

@@ -16,7 +16,7 @@ await proc.exited;
The second argument accepts a configuration object.
```ts
const proc = Bun.spawn("echo", ["Hello, world!"], {
const proc = Bun.spawn(["echo", "Hello, world!"], {
cwd: "/tmp",
env: { FOO: "bar" },
onExit(proc, exitCode, signalCode, error) {

View File

@@ -40,7 +40,7 @@ ninja -v
if ($LASTEXITCODE -ne 0) { throw "Link failed!" }
ls
if ($UseLto -eq "OFF") {
if ($Fast) {
$Tag = "$Tag-nolto"
}

View File

@@ -2570,8 +2570,7 @@ pub fn escapeHTMLForLatin1Input(allocator: std.mem.Allocator, latin1: []const u8
buf = try std.ArrayList(u8).initCapacity(allocator, latin1.len + 6);
const copy_len = @intFromPtr(remaining.ptr) - @intFromPtr(latin1.ptr);
@memcpy(buf.items[0..copy_len], latin1[0..copy_len]);
buf.items.len = copy_len;
buf.appendSliceAssumeCapacity(latin1[0..copy_len]);
any_needs_escape = true;
inline for (0..ascii_vector_size) |i| {
switch (vec[i]) {

View File

@@ -102,4 +102,28 @@ describe("escapeHTML", () => {
escapeHTML(String.fromCodePoint(0xd800) + "\xff".repeat(i));
}
});
it("fuzz latin1", () => {
for (let i = 0; i < 256; i++) {
const initial = Buffer.alloc(i + 1, "a");
for (let j = 0; j < i; j++) {
const clone = Buffer.from(initial);
clone[j] = ">".charCodeAt(0);
Bun.escapeHTML(clone.toString());
}
}
});
it("fuzz utf16", () => {
for (let i = 0; i < 256; i++) {
const initial = new Uint16Array(i);
initial.fill("a".charCodeAt(0));
for (let j = 0; j < i; j++) {
const clone = Buffer.from(initial);
clone[j] = ">".charCodeAt(0);
Bun.escapeHTML(clone.toString("utf16le"));
}
}
});
});