MacOS

Do more with MacOS

Buddy CI/CD allows you to instantly implement MacOS with 100+ ready to use actions to automate your development and build better apps faster.

Use MacOS in Buddy CI/CD

MacOS - Features, integrations, alternatives & more

What it does

Run Xcode commands on a dedicated Mac virtual machine. Test and build commands defined by the user, are run on a previously built virtual machine running MacOS. All commands are executed in the context of the repository. Once the commands are run, dependencies and artifacts are saved in the pipeline's filesystem and the virtual machine is terminated.

You are able to load your distribution certificates to the virtual machine (files will be added to codesign's keychain) and provisioning profiles which will be copied to ~/Library/MobileDevice/Provisioning Profile

Action preview

Preview MacOS action

Run commands

  • The field supports multiple commands (one per line), piping commands together, or splitting a single command into multiple lines with \\ (backslash) at the end of each line
  • The action is marked as failed when a command exits with a non-zero value
  • The action supports Environment variables which could be used in build commands (Run tab), and in your scripts
  • If encrypted ENV VARs are used in build commands (Run tab), their values will be masked in the action logs
  • Settable variables with a scope higher than the pipeline (ex: project, workspace) are passing their values between pipelines
  • Exit code handling: you can either halt the commands if any throws an error or run the following commands regardless of the result of previous command

Pipeline’s filesystem

  • Action is being run in the pipeline. Each pipeline has it's own persistent filesystem. This filesystem serves as base dependency and artifact cache
  • Filesystem files are copied onto a virtual machine on which the user defined commands/scripts are then run. Once the execution ends, files from the virtual machine are copied back to the pipeline's filesystem and the virtual machine is terminated
  • In the action settings, you can define which files and directories are to be copied between the virtual machine and the filesystem

Variables

  • If commands specified on the Run tab change the value of the variable marked as settable on the Environment variables tab, the new value will be passed on to the next actions
  • SSH keys defined in the ENV VARs are added to ~/.ssh directory of the launched action, so they can be used to fetch private dependencies

Conditions

  • It is possible to specify conditions under which the action will be executed
  • Available conditions: always, on changes in the repository since the last run, on changes in specific paths in the repository, or when a Variable has a specific value
  • Error handling: you can either stop the execution, mark action and pipeline as failed or proceed the execution, mark action as warning and jump to the next action

Do more with MacOS

Buddy allows you to instantly connect MacOS with 100+ actions to automate your development and build better apps faster.

Connect MacOS to 100+ dev tools