Commit Graph

13004 Commits

Author SHA1 Message Date
Claude Bot
b2c8dc1eee Enhance macOS runner infrastructure with comprehensive improvements
This update significantly improves the macOS runner infrastructure based on detailed analysis of the bootstrap.sh script and adds robust testing and validation:

## 🔧 **Key Improvements**

### Software Version Synchronization
- **Node.js**: 24.3.0 (exact version matching bootstrap.sh)
- **Bun**: 1.2.17 (exact version matching bootstrap.sh)
- **LLVM**: 19.1.7 (exact version matching bootstrap.sh)
- **CMake**: 3.30.5 (exact version matching bootstrap.sh)
- **Buildkite Agent**: 3.87.0

### Enhanced bootstrap-macos.sh
- Complete rewrite based on bootstrap.sh analysis
- Added Tailscale configuration for VPN connectivity
- Age encryption tool for macOS equivalent of core dumps
- macFUSE and python-fuse for filesystem testing
- Chromium installation for browser testing
- Exact version installations with verification
- Node.js headers and node-gyp cache setup

### Comprehensive Testing & Validation
- **Image Validation**: Tests all software installations after build
- **Flakiness Testing**: 3 iterations with 80% success rate minimum
- **Software Verification**: Node.js, Bun, CMake, Clang, Docker, Tailscale
- **Health Endpoint Testing**: Validates service availability
- **Automated Cleanup**: Test VMs are automatically cleaned up

### Discord Notifications
- Replaced Slack with Discord webhooks for all notifications
- Enhanced notification format with markdown support
- Color-coded status indicators (green=success, red=failure, gray=skipped)
- Detailed deployment information and links

### User Isolation Improvements
- Enhanced user creation with proper environment setup
- Improved cleanup with comprehensive process termination
- Better error handling and logging
- Timeout management for job execution

### Documentation & Developer Experience
- **CLAUDE.md**: Comprehensive guide for future Claude development
- Updated README.md with exact version requirements
- Updated DEPLOYMENT.md with Discord configuration
- Detailed troubleshooting and debugging sections

## 🚀 **Architecture Benefits**

- **Reliability**: Flakiness testing ensures consistent VM performance
- **Consistency**: Exact version matching with bootstrap.sh prevents environment drift
- **Isolation**: Complete job isolation with disposable user accounts
- **Monitoring**: Enhanced health checks and status reporting
- **Maintainability**: Clear documentation and development guidelines

## 🛠️ **Technical Details**

- Enhanced Packer configuration with comprehensive software installation
- Improved Terraform infrastructure with better resource management
- Robust GitHub Actions workflows with multi-stage validation
- Comprehensive user management scripts with proper cleanup
- Health monitoring and automated recovery mechanisms

The infrastructure now provides production-ready macOS CI runners with enterprise-grade reliability, security, and monitoring capabilities.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-18 11:55:26 +00:00
Claude Bot
7f8b985c69 Add macOS runner infrastructure for automated GitHub Actions deployment
This implements a comprehensive macOS CI runner infrastructure based on the MacStadium Orka platform, providing:

## Key Features
- **Complete Job Isolation**: Each Buildkite job runs in its own user account
- **Automated VM Image Building**: Daily Packer-based image rebuilds with latest software
- **Fleet Management**: Terraform-managed VM fleet with auto-scaling
- **Multi-Version Support**: macOS 13, 14, and 15 simultaneously
- **Comprehensive Cleanup**: Automated cleanup of processes, files, and resources

## Components
- **Packer Configuration**: Automated VM image building with all required software
- **Terraform Infrastructure**: VM fleet management with auto-scaling and monitoring
- **User Management Scripts**: Per-job user creation and cleanup for complete isolation
- **GitHub Actions Workflows**: Daily image rebuilds and fleet deployment automation
- **Bootstrap Scripts**: macOS-specific software installation and configuration

## Architecture
- Uses MacStadium Orka platform for macOS VM hosting
- Implements disposable user accounts per job (bk-<job-id>)
- Includes health monitoring and auto-scaling based on queue demand
- Provides comprehensive logging and Slack notifications
- Supports cost optimization through efficient resource utilization

## Software Included
- Xcode Command Line Tools, LLVM/Clang 19, Node.js 24.3.0, Bun 1.2.17
- Python 3.11/3.12, Go, Rust, Docker Desktop
- Build tools: CMake, Ninja, make, pkg-config, ccache
- Development utilities and system libraries

