# Build and test Bun on macOS, Linux, and Windows. # https://buildkite.com/docs/pipelines/defining-steps # # If a step has the `robobun: true` label, robobun will listen # to webhooks from Buildkite and provision a VM to run the step. # # Changes to this file will be automatically uploaded on the next run # for a particular commit. steps: # macOS aarch64 - key: "darwin-aarch64" group: ":darwin: aarch64" steps: - key: "darwin-aarch64-build-deps" label: ":darwin: aarch64 - build-deps" agents: queue: "build-darwin" os: "darwin" arch: "aarch64" command: - "bun run build:ci --target dependencies" - key: "darwin-aarch64-build-cpp" label: ":darwin: aarch64 - build-cpp" agents: queue: "build-darwin" os: "darwin" arch: "aarch64" env: BUN_CPP_ONLY: "ON" command: - "bun run build:ci --target bun" - key: "darwin-aarch64-build-zig" label: ":darwin: aarch64 - build-zig" agents: queue: "build-zig" command: - "bun run build:ci --target bun-zig --toolchain darwin-aarch64" - key: "darwin-aarch64-build-bun" label: ":darwin: aarch64 - build-bun" agents: queue: "build-darwin" os: "darwin" arch: "aarch64" depends_on: - "darwin-aarch64-build-deps" - "darwin-aarch64-build-cpp" - "darwin-aarch64-build-zig" env: BUN_LINK_ONLY: "ON" command: - "bun run build:ci --target bun" - key: "darwin-aarch64-test-macos-14" label: ":darwin: 14 aarch64 - test-bun" if: "build.branch != 'main'" parallelism: 3 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: "14" command: - "./scripts/runner.node.mjs --step darwin-aarch64-build-bun" - key: "darwin-aarch64-test-macos-13" label: ":darwin: 13 aarch64 - test-bun" if: "build.branch != 'main'" parallelism: 3 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: "13" command: - "./scripts/runner.node.mjs --step darwin-aarch64-build-bun" # macOS x64 - key: "darwin-x64" group: ":darwin: x64" steps: - key: "darwin-x64-build-deps" label: ":darwin: x64 - build-deps" agents: queue: "build-darwin" os: "darwin" arch: "x64" command: - "bun run build:ci --target dependencies" - key: "darwin-x64-build-cpp" label: ":darwin: x64 - build-cpp" agents: queue: "build-darwin" os: "darwin" arch: "x64" env: BUN_CPP_ONLY: "ON" command: - "bun run build:ci --target bun" - key: "darwin-x64-build-zig" label: ":darwin: x64 - build-zig" agents: queue: "build-zig" command: - "bun run build:ci --target bun-zig --toolchain darwin-x64" - key: "darwin-x64-build-bun" label: ":darwin: x64 - build-bun" agents: queue: "build-darwin" os: "darwin" arch: "x64" depends_on: - "darwin-x64-build-deps" - "darwin-x64-build-cpp" - "darwin-x64-build-zig" env: BUN_LINK_ONLY: "ON" command: - "bun run build:ci --target bun" - key: "darwin-x64-test-macos-14" label: ":darwin: 14 x64 - test-bun" if: "build.branch != 'main'" parallelism: 3 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: "14" command: - "./scripts/runner.node.mjs --step darwin-x64-build-bun" - key: "darwin-x64-test-macos-13" label: ":darwin: 13 x64 - test-bun" if: "build.branch != 'main'" parallelism: 3 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: "13" command: - "./scripts/runner.node.mjs --step darwin-x64-build-bun" # Linux x64 - key: "linux-x64" group: ":linux: x64" steps: - key: "linux-x64-build-deps" label: ":linux: x64 - build-deps" agents: queue: "build-linux" os: "linux" arch: "x64" command: - "bun run build:ci --target dependencies" - key: "linux-x64-build-cpp" label: ":linux: x64 - build-cpp" agents: queue: "build-linux" os: "linux" arch: "x64" env: BUN_CPP_ONLY: "ON" command: - "bun run build:ci --target bun" - key: "linux-x64-build-zig" label: ":linux: x64 - build-zig" agents: queue: "build-zig" command: - "bun run build:ci --target bun-zig --toolchain linux-x64" - key: "linux-x64-build-bun" label: ":linux: x64 - build-bun" agents: queue: "build-linux" os: "linux" arch: "x64" depends_on: - "linux-x64-build-deps" - "linux-x64-build-cpp" - "linux-x64-build-zig" env: BUN_LINK_ONLY: "ON" command: - "bun run build:ci --target bun" - key: "linux-x64-test-debian-12" label: ":debian: 12 x64 - test-bun" if: "build.branch != 'main'" parallelism: 10 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: "12" command: - "./scripts/runner.node.mjs --step linux-x64-build-bun" - key: "linux-x64-test-ubuntu-2204" label: ":ubuntu: 22.04 x64 - test-bun" if: "build.branch != 'main'" parallelism: 10 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: "ubuntu" release: "22.04" command: - "./scripts/runner.node.mjs --step linux-x64-build-bun" - key: "linux-x64-test-ubuntu-2004" label: ":ubuntu: 20.04 x64 - test-bun" if: "build.branch != 'main'" parallelism: 10 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: "ubuntu" release: "20.04" command: - "./scripts/runner.node.mjs --step linux-x64-build-bun" # Linux x64-baseline - key: "linux-x64-baseline" group: ":linux: x64-baseline" steps: - key: "linux-x64-baseline-build-deps" label: ":linux: x64-baseline - build-deps" agents: queue: "build-linux" os: "linux" arch: "x64" env: ENABLE_BASELINE: "ON" command: - "bun run build:ci --target dependencies" - key: "linux-x64-baseline-build-cpp" label: ":linux: x64-baseline - build-cpp" agents: queue: "build-linux" os: "linux" arch: "x64" env: ENABLE_BASELINE: "ON" BUN_CPP_ONLY: "ON" command: - "bun run build:ci --target bun" - key: "linux-x64-baseline-build-zig" label: ":linux: x64-baseline - build-zig" agents: queue: "build-zig" env: ENABLE_BASELINE: "ON" command: - "bun run build:ci --target bun-zig --toolchain linux-x64-baseline" - key: "linux-x64-baseline-build-bun" label: ":linux: x64-baseline - build-bun" agents: queue: "build-linux" os: "linux" arch: "x64" depends_on: - "linux-x64-baseline-build-deps" - "linux-x64-baseline-build-cpp" - "linux-x64-baseline-build-zig" env: ENABLE_BASELINE: "ON" BUN_LINK_ONLY: "ON" command: - "bun run build:ci --target bun" - key: "linux-x64-baseline-test-debian-12" label: ":debian: 12 x64-baseline - test-bun" if: "build.branch != 'main'" parallelism: 10 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: "12" command: - "./scripts/runner.node.mjs --step linux-x64-baseline-build-bun" - key: "linux-x64-baseline-test-ubuntu-2204" label: ":ubuntu: 22.04 x64-baseline - test-bun" if: "build.branch != 'main'" parallelism: 10 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: "ubuntu" release: "22.04" command: - "./scripts/runner.node.mjs --step linux-x64-baseline-build-bun" - key: "linux-x64-baseline-test-ubuntu-2004" label: ":ubuntu: 20.04 x64-baseline - test-bun" if: "build.branch != 'main'" parallelism: 10 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: "ubuntu" release: "20.04" command: - "./scripts/runner.node.mjs --step linux-x64-baseline-build-bun" # Linux aarch64 - key: "linux-aarch64" group: ":linux: aarch64" steps: - key: "linux-aarch64-build-deps" label: ":linux: aarch64 - build-deps" agents: queue: "build-linux" os: "linux" arch: "aarch64" command: - "bun run build:ci --target dependencies" - key: "linux-aarch64-build-cpp" label: ":linux: aarch64 - build-cpp" agents: queue: "build-linux" os: "linux" arch: "aarch64" env: BUN_CPP_ONLY: "ON" command: - "bun run build:ci --target bun" - key: "linux-aarch64-build-zig" label: ":linux: aarch64 - build-zig" agents: queue: "build-zig" command: - "bun run build:ci --target bun-zig --toolchain linux-aarch64" - key: "linux-aarch64-build-bun" label: ":linux: aarch64 - build-bun" agents: queue: "build-linux" os: "linux" arch: "aarch64" depends_on: - "linux-aarch64-build-deps" - "linux-aarch64-build-cpp" - "linux-aarch64-build-zig" env: BUN_LINK_ONLY: "ON" command: - "bun run build:ci --target bun" - key: "linux-aarch64-test-debian-12" label: ":debian: 12 aarch64 - test-bun" if: "build.branch != 'main'" parallelism: 10 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: "12" command: - "./scripts/runner.node.mjs --step linux-aarch64-build-bun" - key: "linux-aarch64-test-ubuntu-2204" label: ":ubuntu: 22.04 aarch64 - test-bun" if: "build.branch != 'main'" parallelism: 10 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: "ubuntu" release: "22.04" command: - "./scripts/runner.node.mjs --step linux-aarch64-build-bun" - key: "linux-aarch64-test-ubuntu-2004" label: ":ubuntu: 20.04 aarch64 - test-bun" if: "build.branch != 'main'" parallelism: 10 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: "ubuntu" release: "20.04" command: - "./scripts/runner.node.mjs --step linux-aarch64-build-bun" # Windows x64 - key: "windows-x64" group: ":windows: x64" steps: - key: "windows-x64-build-deps" label: ":windows: x64 - build-deps" agents: queue: "build-windows" os: "windows" arch: "x64" retry: automatic: - exit_status: 255 limit: 5 command: - "bun run build:ci --target dependencies" - key: "windows-x64-build-cpp" label: ":windows: x64 - build-cpp" agents: queue: "build-windows" os: "windows" arch: "x64" retry: automatic: - exit_status: 255 limit: 5 env: BUN_CPP_ONLY: "ON" command: - "bun run build:ci --target bun" - key: "windows-x64-build-zig" label: ":windows: x64 - build-zig" agents: queue: "build-zig" command: - "bun run build:ci --target bun-zig --toolchain windows-x64" - key: "windows-x64-build-bun" label: ":windows: x64 - build-bun" agents: queue: "build-windows" os: "windows" arch: "x64" depends_on: - "windows-x64-build-deps" - "windows-x64-build-cpp" - "windows-x64-build-zig" retry: automatic: - exit_status: 255 limit: 5 env: BUN_LINK_ONLY: "ON" command: - "bun run build:ci --target bun" - key: "windows-x64-test-bun" label: ":windows: x64 - test-bun" if: "build.branch != 'main'" 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" agents: robobun: "true" os: "windows" arch: "x64" command: - "node .\\scripts\\runner.node.mjs --step windows-x64-build-bun" # Windows x64-baseline - key: "windows-x64-baseline" group: ":windows: x64-baseline" steps: - key: "windows-x64-baseline-build-deps" label: ":windows: x64-baseline - build-deps" agents: queue: "build-windows" os: "windows" arch: "x64" retry: automatic: - exit_status: 255 limit: 5 env: ENABLE_BASELINE: "ON" command: - "bun run build:ci --target dependencies" - key: "windows-x64-baseline-build-cpp" label: ":windows: x64-baseline - build-cpp" agents: queue: "build-windows" os: "windows" arch: "x64" retry: automatic: - exit_status: 255 limit: 5 env: ENABLE_BASELINE: "ON" BUN_CPP_ONLY: "ON" command: - "bun run build:ci --target bun" - key: "windows-x64-baseline-build-zig" label: ":windows: x64-baseline - build-zig" agents: queue: "build-zig" env: ENABLE_BASELINE: "ON" command: - "bun run build:ci --target bun-zig --toolchain windows-x64-baseline" - key: "windows-x64-baseline-build-bun" label: ":windows: x64-baseline - build-bun" agents: queue: "build-windows" os: "windows" arch: "x64" depends_on: - "windows-x64-baseline-build-deps" - "windows-x64-baseline-build-cpp" - "windows-x64-baseline-build-zig" retry: automatic: - exit_status: 255 limit: 5 env: ENABLE_BASELINE: "ON" BUN_LINK_ONLY: "ON" command: - "bun run build:ci --target bun" - key: "windows-x64-baseline-test-bun" label: ":windows: x64-baseline - test-bun" if: "build.branch != 'main'" 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" agents: robobun: "true" os: "windows" arch: "x64" command: - "node .\\scripts\\runner.node.mjs --step windows-x64-baseline-build-bun"