Workflows for modularised Android projects

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!

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

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.