mirror of
https://github.com/oven-sh/bun
synced 2026-02-11 11:29:02 +00:00
85 lines
2.1 KiB
Markdown
85 lines
2.1 KiB
Markdown
# CI
|
|
|
|
This directory contains scripts for building CI images for Bun.
|
|
|
|
## Building
|
|
|
|
### `macOS`
|
|
|
|
On macOS, images are built using [`tart`](https://tart.run/), a tool that abstracts over the [`Virtualization.Framework`](https://developer.apple.com/documentation/virtualization) APIs, to run macOS VMs.
|
|
|
|
To install the dependencies required, run:
|
|
|
|
```sh
|
|
$ cd ci
|
|
$ bun run bootstrap
|
|
```
|
|
|
|
To build a vanilla macOS VM, run:
|
|
|
|
```sh
|
|
$ bun run build:darwin-aarch64-vanilla
|
|
```
|
|
|
|
This builds a vanilla macOS VM with the current macOS release on your machine. It runs scripts to disable things like spotlight and siri, but it does not install any software.
|
|
|
|
> Note: The image size is 50GB, so make sure you have enough disk space.
|
|
|
|
If you want to build a specific macOS release, you can run:
|
|
|
|
```sh
|
|
$ bun run build:darwin-aarch64-vanilla-15
|
|
```
|
|
|
|
> Note: You cannot build a newer release of macOS on an older macOS machine.
|
|
|
|
To build a macOS VM with software installed to build and test Bun, run:
|
|
|
|
```sh
|
|
$ bun run build:darwin-aarch64
|
|
```
|
|
|
|
## Running
|
|
|
|
### `macOS`
|
|
|
|
## How To
|
|
|
|
### Support a new macOS release
|
|
|
|
1. Visit [`ipsw.me`](https://ipsw.me/VirtualMac2,1) and find the IPSW of the macOS release you want to build.
|
|
|
|
2. Add an entry to [`ci/darwin/variables.pkr.hcl`](/ci/darwin/variables.pkr.hcl) with the following format:
|
|
|
|
```hcl
|
|
sonoma = {
|
|
distro = "sonoma"
|
|
release = "15"
|
|
ipsw = "https://updates.cdn-apple.com/..."
|
|
}
|
|
```
|
|
|
|
3. Add matching scripts to [`ci/package.json`](/ci/package.json) to build the image, then test it:
|
|
|
|
```sh
|
|
$ bun run build:darwin-aarch64-vanilla-15
|
|
```
|
|
|
|
> Note: If you need to troubleshoot the build, you can remove the `headless = true` property from [`ci/darwin/image-vanilla.pkr.hcl`](/ci/darwin/image-vanilla.pkr.hcl) and the VM's screen will be displayed.
|
|
|
|
4. Test and build the non-vanilla image:
|
|
|
|
```sh
|
|
$ bun run build:darwin-aarch64-15
|
|
```
|
|
|
|
This will use the vanilla image and run the [`scripts/bootstrap.sh`](/scripts/bootstrap.sh) script to install the required software to build and test Bun.
|
|
|
|
5. Publish the images:
|
|
|
|
```sh
|
|
$ bun run login
|
|
$ bun run publish:darwin-aarch64-vanilla-15
|
|
$ bun run publish:darwin-aarch64-15
|
|
```
|