-
Notifications
You must be signed in to change notification settings - Fork 0
Buddybuild
Buddybuild is a versatile tool to build, test ad distribute mobile apps – with all goods and bads of this approach.
On the pros side are: crash collection, distribution, and on cons: build focused on apps and conventions over customization. See short comparison with Travis CI. All other significant features are described here.
Most of the setup is done through web UI, however couple of tasks are set in custom script
Both dependency managers are supported in Buddybuild automatically.
Whenever Cartfile
, Cartfile.private
, or Podfile
are detected by
Buddybuild - they trigger related build commands: carthage
and pod
.
There's no much control over it (for example passing extra arguments,
like carthage --no-use-binaries
), unless you use custom build script.
Fortunately, the project doesn't need them, because:
- For Carthage – all the binaries are checked in to the repository
- For CocoaPods – pods are used only to support [[
pod try
|CocoaPods-publication#support-for-pod-try]]
So, the easiest is to just skip both, by deleting these files
triggering automated commands in buddybuild_postclone.sh
:
#!/usr/bin/env bash
rm -rf Sources/ZalandoCommerceDemoApp/Podfile
rm -rf Cartfile.private
All releases of the project frameworks get links to demo app.
It's possible, because Buddybuild can automatically build tagged releases and then it updates the release notes with a url to the app.
Additionally, each build from tag fires pod validation operation in buddybuild_postbuild.sh
The project uses it to verify podspec on builds from tags. Pod verification could be time-consuming, that is why it's run only for tags in buddybuild_postbuild.sh.
Scheduled deployments are used to build app form master
branch on each working day.
See more in Buddybuild custom build scripts
Runs after cloning repository.
See source: buddybuild_postclone.sh
Runs after installing dependencies
Not used.
Runs after successful build.
Usually used for uploading build artifacts somewhere.
Used for automated podspec validation, and it's planned for Testdroid tests, when they're available.
See source: buddybuild_postbuild.sh
Buddybuild SDK is integrated only into Demo app, which allows to gather: feedback screenshots and crash reports, and additionally notify about new version available.
- Multiple simulators - allows to run tests on different iOS and device simulators
- Custom build setups for different branches - allows to override the default configuration on a per-branch basis: schema, pushes, Xcode version, tests requirement and more.
- Uploading distribution certificate - needed for code signing for devices. Just running terminal command extracts all the required certificates.
- Auto-versioning - automatically increase app version following different patterns, which allows seamless app update among testers.
It's not possible to prepare environment before clone, like for example install dependencies for git, eg. Git LFS, or run a script after build regardless its result.
In some situations a job could wait in a queue for several hours, and full build and test on 4 simulators takes ~1 hour.
☎️ Questions, problems, new ideas? Please email us or create an issue.
© 2016-2017 Zalando SE