macOS and iOS builds
Using Codefresh for Mac/iPhone applications
Codefresh offers alpha support for macOS and/or iOS as a CI/CD environment. Access to the build environment is possible by invitation only. To run macOS/iOS pipelines in Codefresh, open a free account and then contact sales in order to enable this build environment type.
macOS/iOS builds are only available for the SaaS platform. They are not available for the Hybrid platform at this time.
Enabling macOS/iOS support
Once approved, you will get access to a special runtime environment that will run your macOS/iOS builds. To use this environment create a new pipeline and select it in the pipeline settings screen.
The macOS runtime environment has Xcode already installed for your iOS and/or macOS builds.
Building macOS/iOS applications with Codefresh
Once you assign the special macOS runtime to your pipeline, you can write your Codefresh YAML as usual, keeping in mind the following points
- The git-clone step is available
- Freestyle steps must use the
freestyle-ssh
type - The manual approval step is available
- All Docker-related pipeline steps such build, push, deploy, composition are NOT available.
- Parallel steps are supported
- Only one active build is supported at any given time.
As part of the alpha version the nodes that run your macOS builds are actual nodes (i.e. not containers), so all changes you make there are permanent. This is a temporary limitation of the current Alpha release and will not be present in the General Availability version of the build service.
macOS build pipeline example
You can find a full Codefresh example at https://github.com/alex-codefresh/osx-demo-webserver.
Create a pipeline for it with the following YAML content:
codefresh.yml
This pipeline clones the sample application, builds it with Xcode and then runs it. Notice that the run step cleans up on its own (because macOS builds are not docker based so nothing is cleaned up automatically when the pipeline has finished).
Notice also that freestyle-ssh
steps do not define a docker image (unlike normal freestyle steps).
The logs will show all build information:
Currently, we are working on offering configurable versions of Xcode, Swift, and macOS so that pipelines can define exactly what development environment they need. We also plan fastlane integration.