Closed nick-potts closed 4 years ago
I went ahead and got rid of the device matrix, that way you can just maintain tvOS and iOS as the two latest images, and then a legacy iOS run destination that installs the simulator (taking significantly more time).
Yeah after the close of public beta, they changed the docker images for MacOS to have 1 or a few simuators per XCode app bundle. I think this is pretty silly, no idea why they did that other than to rack up billables maybe for commercial users (macOS is much pricier / minute since they outsource to Orka as the only solution for macOS on macOS docker container host).
The trade-off for Hero isn't monetary, but only time. Tasks are different on macOS images as well as they don't share processes for tasks that share a base OS system. Meaning all steps need to be in 1 task, and matrixes are more or less the same as using 2 tasks, but with some semantic sugar around processing the variables involved, though the same as copy/pasting 2 tasks with different hardcoded bases.
I'm still learning the GH actions syntax, we could still matrix but skip certain steps if the current entry is !=/== certain values using the per step pre-conditions.
On second thought, the matrix should probably just be split out into seperate device groups so the install doesn't get duplicated. Additionally, I'm not sure what you were planning to support, but potentially just have the latest iOS and tvOS without installs + the oldest image of iOS.