A GitHub Action that serializes workflow runs to prevent concurrent deployments and manage CI/CD pipelines.
Turnstyle is a GitHub Action that serializes workflow runs to prevent concurrent executions, particularly useful for continuous deployment pipelines. It ensures that only one deployment or critical workflow runs at a time, avoiding conflicts in shared repositories. The action provides configurable timeouts and waiting mechanisms to manage workflow coordination effectively.
Teams using GitHub Actions for CI/CD, especially those with shared repositories where concurrent deployments could cause issues. It's ideal for developers and DevOps engineers managing deployment pipelines.
Turnstyle offers a lightweight, native GitHub Action solution for workflow serialization without requiring external tools or complex setups. Its flexibility in timeout configuration and targeted waiting makes it a practical choice for teams needing reliable deployment coordination.
🎟️A GitHub Action for serializing workflow runs
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Prevents concurrent deployments by ensuring only one workflow runs at a time, directly addressing conflicts in shared repositories as explained in the 'why bother' section.
Offers continue-after-seconds and abort-after-seconds inputs to manage wait times, allowing workflows to bail or proceed after delays, demonstrated in the usage examples.
Enables waiting for specific jobs and steps using job-to-wait-for and step-to-wait-for inputs, providing precise control over workflow dependencies as detailed in the configuration section.
Supports same-branch-only input to limit coordination to runs on the same branch, useful for multi-branch development workflows with its default true setting.
As noted in the 'cost of coordination' section, waiting in private repositories adds to GitHub Actions usage costs, which can be significant for prolonged waits.
It's specifically designed for GitHub Actions and cannot be used with other CI/CD platforms, limiting flexibility in mixed or migrating environments.
Without proper timeout settings, workflows might wait indefinitely if previous runs fail, as the default is unbound waiting, potentially causing workflow hangs.