By Martin Jeret, Nevercode CEO
Today we are announcing that Nevercode CI/CD will transition fully to Codemagic CI/CD from January 1, 2021. Codemagic has been in the market close to 2 years now since its launch in Dec 2018 at Flutter Live. Codemagic is a highly customizable, powerful platform that includes first-class support for macOS VMs with iOS code signing and distribution. Codemagic will help teams of all sizes. Codemagic allows you to do what you do best — create products that people love with our open source utilities maintained by industry experts.
Over 10 million builds later, we see that the need to customize is inevitable, and in order to serve the developers that use our products to the best of our ability, we cannot keep adding new features to Nevercode CI/CD but must make fundamental changes. We follow 3 core values in order to do that.
- Transparency — giving you actionable insight and open sourcing our tools
- Fast feedback — improving our build speeds and validation logic
- Removing annoyances — automating every part we can and improving our cli tools
The way developers use our products has exceeded our expectations and we have shifted from an opinionated approach in Nevercode to a more loosely coupled configuration structure in Codemagic. All changes we have made have been thanks to the developer community and we are so thankful to everyone that has given us feedback and helped us build a better product.
What Codemagic can do that Nevercode can’t
Infrastructure as code
You can configure your Codemagic CI/CD pipelines just like any other and we have really pushed ourselves to bring the ease of using a web UI to your command line. There are many areas where a UI is just not enough anymore and we could not see a clear way of giving flexibility that a declarative configuration file provides in the web UI.
It is a hard balance to strike, but I believe we are on the right track by limiting the configuration we require to only the bare minimum to integrate with the services you are using.
New Apple Developer Portal integration
Our cli tools require only an API key to connect to App Store Connect. We can fetch and create provisioning profiles and developer certificates. Once set up, you can manage profiles and certificates in your workflows. No need to update the integration thereafter. If you already have this set up with fastlane, you can continue using it and run the lanes as one of the build scripts.
You can manage the iOS workflow with 6 commands and produce an .ipa:
- keychain initialize - app-store-connect fetch-signing-files --create --type=IOS_APP_ADHOC $BUNDLE_ID_IDENTIFIER - keychain add-certificates - cd $FCI_BUILD_DIR && agvtool new-version -all $BUILD_NUMBER - xcode-project use-profiles - xcode-project build-ipa --project "$XCODE_PROJECT.xcodeproj" --scheme "$XCODE_SCHEME"
Publishing can be done with 2 commands:
publishing: app_store_connect: apple_id: email@example.com Password: Encrypted(app specific password)
Faster machines on demand
You can switch between instance types on demand without a need to talk to sales or request access to them. Just specify the instance type for your workflow.
workflows: ios-app: name: iOS App instance_type: mac_pro
Mac Pros see up to 50% faster build times than Mac Minis!
We run standard shell scripts and you can install the python library to your local machine to test the workflows before committing the .yaml file to your repository.
pip3 install codemagic-cli-tools
Better integration with your favourite tools
You can trigger builds and pass environment variables to be used during build time. You can also encrypt environment variables, create apps and get the status of your builds with the API. There are already some who have created packages around our REST API to create your own client for getting the latest builds to test devices. If you really push it, you can create CI workflows automatically using this approach.
What else do we have in store for Codemagic?
We will be continuously improving our service to give actionable feedback, make the tooling as transparent as possible and improve the developer experience to customize the CI setup.
We want to make it easier to work with repositories hosted in a private network and configuring VPN access. We also want to simplify working with multiple clients and managing access to team members and clients. Customers have requested insights about their projects like the number of builds per app, build times and other data to evaluate how CI/CD practices improve the mobile team’s productivity.
Why now or why 2021?
Our tooling is stable and well documented. We have consistently had 99.9% uptime or more for the past couple of months and we see this trend continuing.
Working in teams and with clients
You only need to access the web app to read logs, configure billing and manage integrations. Client and team member access to the web app is not as necessary since everything is configurable from the .yaml file in the repository.
Consolidating our products gives significantly more resources to offer outstanding customer support and react to feedback and feature requests swiftly. We are really eager to improve and make swift changes.
We remain a relatively small team with great expertise in devops and software development. We care a lot about the people using our service. We are glad that our industry expertise has made it possible to offer our service to some of the most talented developers in the world. I guarantee that we can serve you better on Codemagic and will assist you in the transition period.
Get in touch with us to migrate from Nevercode to Codemagic or request a demo.