New features of Codemagic in March

Apr 22, 2019

Without noticing it’s time for product updates in March. What cool product updates our development team has released to let you build, test and deliver your Flutter apps in record time?🤔 You can also check our product roundup for January and February.

Our developers have worked day and night to improve the quality of CI/CD for Flutter and build Codemagic into a mature CI tool. A big bow to our software heroes Mikhail, Andri, Jan, Joosep, Priit, Lena, Madis and Karin for assuring quality, John for providing technical support and Mart and Laura for the beautiful UI. That’s our small yet productive dev team we are extremely proud of. 👏👏👏

Here are our product updates of the previous month. If there’s some crucial feature missing for your needs, please do not hesitate to contact us.

Support for custom app repositories

In addition to the apps detected automatically in your GitHub, GitLab or Bitbucket repositories, you can now add apps hosted in other public or private Git repositories. This includes repositories requiring SSH key authentication.

Here’s how to add a new app from a custom source:

  1. Click Add app from custom source on the Applications page.
  2. Enter the checkout URL of the repository.
  3. If a private key is required to access the repository or any submodules in it, upload the SSH private key file.
  4. If the SSH key is password-protected, you’ll be also asked to enter the SSH key password.
  5. Click Add app.

You can then configure the app settings before running the first build or immediately start a build with preconfigured defaults.

Builds with failing tests

We have improved the logic of handling builds with failing tests. If you check the Stop build if tests fail option in the Test section of app settings and at least one of your tests fail, Codemagic will stop the build without generating artifacts and display the build status as failed. In contrast, if you leave this option unchecked and tests fail, Codemagic will carry on building and finish the build with a warning.

You can now also receive a Slack notification about failing tests for builds with Stop build if tests fail checked. For this, you need to have the Notify when build fails option checked in your Slack configuration. The respective Slack message looks like this:

Option to upload several provisioning profiles

You can upload more than one provisioning profile to Codemagic with our manual code signing option for iOS. This is required if your app contains app extensions and you need to upload an additional provisioning profile for each extension. As you upload a provisioning profile, a new field for uploading is added automatically so you can upload as many files as needed.

Building and publishing Android app bundles

Codemagic supports building Android app bundles for publishing to Google Play. When you upload your app as an Android app bundle in `.aab` format, app APKs will be dynamically created and optimized for user’s device configuration when the app is installed from Google Play Store.

Note: Android app bundles are supported starting from Flutter v1.1.5.

Here’s how to build and publish Android app bundles:

  1. In the Build section of app settings, select the Release mode and check the Build Android App Bundles option under Build for Platforms.
  2. Set up Android code signing in the Publish section to sign the app bundle.
  3. Set up publishing to Google Play in the Publish section to upload your app bundle to one of Google Play tracks.
  4. Enroll your app into app signing by Google Play to have Google sign the APKs that are generated from the app bundle. Read more about it here: https://support.google.com/googleplay/android-developer/answer/7384423

When you enroll an app into app signing by Google Play, Google will manage your app’s signing key for you and use it to sign the APKs for distribution. Note that the app must be signed with the same key throughout its lifecycle, so if the app has already been uploaded to Google Play, make sure to export and upload your original key to Google Play for app signing.

Automatic builds on pull request updates

We have added support for triggering builds on pull request updates for apps hosted on GitHub. When you have enabled this trigger in App settings > Build triggers by checking Trigger on pull request update, Codemagic will run tests for the opened or updated pull request without building the Android or the iOS app and pass the result back to the repository.

With adding this feature, the Build triggers section has got an updated look. Instead of choosing whether to trigger builds automatically or manually, you can now select the trigger(s) for automatic building. If you do not check any of the options under Automatic build triggering, builds for the workflow will have to be run manually. Note that the Trigger on pull request update option is displayed only for apps hosted on GitHub.

Improved configuration of Slack publishing

Until now, it was not possible to turn off Slack publishing once you had configured it on Codemagic. We have added the Select channel… option to the Channel dropdown so you can disable Slack messages for a workflow when you select this option. When you enable the Slack integration for your account, Select channel… is selected by default and you will have to select the channel for publishing manually for each workflow.

In addition, there’s a change in the notifications logic. Codemagic now sends a notification to your configured Slack channel whenever a build finishes, regardless of the status. When you wish to get notified also when a build is started, you will have to check Notify when build starts. Also, build artifacts are from now on always published for successful and failed builds. In order to receive build artifacts of builds that finished with a warning because tests failed, check Publish artifacts even if tests fail.

Have a new feature in mind? Want to submit a ticket? Start from here.

Wrap-up

We love Flutter and we love Flutter developers. We are on a mission to provide a world-class CI/CD tool dedicated to Flutter so that all Flutter developers can build, test and deliver Flutter apps in record time with Codemagic.

As always, we’d love to hear any questions or feedback you have about our latest features. Feel free to share your thoughts by mentioning @codemagicio on Twitter, or sending them to info@codemagic.io. If there’s something you would love to discuss, feel free to join the Codemagic Slack community for Flutter and CI/CD with more than 700 Flutter developers as members.

Codemagic CI for Flutter