For example, if an issue moves from Dev to QA, but during QA documentation, billing and training happen concurrently, and I don't want the issue to move to prod pending until each of the above is complete.
No. The whole point of a status is that you can point at an issue and say "The issue is in this status"
For Billing and Training, there are a couple of options - the simple one is to have fields that cover it. But you could also create sub-tasks for Billing and Training, and they can follow their own independent lifecycle.
I'd also block "prod pending" until all sub-tasks are complete - there's a "sub tasks outstanding" validator in JIRA for this. I'd look for the "automatic create subtasks" addons for creating the billing and training at the right point in the main workflow
The only way to keep an issue from moving is to have a condition. You can have fields named Billing and Training with defaults of No and check to see they are Yes before allowing the issue to move. How you set the values is up to you. They can be on the edit screen or if they always happen when an issue is in QA you can have a transition from QA to QA that can only be executed by a Billing or Training person and set the value to Yes during the transition with the understanding they only execute the transition when it is done. Until they are both set to yes the other transition to Prod Pending won't be visible. Then only put the fields on the view screen. I've used this technique several times. You may want to create a special notification event to fire when it goes to QA to notify the QA, Billing, and Training folks there is an issue needing their attention.
It wasn't clear from your description if the Billing and Training aspects were represented by other issues or not. If so, are they subtasks or linked or otherwise identified by the issue you are trying to block? Or are you trying to ensure that a group of issues all progress one step at a time (issue not being more than one step away from the other).
Many of these cases could be covered provided you can write a suitable JQL that would produce issues only when a block is needed. Use the Conditioned validator configured with the JQL query and a condition that requires that %jql_result_count% is 0. See Substitution variables.
Hey Community mates! Claire here from the Software Product Marketing team. We all know software development changes rapidly, and it's often tough to keep up. But from our research, we've found the h...
Connect with like-minded Atlassian users at free events near you!Find a group
Connect with like-minded Atlassian users at free events near you!
Unfortunately there are no AUG chapters near you at the moment.Start an AUG
You're one step closer to meeting fellow Atlassian users at your local meet up. Learn more about AUGs