Based on the existing bootstrap.sh but optimized for macOS CI environments with complete job isolation and automated management.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-18 11:49:26 +00:00
Michael H
15b7cd8c18 node:fs.glob support array of excludes and globs (#20883) 2025-07-16 03:08:54 -07:00
190n
d3adc16524 do not silently fail in configure_core_dumps (#21095) 2025-07-16 03:06:46 -07:00
Meghan Denny
fae0a64d90 small 20956 followup (#21103) 2025-07-16 02:26:40 -07:00
Michael H
0ee633663e Implement bun why (#20847)
Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2025-07-16 02:00:53 -07:00
Michael H
a717679fb3 support $variables in test.each (#21061) 2025-07-16 01:42:19 -07:00
Dylan Conway
36ce7b0203 comment 2025-07-16 01:08:30 -07:00
Dylan Conway
2bc75a87f4 fix(install): fix resolving duplicate dependencies (#21059)
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2025-07-16 01:01:10 -07:00
Jarred Sumner
fdec7fc6e3 Simpler version of #20813 (#21102)
Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>
Co-authored-by: Jarred Sumner <Jarred-Sumner@users.noreply.github.com>
2025-07-16 00:14:33 -07:00
Meghan Denny
875604a42b safety: a lot more exception checker progress (#20956) 2025-07-16 00:11:19 -07:00
Jarred Sumner
d8b37bf408 Shrink MimeType list (#21004)
Co-authored-by: Jarred-Sumner <709451+Jarred-Sumner@users.noreply.github.com>
Co-authored-by: Meghan Denny <meghan@bun.sh>
2025-07-15 22:37:09 -07:00
jarred-sumner-bot
32ce9a3890 Add Windows PE codesigning support for standalone executables (#21091)
Co-authored-by: Claude Bot <claude-bot@bun.sh>
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
2025-07-15 22:31:54 -07:00
Jarred Sumner
0ce70df96b Buffer stdout when printing summary + check for dir/package.json + npmrc link-workspace-packages + npmrc save-exact (#20907) 2025-07-15 22:15:41 -07:00
Jarred Sumner
b0a5728b37 Allow "catalog" and "catalogs" in top-level package.json if it wasn't provided in "workspaces" object (#21009) 2025-07-15 22:14:27 -07:00
Michael H
20db4b636e implement bun pm pkg (#21046) 2025-07-15 22:14:00 -07:00
jarred-sumner-bot
1cef9399e4 fix: CSS parser crashes with calc() NaN values and system colors in color-mix() (#21079)
Co-authored-by: Claude Bot <claude-bot@bun.sh>
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Zack Radisic <56137411+zackradisic@users.noreply.github.com>
2025-07-15 22:02:03 -07:00
Michael H
f4444c0e4d fix --tsconfig-override (#21045) 2025-07-15 22:00:17 -07:00
Dylan Conway
577b327fe5 [ENG-15008] fix #21086 (#21093)
Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
2025-07-15 21:59:41 -07:00
pfg
9d2eb78544 Fetch redirect fix (#21064)
Co-authored-by: pfgithub <6010774+pfgithub@users.noreply.github.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Ciro Spaciari <ciro.spaciari@gmail.com>
2025-07-15 20:51:52 -07:00
Meghan Denny
4be43e2c52 de-flake spawn.test.ts 2025-07-15 17:18:46 -07:00
Ciro Spaciari
93cc51c974 fix(s3) handle slashs at end and start of bucket name (#20997) 2025-07-15 16:52:47 -07:00
190n
528ee8b673 cleanup main.zig (#21085) 2025-07-15 16:29:03 -07:00
Jarred Sumner
c2fc69302b Try to deflake bun-install-lifecycle-scripts test (#21070) 2025-07-15 16:27:56 -07:00
Jarred Sumner
df7b6b4813 Add NODE_NO_WARNINGS (#21075) 2025-07-15 16:27:21 -07:00
jarred-sumner-bot
81b4b8ca94 fix(s3): ensure correct alphabetical query parameter order in presigned URLs (#21050)
Co-authored-by: Claude Bot <claude-bot@bun.sh>
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: jarred-sumner-bot <220441119+jarred-sumner-bot@users.noreply.github.com>
Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
2025-07-15 16:20:34 -07:00
Meghan Denny
a242c878c3 [publish images] ci: add ubuntu 25.04 (#20996)
Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
Co-authored-by: Jarred-Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2025-07-15 01:22:41 -07:00
taylor.fish
77af8729c1 Fix potential buffer overflow in which.isValid (#21062)
Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
2025-07-15 01:20:34 -07:00
taylor.fish
3b2289d76c Sync Mutex and Futex with upstream and port std.Thread.Condition (#21060)
Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
2025-07-15 01:16:40 -07:00
jarred-sumner-bot
803181ae7c Add --quiet flag to bun pm pack command (#21053)
Co-authored-by: Claude Bot <claude-bot@bun.sh>
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: jarred-sumner-bot <220441119+jarred-sumner-bot@users.noreply.github.com>
Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
2025-07-15 01:14:58 -07:00
Jarred Sumner
89aae0bdc0 Add flag to disable sql auto pipelining (#21067)
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2025-07-15 01:13:35 -07:00
Jarred Sumner
e62f9286c9 Fix formatter action 2025-07-15 00:16:30 -07:00
Alistair Smith
b75eb0c7c6 Updates to bun init React templates: Electric boogaloo (#21066) 2025-07-15 00:10:02 -07:00
Jarred Sumner
33fac76763 Delete flaky test that made incorrect assumptions about the event loop
We cannot assume that the next event loop cycle will yield the expected outcome from the operating system. We can assume certain things happen in a certain order, but when timers run next does not mean kqueue/epoll/iocp will always have the data available there.
2025-07-14 23:58:37 -07:00
Jarred Sumner
40970aee3b Delete flaky test that made incorrect assumptions about the event loop
We cannot assume that the next event loop cycle will yield the expected outcome from the operating system. We can assume certain things happen in a certain order, but when timers run next does not mean kqueue/epoll/iocp will always have the data available there.
2025-07-14 23:53:12 -07:00
Jarred Sumner
a6f09228af Fix 2025-07-14 22:33:59 -07:00
Ciro Spaciari
6efb346e68 feature(postgres) add pipelining support (#20986)
Co-authored-by: cirospaciari <6379399+cirospaciari@users.noreply.github.com>
2025-07-14 21:59:16 -07:00
jarred-sumner-bot
5fe0c034e2 fix: respect user-provided Connection header in fetch() requests (#21049)
Co-authored-by: Claude Bot <claude-bot@bun.sh>
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: jarred-sumner-bot <220441119+jarred-sumner-bot@users.noreply.github.com>
Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>
Co-authored-by: Jarred Sumner <Jarred-Sumner@users.noreply.github.com>
2025-07-14 20:53:46 -07:00
jarred-sumner-bot
7f29446d9b fix(install): handle lifecycle script spawn failures gracefully instead of crashing (#21054)
Co-authored-by: Claude Bot <claude-bot@bun.sh>
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: jarred-sumner-bot <220441119+jarred-sumner-bot@users.noreply.github.com>
2025-07-14 20:50:32 -07:00
Jose Angel
c5f64036a7 docs: Update docs for use prisma with bun (#21048)
Co-authored-by: jose angel gonzalez velazquez <angel@23LAP1CD208600C.indra.es>
2025-07-14 19:40:05 -07:00
jarred-sumner-bot
757096777b Document test.coveragePathIgnorePatterns option (#21036)
Co-authored-by: Claude Bot <claude-bot@bun.sh>
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
2025-07-14 17:36:10 -07:00
jarred-sumner-bot
e9ccc81e03 Add --sql-preconnect CLI flag for PostgreSQL startup connections (#21035)
Co-authored-by: Claude Bot <claude-bot@bun.sh>
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: jarred-sumner-bot <220441119+jarred-sumner-bot@users.noreply.github.com>
Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
Co-authored-by: Jarred-Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2025-07-14 15:05:30 -07:00
Jarred Sumner
70ebe75e6c Fixes #21011 (#21014) 2025-07-14 14:18:18 -07:00
jarred-sumner-bot
44a7e6279e Make --console-depth=0 enable infinite depth instead of zero depth (#21038)
Co-authored-by: Claude Bot <claude-bot@bun.sh>
Co-authored-by: Claude <noreply@anthropic.com>
2025-07-14 07:45:20 -07:00
Jarred Sumner
7bb9a94d68 Implement test.coveragePathIgnorePatterns (#21013)
Co-authored-by: Claude Bot <claude-bot@bun.sh>
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Jarred-Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2025-07-14 05:08:32 -07:00
jarred-sumner-bot
3bba4e1446 Add --console-depth CLI flag and console.depth bunfig option (#21016)
Co-authored-by: Claude Bot <claude-bot@bun.sh>
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: jarred-sumner-bot <220441119+jarred-sumner-bot@users.noreply.github.com>
Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
2025-07-14 04:58:41 -07:00
Jarred Sumner
8cf4df296d Delete the merge conflict factory
There are many situations where using `catch unreachable` is a reasonable or sometimes necessary decision. This rule causes many, many merge conflicts.
2025-07-14 03:53:50 -07:00
Michael H
3ba9b5710e fix Bun.build with { sourcemap: true } (#21029) 2025-07-14 03:52:26 -07:00
Jarred Sumner
a102f85df2 make debug build logs less noisy 2025-07-14 03:11:10 -07:00
Michael H
e8289cc3ab fix os.networkInterfaces where scope_id should be scopeid (#21026) 2025-07-14 02:48:20 -07:00