Users utilizing the M1 resource class on the CircleCI macOS executor are seeing builds hang. Though we can see builds hanging or timing out for other reasons, a specific bug in Apple's hypervisor framework that can cause issues in virtualized environments. These issues arise when a simulator is launched. You may notice a "Too long with no output (exceeded 5m0s): context deadline exceeded" error.
We have significant improvements in performance when a simulator is booted for the second time by preforming the following steps:
1. Launch your simulator at the beginning of your build. You may use the CircleCI macOS orb's
2. Wait for your simulator to to be booted. You may use the CircleCI macOS orb. This orb includes a command;
wait-until-simulator-booted. This command will wait until your simulator has booted or your job's
`NO_OUTPUT_TIMEOUT` is hit. This is 10 minutes by default.
3. Shutdown the simulator:
4. repeat steps 1 & 2
Other workarounds :
- Adding a retry to the step in which you start your simulator to avoid having to re-run your build.
- Add a final step that uses the when attribute when the value of
"on_fail"and CircleCI v1 retry a build endpoint to rerun the job upon failure.