What is the best CI automation tool for Meteor mobile apps?

Hello guys, I have been using Fastlane with Jenkins to build my Meteor mobile apps but I created this more than one year ago in my previous company and maybe we have a better way now.

In this solution with Jenkins I run a slave node on Mac in Cloud and use Fastlane there to build and delivery to Google Play and App Store.

I would like to know what are you using? I have seen solutions like bitrise but I’m not sure if they work well with Meteor build.

Additional nice to have, on my current company we build many apps, one per client, then would be nice if we could automatize the whole process, even the first submission to Apple. I don’t know if that is possible because in my previous company we did the first one manually.

4 Likes

I have successfully used the gitlab pipeline for meteor server builds and deploys.

It could be used for binary builds too, because it can have distributed runners on any platform.
After you open the xcode project, you could automate the build and deploy process using Apple Automator or something similar. Not sure if you can do this from command line, though.

Just the same: Gitlab CI + fastlane in a mac mini

Yes, Fastlane does. I would like some way easier but seems like we don’t have it yet.

Nice, that should be very similar to my setup with Jenkins. Thank you :slight_smile:

We still do manual upload for the first submission. Not sure if there is any way around this to get which project to upload to.

We also have to do some manual final steps (a few clicks in app store connect) to submit the uploaded apps by fastlane either in test flight or as itunes build. Have you found any way to automate these last few steps?

Yes, except the first submission but I never tried maybe it’s also possible.

I’ll probably work again on this over the next weeks and I can post updates and how I do here then maybe you can improve your process.

Thanks for your feedback :wink:

I have successfully setup CI using SemaphoreCI, following this tut https://medium.com/@sbr464/how-to-continuous-integration-for-meteor-galaxy-using-semaphore-ci-8bcd73b6bc9d

@rjdavid @filipenevola Do you have any guide how to setup fastlane with meteor + any CI?

1 Like

@afrokick I don’t have a proper guide but I can share some files/links here how I do with Jenkins CI:

  • Jenkins Job DSL definition: this groovy script can be installed in Jenkins using this plugin.
  • Build script: Build the .ipa and .apk. Inform your credentials in the variables at the top.
  • Publish Android script: Sends to Google Play. The first time you need to upload the APK manually, later everything can be done by this script.
  • Publish iOS script: Sends to App Store. Inform your credentials in the variables at the top.

I know now Google is not using APKs anymore, probably @renanccastro or @matheusccastro could update our example updating this part.

I also added these links / steps here so we can submit PRs against it.

1 Like

For CI I use Jenkins also and have integrated that with Jira for my corporate clients teams, I built the entire testing server on one box with Android, iOS, mac and various windows installations using VMs and docker. I also used phantom headless years ago which is now gone but it’s replacement Karma is much better and works with Mocha.

In general with CI I believe test based development always wins and to clearly separate API and front-end, aiming to only have a few long tests for frontend that cover many checks and then tests for every single API method that barrage it with bad data and try to cause injections and purposefully try to break it. For front-end tests you need to cover all the obvious, is the logo still there, is login still there etc and it’s best to just group all that into one big test suite because it’s very resource intensive to fire up a instance for each time that’s why I put it all on the same server with VMs so it can just run in the rack and do each instance simultaneously, complete CI pass of hundreds of unit tests got down to under a hour this way. Out of all the Android emulator is specifically very slow to test but using a real device was not viable a we needed a server only solution. If you have devices you can use, it may work faster then emulator.

https://karma-runner.github.io/latest/index.html

1 Like