Workflows for modularised Android projects

android
#1

Hey there :wave:

Our project is slowly becoming more modularised and we’re wanting to update our bitrise workflows to reflect this. For example, if we have modules A / B / C and we make a change in module C, we don’t want to run our unit/UI tests for modules A and B, only for module C. And if module B has also changed, we also want to run everything for that module too.

I tried setting this up in a single workflow, but I read that you can only use Firebase test suite with a single ‘build’ - so in the example above, we couldn’t run our UI tests for both module B and module C as separate workflow steps - is that correct?

I started playing with the ‘Bitrise Start Build’ and ‘Bitrise Wait for Build’ steps, which would theoretically work but I don’t think this is very scalable. For example, we already have around 12 modules - this means that we are going to have multiple concurrent builds running for every module that has changed (we only have 3 concurrent builds at the moment) - this will cause things to get blocked and not really result in much time saved from our builds. It also means we have to add a new workflow ‘wait for build’ every time we add a new module to our project. This way is doable, but I have these uncertainties!

I wanted to ask if there were any better solutions here that I may not have thought about yet, or if anyone has done anything similar before? :slight_smile:

Thanks!

0 Likes

#2

That’s true at the time of writing. Only one VDT step per workflow works: Error 403 on subsequent Android VDT steps

Some possible workarounds:

  • calculate what modules have changed and pass that information as parameters to builds triggered using Bitrise API
  • have one module containing all the UI tests and calculate input parameters deciding which tests will run
0 Likes