Windmill Labs
Windmill

Deployment & versioning

Deploy in one click. Version with Git.

Every script, flow, and app is versioned on every deployment. Connect a Git repository for full source control and CI/CD.

What is versioning in Windmill

Windmill keeps an immutable history of every script, flow, and app deployment. Compare any two versions side by side, roll back in one click, or sync everything to Git.

Deploy in one click

Scripts, flows, and apps can be written, tested, and deployed from the browser. Each deployment creates a new immutable version. All three support draft mode to iterate without affecting production.

Read the docs

Deployment history

Every deployment is tracked with a message, a unique hash (similar to a git commit SHA), and a side-by-side diff viewer. Any past version can be forked or restored. Hash-based webhook URLs let you pin integrations to a specific version.

Read the docs

Git sync

When connected to a Git repository, every deployment is automatically committed. Changes can also be pulled from Git, making the repository the single source of truth. Works with GitHub, GitLab, Bitbucket, and Azure DevOps. See the sync example repository for a complete setup.

Read the docs
Windmill
Windmill
GitHub

Workspace forks

Workspace forks (Enterprise) are independent copies of a workspace for parallel development. Scripts, flows, apps, resources, variables, and schedules are all included. Teams can work on features or experiments in a fork without affecting the parent workspace. Each fork can track its own Git branch, and changes from the parent workspace can be pulled into the fork to stay up to date. This enables GitOps-style workflows where developers fork the dev workspace, submit changes via pull request, and promote through staging to production using Git sync.

Read the docs

Merge UI

Forks can be merged back to their parent workspace from the UI with conflict detection. For more granular resolution, a Git-based merge workflow is also available.

Read the docs

Deploy from the CLI

The Windmill CLI syncs a workspace to a local folder. Push changes from your terminal or deploy from the UI. When Git sync is enabled, changes are automatically committed to your Git repository. See the local development page for the full local workflow.

Read the docs

From local to remote

Change locally
Git sync on
git commit & push
GitHub Action: wmill sync pushauto
No git sync
wmill sync push
Deployed on Windmillauto

From remote to local

Deploy from the UI
Git sync on
Commit to Gitauto
git pull
No git sync
wmill sync pull
Files updated locallyauto

Frequently asked questions

Build your internal platform on Windmill

Scripts, flows, apps, and infrastructure in one place.