I have a workflow that is scheduled by trigger (every 15 min).
In most cases, the execution time takes about 2 minutes.
But in rare cases, the execution time can be more than 15 min (it is the correct behavior). And this overlapping is not good, there can be conflicts.
How can I skip the workflow if the previous one is still running?
Circleci does not have such a feature within its core scripting, but there are a number of ORBs published by third parties that try to provide some form of lock, queuing API using external systems.
The one that was provided as an answer by a Circleci staff member is this one
I’ve not tried any of these solutions, for a simple requirement on one of the projects I used an external key-value store and a few curl based rest API calls that allowed me to set, check and delete a value that was available across workflows and jobs.