You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
by macOS for arm64. Note that the directory 'Parallels' is still used when using `macosvm`
11
11
just so that scripts know where to find the VM and friends.
12
12
-[ ] An Xcode .xip - you can get this from Apple's developer website,
13
13
although you'll need to sign in first: <https://developer.apple.com/downloads>
14
14
If you are doing this from a local macos box, you can skip to the "update the macos host" step.
15
15
-[ ] An Xcode Command Line Tools installer
16
16
17
-
### Instructions (AMD64)
18
-
19
-
-[ ] Go to https://dev.azure.com/vcpkg/public/_settings/agentqueues , pick the current osx queue,
20
-
and delete one of the agents that are idle.
21
-
-[ ] Go to that machine in the KVM. (Passwords are stored as secrets in the CPP_GITHUB\vcpkg\vcpkgmm-passwords key vault)
22
-
-[ ] Open the Parallels Control Center, and delete the active VM.
23
-
-[ ] Update the macos host
24
-
-[ ] Update or install parallels
25
-
-[ ] Download the macOS installer from the app store. See https://support.apple.com/en-us/102662
26
-
Note: This portion of the instructions is that which breaks most often depending on what Parallels and macOS are doing.
27
-
You might need to use `softwareupdate --fetch-full-installer --full-installer-version 15.6.1` and point Parallels
28
-
at that resulting installer in 'Applications' instead.
29
-
-[ ] Run parallels, and select that installer you just downloaded. Name the VM "vcpkg-osx-<DATE>", for example "vcpkg-osx-2025-09-11".
30
-
-[ ] When creating the VM, customize the hardware to the following:
31
-
* 12 processors
32
-
* 24000 MB of memory
33
-
* 350 GB disk
34
-
* Disable sound output
35
-
* Disable microphone
36
-
* Do not share mac camera
37
-
-[ ] Install MacOS like you would on real hardware.
38
-
* Set up as new
39
-
* Apple ID: 'Set Up Later' / Skip
40
-
* Account name: vcpkg
41
-
* A very similar password :)
42
-
* Don't enable Location Services
43
-
* Share crashes with app developers
44
-
* Don't enable Ask Siri
45
-
-[ ] Install Parallels Tools
46
-
-[ ] Restart the VM
47
-
-[ ] Set the desktop wallpaper to a fixed color from Settings -> Wallpaper . (This makes the KVM a lot easier to use :) )
48
-
-[ ] Disable automatic updates in the VM: Settings -> General -> Automatic Updates -> Disable them all
49
-
-[ ] Enable remote login in System Settings -> General -> Sharing -> Remote Login
50
-
-[ ] Update the Azure Agent URI in setup-box.sh to the current version. You can find this by going to the agent pool, selecting "New agent", picking macOS, and copying the link. For example https://download.agent.dev.azure.com/agent/4.261.0/vsts-agent-osx-x64-4.261.0.tar.gz
51
-
-[ ] In the guest, set the vcpkg user to be able to use sudo without a password. From a dev machine:
export GUEST_IP=`prlctl list --full | sed -nr 's/^.*running *([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}).*/\1/p'`
57
-
export SSH_COOKIE=vcpkg@$GUEST_IP
58
-
scp Xcode.xip $SSH_COOKIE:/Users/vcpkg/Xcode.xip
59
-
ssh $SSH_COOKIE# and then enter the password here
60
-
printf'vcpkg\tALL=(ALL)\tNOPASSWD:\tALL\n'| sudo tee -a '/etc/sudoers.d/vcpkg'
61
-
sudo chmod 0440 '/etc/sudoers.d/vcpkg'
62
-
sudo mdutil -ad
63
-
xip --expand Xcode.xip
64
-
sudo mv Xcode.app /Applications/Xcode.app
65
-
rm Xcode.xip
66
-
exit
67
-
```
68
-
- [ ] Open Xcode from Applications in the guest GUI. Accept the EULA.
69
-
- [ ] Update the Azure Agent URI in setup-box.sh to the current version. You can find this by going to the agent pool, selecting "New agent", picking macOS, and copying the link. For example https://download.agent.dev.azure.com/agent/4.261.0/vsts-agent-osx-x64-4.261.0.tar.gz
70
-
- [ ] Copy setup-box.sh and the xcode installer renamed to 'clt.dmg' to the host. For example from a dev workstation:
- [ ] Go to https://dev.azure.com/vcpkg/public/_settings/agentqueues and create a new self hosted Agent pool named `PrOsx-YYYY-MM-DD` based on the current date. Grant microsoft.vcpkg.ci and microsoft.vcpkg.pr access.
98
-
- [ ] Remove the macOS installer from Applications
99
-
- [ ] Follow the "Deploying images" steps below for each machine in the fleet.
100
-
101
17
### Instructions (ARM64)
102
18
103
19
-[ ] Go to https://dev.azure.com/vcpkg/public/_settings/agentqueues , pick the current osx queue,
@@ -107,18 +23,18 @@ This is the checklist for what the vcpkg team does when updating the macOS machi
107
23
-[ ] (Once only) install `macosvm` to `~` (this tarball is also backed up in our `vcpkg-image-minting` storage account). For example from a dev workstation:
- [ ] Download the matching `.ipsw` for the macOS copy to install. See https://mrmacintosh.com/apple-silicon-m1-full-macos-restore-ipsw-firmware-files-database/ ; links there to find the .ipsw. Example: https://updates.cdn-apple.com/2025SummerFCS/fullrestores/093-10809/CFD6DD38-DAF0-40DA-854F-31AAD1294C6F/UniversalMac_15.6.1_24G90_Restore.ipsw
116
-
- [ ] Determine the VM name using the form "vcpkg-osx-<date>-arm64", for example "vcpkg-osx-2025-09-11-arm64".
117
-
- [ ] Open a terminal and run the following commands to create the VM with vcpkg-osx-2025-09-11-arm64 and UniversalMac_15.6.1_24G90_Restore.ipsw replaced as appropriate. This must be run in the KVM as it uses a GUI:
31
+
- [ ] Download the matching `.ipsw`for the macOS copy to install. See https://mrmacintosh.com/apple-silicon-m1-full-macos-restore-ipsw-firmware-files-database/ ; links there to find the .ipsw. Example: https://updates.cdn-apple.com/2025FallFCS/fullrestores/089-04148/791B6F00-A30B-4EB0-B2E3-257167F7715B/UniversalMac_26.1_25B78_Restore.ipsw
32
+
- [ ] Determine the VM name using the form "vcpkg-osx-<date>-arm64", for example "vcpkg-osx-2025-11-11-arm64".
33
+
- [ ] Open a terminal and run the following commands to create the VM with vcpkg-osx-2025-11-11-arm64 and UniversalMac_26.1_25B78_Restore.ipsw replaced as appropriate. This must be run in the KVM as it uses a GUI:
- [ ] Follow prompts as you would on real hardware.
@@ -150,7 +66,7 @@ This is the checklist for what the vcpkg team does when updating the macOS machi
150
66
exit
151
67
```
152
68
- [ ] Open Xcode from Applications in the guest GUI. Uncheck the "code completion model" and accept the EULA.
153
-
- [ ] Update the Azure Agent URI in setup-box.sh to the current version. You can find this by going to the agent pool, selecting "New agent", picking macOS, and copying the link. For example https://download.agent.dev.azure.com/agent/4.261.0/vsts-agent-osx-arm64-4.261.0.tar.gz
69
+
- [ ] Update the Azure Agent URI in setup-box.sh to the current version. You can find this by going to the agent pool, selecting "New agent", picking macOS, and copying the link. For example https://download.agent.dev.azure.com/agent/4.264.2/vsts-agent-osx-arm64-4.264.2.tar.gz
154
70
- [ ] Copy setup-box.sh and the xcode installer renamed to 'clt.dmg' to the host. For example from a dev workstation:
@@ -180,57 +96,7 @@ This is the checklist for what the vcpkg team does when updating the macOS machi
180
96
181
97
## Deploying images
182
98
183
-
### Running the VM (AMD64)
184
-
185
-
Run these steps on each machine to add to the fleet. Skip steps that were done implicitly above if this machine was used to build a box.
186
-
187
-
- [ ] If this machine was used before, delete it from the pool of which it is a member from https://dev.azure.com/vcpkg/public/_settings/agentqueues
188
-
- [ ] Log in to the machine using the KVM.
189
-
- [ ] Check for software updates in macOS system settings
190
-
- [ ] Check for software updates in Parallels' UI
191
-
- [ ] Mint a SAS token URI to the box to use from the Azure portal if you don't already have one, and download the VM. (Recommend running this via SSH from domain joined machine due to containing SAS tokens). From a developer machine:
- [ ] Skip if this is the image building machine. Mint a SAS token URI to the box to use from the Azure portal if you don't already have one, and download the VM. (Recommend running this via SSH from domain joined machine due to containing SAS tokens). From a developer machine:
@@ -267,7 +133,7 @@ Run these steps on each machine to add to the fleet. Skip steps that were done i
0 commit comments