Serial-group doesn't work for tags

Issue: serial-group Lock Not Releasing for Tag-Triggered Pipelines

Description

I have encountered an issue with the built-in serial-group feature in CircleCI when pipelines are triggered by tag pushes. While commit-triggered pipelines work as expected (with both serial-start and serial-end jobs present), tag-triggered pipelines remain stuck at serial-start without generating the serial-end job. This results in a ghost lock that prevents subsequent tag pipelines from running.

Reproduction Steps

  1. Create a Minimal Configuration

    Add a .circleci/config.yml file to your repository with the following content:

    version: 2.1
    
    executors:
      default:
        docker:
          - image: cimg/base:stable
    
    jobs:
      test_job:
        executor: default
        steps:
          - checkout
          - run:
              name: Run Tests
              command: |
                echo "Running tests..."
                # Insert your minimal test commands here
          - run:
              name: Cleanup
              command: echo "Cleanup complete."
              when: always
    
    workflows:
      test_serial_group:
        jobs:
          - test_job:
              name: Run Tests
              serial-group: test-serial-group
              filters:
                tags:
                  only: /^test-\d{12}$/
                branches:
                  ignore: /.*/
    
  2. Push Your ConfigurationCommit and push this configuration to your repository. Make sure your project is integrated with CircleCI.

  3. Trigger a Pipeline with a TagCreate and push a Git tag that matches the pattern test-YYYYMMDDHHmm. For example:

git tag test-202503171230
git push origin test-202503171230

git tag test-202503171231
git push origin test-202503171231
  1. Observe the Pipeline Behavior
  • In the CircleCI dashboard, you will see that the pipeline is triggered by the tag.
  • Expected Behavior: A serial-start job should run followed by a serial-end job that releases the lock.
  • Observed Behavior: The pipeline remains stuck at serial-start without generating the serial-end job, preventing any subsequent tag-triggered pipelines from running.
  1. Compare with Commit-Triggered PipelinesPush a commit (or use a branch that does not match the tag filter) to trigger the pipeline. The commit-triggered pipeline should correctly show both serial-start and serial-end jobs and complete as expected.

Expected Behavior

  • Tag-Triggered Pipelines: Both serial-start and serial-end jobs should be present, allowing the lock to be released automatically after the job completes.
  • Commit-Triggered Pipelines: Should work as expected with both jobs properly managed.

Impact

This issue is specific to tag-triggered pipelines. The absence of the serial-end job causes a persistent lock (ghost lock) that blocks subsequent tag pipelines from executing, potentially affecting deployment and testing workflows that rely on tag-based triggers.

Request for Assistance

Has anyone else encountered similar issues with tag-triggered pipelines using serial-group? I would appreciate any insights or workarounds. If this is a known bug, please let me know if there’s a planned fix.


Additional Environment Details:

  • Platform: CircleCI Cloud
  • Docker Executor: Using cimg/base:stable
  • Workflow Configuration: Utilizes serial-group: test-serial-group
  • Trigger: Only for tags matching /^test-\d{12}$/

Thank you for your help!

Thank you for bringing this to our attention. Our team has since addressed this issue, and it should now be resolved. Please let us know if you encounter any further issues—we’re happy to help!

1 Like

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.