If you are using CircleCI for tag-based deployments, you may want to prevent more than 1 deployment happening at once. This code snippet allows you to check within a pipeline whether another pipeline triggered by a Git tag using the same workflow is currently running.
Because the list of pipelines does not show you which workflow they are using, we are assuming that there is only a single tag-based workflow (if you have multiple you will need to tweak accordingly)
Then it checks all recent pipelines to see whether they are in running or on-hold status (you may need to add additional statuses) and exits non-zero if there are any others excluding the current pipeline (the 1 running the check)
- image: cimg/base:stable
description: What repository is the application stored in?
PROJECT: github/magickatt/<< parameters.repository >>
name: Check if pipeline is already running for this workflow
You can then include this in
.circleci/config.yml as a Job, or even as a Command. If your organisation is using Private Orbs you can move the Job there so that it is more re-useable.