Conditionally Skip Tags

I have a somewhat convoluted build condition that I just can’t figure out a good way to handle.

I have a project that contains several smaller projects within. I currently trigger a deployment on tags, and I only allow tags that match a pattern, which I use to determine which smaller project to actually deploy.

    branches:
      only:
      - master
      - /[a-z0-9\-]*-v\d+\.\d+\.\d+$/

This works, but the problem I’m having is that at times I want to deploy everything at once and still have the individual project tags created. My preferred way to do this is to deploy all at once from a single build and push the tags during the build and not have to have each individual tag create its own build. What I can’t figure out is how I can do this and not have the individual builds start when I push the tags.