Tower Help & Support

Choosing a Workflow

When setting up workflows in Tower, you have several options to match your team's development process. The right choice depends on your project's complexity, team size, and release requirements.

Understanding Your Options

Tower provides two main categories of workflows: custom workflows that you can fully configure within Tower, and external workflows that integrate with established command-line tools.

Custom Workflows

Custom workflows offer the most flexibility and are recommended for most teams. When creating a custom workflow, you can choose from three starting points:

Auto-detected configuration works by analyzing your repository's existing branches. Tower examines your current branch structure and suggests a workflow configuration that matches your existing patterns. This approach is ideal when you already have an established branching strategy that you want to formalize.

Template-based workflows provide proven starting points that you can customize. Tower includes templates for GitHub Flow, GitLab Flow, and git-flow. Each template comes with predefined branch types and merge strategies that you can modify to suit your needs. This approach combines the benefits of established patterns with the flexibility to adapt them.

Building from scratch gives you complete control over every aspect of your workflow. You define your own branch types, establish merge strategies, and create parent-child relationships between branches. This option works best for teams with unique requirements that don't fit standard patterns.

The power of custom workflows lies in their flexibility. Like git-flow, they provide structure and automation, but without the constraints. You can skip steps that don't apply to your process, define branch types that match your terminology, and establish dependencies that reflect your actual development flow.

External Workflows

External workflows integrate Tower's visual interface with established command-line tools. These workflows require their respective CLI tools to be installed on your system.

Graphite workflow enables stack-based development where branches can depend on other branches. This approach excels in environments where features build upon each other or where code review happens on smaller, focused changes. Tower provides the visual interface while Graphite CLI handles the branch management logic.

git-flow CLI workflows implement the traditional git-flow branching model through the original git-flow command-line tool. This option works well for teams already using git-flow CLI who want to add Tower's visual capabilities without changing their existing process.

Making the Right Choice

Your workflow choice should align with how your team actually develops software. Consider these key factors when deciding:

Team Structure and Experience

Small teams or those new to structured workflows often benefit from GitHub Flow's simplicity. This template provides a single main branch with short-lived feature branches, making it easy to understand and implement. The straightforward approach reduces complexity while still providing structure.

Teams with more Git experience might prefer git-flow or custom workflows that can handle more complex scenarios. These options provide greater control over branch management and release processes, but require team members who understand the additional complexity.

If your team uses modern development practices like continuous integration and stack-based development, Graphite might align well with your existing processes. The dependent branch model works particularly well with frequent, small changes and thorough code review.

Release and Deployment Patterns

Your release schedule significantly impacts workflow choice. Teams practicing continuous deployment typically work best with GitHub Flow, where features can be deployed directly from feature branches after review.

Formal release cycles benefit from git-flow or GitLab Flow templates. These workflows provide dedicated release branches and structured processes for preparing and deploying releases. The additional branching complexity pays off in environments where releases require coordination and testing.

GitLab Flow works particularly well when you have multiple environments (staging, production) that code must pass through. The environment-based branching matches the deployment pipeline.

Project Complexity

Simple projects with straightforward requirements often work best with GitHub Flow. The reduced branching overhead lets teams focus on development rather than branch management.

Complex projects, especially those with multiple environments or parallel development streams, benefit from git-flow or custom workflows. These approaches provide the structure needed to manage complexity without confusion.

Large teams working on the same codebase need workflows that prevent conflicts and provide clear ownership. Custom workflows excel here because they can be tailored to your specific team structure and responsibilities.

Existing Tool Integration

If your team already uses Graphite CLI or git-flow CLI, choosing the corresponding workflow in Tower provides immediate benefits without requiring process changes. You gain Tower's visual interface while keeping your established command-line tools.

Teams wanting to leverage Tower's native workflow features should choose custom workflows. These provide the deepest integration with Tower's branch management, merge assistance, and dependency tracking.

Getting Started

To set up your chosen workflow, click the Workflows button in Tower's left sidebar. Tower presents the available workflow options and guides you through the selection process.

The configuration experience differs based on your workflow choice. When you select a custom workflow, Tower opens its comprehensive workflow configuration dialog where you can define branch types, set merge strategies, and establish dependencies between branches. This dialog provides complete control over every aspect of your workflow behavior.

External workflows streamline the setup process by providing their own specialized configuration dialogs. These dialogs focus on the specific settings and options relevant to their particular workflow system, ensuring you can quickly configure the external tool's requirements without navigating unnecessary options.

Quick Setup If you're unsure which workflow to choose, start with auto-detection. Tower analyzes your existing branches and suggests a configuration that matches your current patterns, making it easy to formalize your existing process.

Adapting Over Time

Workflow choice isn't permanent. As your team and project evolve, you can disable your current workflow and select a different approach. Custom workflows can be modified at any time to accommodate changing requirements.

External workflows can be switched to custom workflows if you want more control or need features that the external tool doesn't provide. This flexibility ensures your workflow can grow with your development process rather than constraining it.