Hi,
I have one Parent app where all the development takes place and after I make a change I configure a branded implementation of the Parent app and deploy it to App store, these Child apps are not always under the same
Team ID, see below:
Parent-App(Team ID 1)
Child-App 1 (Team ID 1) -> different assets and name on other things that identify the app
Child-App 2 (Team ID 2) -> different assets and name on other things that identify the app
Child-App 3 (Team ID 3) -> different assets and name on other things that identify the app
Child-App 4 (Team ID 1) -> different assets and name on other things that identify the app
…
When I modify the Parent-App I want all the Childern-Apps to get the new changes, I have created a workflow for each Child-App which I trigger manually, in the bitrise dashboard, it is at least much faster then doing it locally, but it seems like I can do better. First thing that came to my mind was to create one big workflow with all the Child-App workflows, do you have any better suggestions on how I should organize my workflow?
You can do that, or even better, use Workflow Chaining!
With that you can also define a single “common” workflow, e.g. which builds an app based on a Project Path and Scheme parameter, and then define workflows which just define these environment variables and then run the “common” workflow.
Something like:
---
format_version: 1.1.0
default_step_lib_source: https://github.com/bitrise-io/bitrise-steplib.git
workflows:
common:
steps:
- activate-ssh-key:
- git-clone:
- ...
- xcode-archive:
- ...
build-app1:
envs:
- BITRISE_SCHEME: Scheme1
- BITRISE_PROJECT_PATH: ./path/to/app1
after_run:
- common
build-app2:
envs:
- BITRISE_SCHEME: Scheme2
- BITRISE_PROJECT_PATH: ./path/to/app2
after_run:
- common
Or if you want to chain multiple builds in a single build:
---
format_version: 1.1.0
default_step_lib_source: https://github.com/bitrise-io/bitrise-steplib.git
workflows:
_prepare:
steps:
- activate-ssh-key:
- git-clone:
_build-common:
- ...
- xcode-archive:
- ...
build-app1:
envs:
- BITRISE_SCHEME: Scheme1
- BITRISE_PROJECT_PATH: ./path/to/app1
after_run:
- _build-common
build-app2:
envs:
- BITRISE_SCHEME: Scheme2
- BITRISE_PROJECT_PATH: ./path/to/app2
after_run:
- _build-common
build-all:
before_run:
- _prepare
after_run:
- build-app1
- build-app2
With this config you can build the build-all
workflow, which will prepare (git clone etc.) once, and then build all the app variants.