You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: blog/2023-09-04-kahoot-testimonial/index.md
+1-1Lines changed: 1 addition & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -34,7 +34,7 @@ I began working with Windmill at the start of the year. It currently supports in
34
34
35
35
## Choosing Windmill for Flexibility
36
36
37
-
Our team faced some challenges such as constrains on the tech stack. Some tools, such as [Stripe Billing](https://stripe.com/en-fr/billing), prove most effective when your business rules align precisely with their predefined criteria. However, we encountered challenges, including a maximum billing period of one year and the absence of a straightforward method for implementing Consumer Price Index increases. While it's possible to find workarounds, this essentially involves accommodating the limitations and not truly enjoying a comfortable solution. On the other hand, tools like <ahref="https://zapier.com/"rel="nofollow">Zapier</a> offer simplicity in their initial use, yet they are more tailored for marketing teams and can become frustrating to iterate upon and build large scale workflows. Easy things are hard (line items - I'm looking at you), and you do not have the code in [git / version control](/docs/advanced/deploy_gh_gl) systems.
37
+
Our team faced some challenges such as constraints on the tech stack. Some tools, such as [Stripe Billing](https://stripe.com/en-fr/billing), prove most effective when your business rules align precisely with their predefined criteria. However, we encountered challenges, including a maximum billing period of one year and the absence of a straightforward method for implementing Consumer Price Index increases. While it's possible to find workarounds, this essentially involves accommodating the limitations and not truly enjoying a comfortable solution. On the other hand, tools like <ahref="https://zapier.com/"rel="nofollow">Zapier</a> offer simplicity in their initial use, yet they are more tailored for marketing teams and can become frustrating to iterate upon and build large scale workflows. Easy things are hard (line items - I'm looking at you), and you do not have the code in [git / version control](/docs/advanced/version_control) systems.
38
38
39
39
Since we had our own use cases, we needed a flexible solution to create our internal tools.
You can use Windmill CLI to sync workspace to a git repository. Either with raw syncing using `wmill sync pull --raw` & `wmill sync push --raw` or with stateful syncing using `wmill sync pull` & `wmill sync push`.
10
+
11
+
For more details, see:
12
+
13
+
<divclass="grid grid-cols-2 gap-6 mb-4">
14
+
<DocCard
15
+
title="Command-Line Interface - Sync"
16
+
description="Synchronize folders & git repositories to a Windmill instance"
17
+
href="/docs/advanced/cli/sync"
18
+
/>
19
+
</div>
20
+
21
+
For options to do Version Control on Windmill, see:
22
+
23
+
<divclass="grid grid-cols-2 gap-6 mb-4">
24
+
<DocCard
25
+
title="Version Control in Windmill"
26
+
description="Sync your workspace to a git repository."
27
+
href="/docs/advanced/version_control"
28
+
/>
29
+
</div>
30
+
31
+
For options to do Deploy to Prod on Windmill, see:
32
+
33
+
<divclass="grid grid-cols-2 gap-6 mb-4">
34
+
<DocCard
35
+
title="Deploy to prod"
36
+
description="Deploy to prod using a staging workspace"
Copy file name to clipboardExpand all lines: docs/advanced/11_git_sync/index.mdx
+7-1Lines changed: 7 additions & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -2,7 +2,13 @@ import DocCard from '@site/src/components/DocCard';
2
2
3
3
# Sync Workspace to Remote Git Repository
4
4
5
-
From the workspace settings, you can set a [git_repository](../../integrations/git_repository.mdx) resource on which the workspace will automatically commit and push scripts, flows and apps to the repository on each deploy.
5
+
From the workspace settings, you can set a [git_repository](../../integrations/git_repository.mdx) resource on which the workspace will automatically commit and push scripts, flows and apps to the repository on each [deploy](../../core_concepts/0_draft_and_deploy/index.mdx).
6
+
7
+
:::tip Version Control
8
+
9
+
For all details on Version Control in Windmill, see [Version Control](../../advanced/13_version_control/index.mdx).
Deployments in Windmill are commonly done from the same workspace using the [Draft and Deploy](../../core_concepts/0_draft_and_deploy/index.mdx) buttons.
6
+
7
+
For finer control, you might want to deploy to a prod workspace from a staging area. Here are the options.
8
+
9
+
## Deploy to Staging/Prod Web UI
10
+
11
+
From a workspace in Windmill, you can deploy a script/flow/resource/variable and all its dependencies to another workspace. This feature implies having at least 2 workspaces.
Deploy to Staging/Prod Web UI is [Cloud and Self-Hosted Enterprise Edition](/pricing) only.
23
+
24
+
More details at:
25
+
26
+
<divclass="grid grid-cols-2 gap-6 mb-4">
27
+
<DocCard
28
+
title="Draft and Deploy"
29
+
description="Develop and cooperate in a structured way."
30
+
href="/docs/core_concepts/draft_and_deploy"
31
+
/>
32
+
</div>
33
+
34
+
## Deploy to Prod using a Git Workflow
35
+
36
+
Windmill integration with Git repositories makes it possible to adopt a robust development process for your Windmill scripts, flows and apps.
37
+
38
+
The process is as follows:
39
+
- Users iterate and make their changes in a "staging" Windmill workspace.
40
+
- Every time a Windmill App, Flow or Script is deployed to that workspace (via Windmill's UI), Windmill automatically commits it to this repo and creates one branch per app/flow/script.
41
+
- On every commit from Windmill, PRs are automatically created via a GitHub action. Approved GitHub users can review and merge those PRs.
42
+
- Every time a PR is merged, another GitHub action automatically deploys the change to a "production" Windmill workspace.
43
+
44
+
This gives the flexibility to fully test new Windmill scripts, flows and apps, while having them version-controlled and deployed in an automated way to the production environment.
45
+
46
+
Deploy to Prod using a Git Workflow is [Cloud and Self-Hosted Enterprise Edition](/pricing) only.
47
+
48
+
More details at:
49
+
50
+
<divclass="grid grid-cols-2 gap-6 mb-4">
51
+
<DocCard
52
+
title="Deploy to Prod using a Git Workflow"
53
+
description="Windmill integration with Git repositories makes it possible to adopt a robust development process for your Windmill scripts, flows and apps."
54
+
href="/docs/advanced/deploy_gh_gl"
55
+
/>
56
+
</div>
57
+
58
+
## Using Windmill CLI in GitHub actions
59
+
60
+
Finally, you can define your own GitHub actions to pull Windmill workspace regularly from GitHub using [Windmill CLI](../3_cli/index.mdx). To automatically deploy a PR to the Windmill workspace, the [push-on-merge.yaml](https://github.com/windmill-labs/windmill-sync-example/blob/main/.github/workflows/push-on-merge.yaml) can be used.
61
+
62
+
And another GitHub action can be created to regularly pull Windmill workspace to the GitHub repo using Windmill CLI. This action can be run on a schedule to keep the repo and the workspace in sync.
Manage changes to scripts workflows, apps and resources using commits & push on remote repositories.
6
+
7
+
## Sync Workspace to Remote Git Repository
8
+
9
+
From the workspace settings, you can set a [git_repository](../../integrations/git_repository.mdx) resource on which the workspace will automatically commit and push scripts, flows and apps to the repository on each [deploy](../../core_concepts/0_draft_and_deploy/index.mdx).
Sync Workspace to Remote Git Repository is [Cloud and Self-Hosted Enterprise Edition](/pricing) only.
24
+
25
+
More details at:
26
+
27
+
<divclass="grid grid-cols-2 gap-6 mb-4">
28
+
<DocCard
29
+
title="Sync Workspace to Remote Git Repository"
30
+
description="Connect the Windmill workspace to a Git repository to automatically commit and push scripts, flows and apps to the repository on each deploy."
31
+
href="/docs/advanced/git_sync"
32
+
/>
33
+
</div>
34
+
35
+
## CLI Sync
36
+
37
+
You can use Windmill CLI to sync workspace to a git repository.
38
+
39
+
More details at:
40
+
41
+
<divclass="grid grid-cols-2 gap-6 mb-4">
42
+
<DocCard
43
+
title="Command-Line Interface - Sync"
44
+
description="Synchronize folders & git repositories to a Windmill instance"
Windmill integration with Git repositories makes it possible to adopt a robust development process for you Windmill scripts, flows and apps.
3
+
Windmill integration with Git repositories makes it possible to adopt a robust development process for your Windmill scripts, flows and apps.
4
4
5
-
The process is as follow:
6
-
- Users iterates and make their changes in a "staging" Windmill workspace
5
+
:::tip Deploy to prod
6
+
7
+
For all details on Deployments to Prods, see [Deploy to Prod](../../advanced/12_deploy_to_prod/index.mdx).
8
+
9
+
:::
10
+
11
+
The process is as follows:
12
+
- Users iterate and make their changes in a "staging" Windmill workspace.
7
13
- Every time a Windmill App, Flow or Script is deployed to that workspace (via Windmill's UI), Windmill automatically commits it to this repo and creates one branch per app/flow/script.
8
-
- On every commit from Windmill, PRs are automatically created via a Github action. Approved Github users can review and merge those PRs.
9
-
- Every time a PR is merged, another Github action automatically deploys the change to a "production" Windmill workspace
14
+
- On every commit from Windmill, PRs are automatically created via a GitHub action. Approved GitHub users can review and merge those PRs.
15
+
- Every time a PR is merged, another GitHub action automatically deploys the change to a "production" Windmill workspace.
10
16
11
-
This gives the flexibility to fully test new Windmill scripts, flows and apps, while having them versioncontrolled and deployed in an automated way to the production environment.
17
+
This gives the flexibility to fully test new Windmill scripts, flows and apps, while having them version-controlled and deployed in an automated way to the production environment.
12
18
13
19
:::info
14
20
15
-
Windmill workspace sync to a Git repository is an Enterprise Editiononly feature.
21
+
Windmill workspace sync to a Git repository is a [Cloud and Self-Hosted Enterprise Edition](/pricing)-only feature.
16
22
17
23
:::
18
24
@@ -24,39 +30,25 @@ Check out the [windmill-sync-example repository](https://github.com/windmill-lab
24
30
25
31
## Setup
26
32
27
-
Note: this is the detailed setup steps for a Github repository. It will need to ba adapted for GitLab.
33
+
Note: this is the detailed setup steps for a GitHub repository. It will need to be adapted for GitLab.
28
34
29
-
#### Github repository setup
35
+
###GitHub repository setup
30
36
31
-
First the Github repo needs to be setup and Windmill needs to be able to commit to it.
37
+
First the GitHub repo needs to be set up and Windmill needs to be able to commit to it.
32
38
33
-
1. Create a Github repository
34
-
1. Generate a [Github token with write permission](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens#creating-a-fine-grained-personal-access-token) to this repository. This is necessary for Windmill to push commits to the repo every time a change is made to the staging workspace.
35
-
1. In the repository settings > Actions > General, tick the [Allow GitHub Actions to create and approve pull requests](https://docs.github.com/en/enterprise-server@3.10/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-github-actions-settings-for-a-repository#preventing-github-actions-from-creating-or-approving-pull-requests). This is necessary for the Github action automatically creating PRs when Windmill commits a change
36
-
1. From Windmill, create a token under User settings > Token and [save it as a secret](https://docs.github.com/en/actions/security-guides/using-secrets-in-github-actions#creating-secrets-for-a-repository) named `WMILL_TOKEN` in the repo settings > "Secret and Variable" > "Actions". This is necessary for Windmill to push to the production workspace
39
+
1. Create a GitHub repository.
40
+
1. Generate a [GitHub token with write permission](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens#creating-a-fine-grained-personal-access-token) to this repository. This is n@ecessary for Windmill to push commits to the repo every time a change is made to the staging workspace.
41
+
1. In the repository settings > Actions > General, tick the [Allow GitHub Actions to create and approve pull requests](https://docs.github.com/en/enterprise-server@3.10/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-github-actions-settings-for-a-repository#preventing-github-actions-from-creating-or-approving-pull-requests). This is necessary for the GitHub action automatically creating PRs when Windmill commits a change.
42
+
1. From Windmill, create a token under User settings > Token and [save it as a secret](https://docs.github.com/en/actions/security-guides/using-secrets-in-github-actions#creating-secrets-for-a-repository) named `WMILL_TOKEN` in the repo settings > "Secret and Variable" > "Actions". This is necessary for Windmill to push to the production workspace.
37
43
38
-
####Windmill setup
44
+
### Windmill setup
39
45
40
-
1. In Windmill, create a `git_repository`resource pointing to the Github repository and containing the token generated previously. You URL should be `https://[USERNAME]:[TOKEN]@github.com/[ORG|USER]/[REPO_NAME].git`. Note that you have the possibility to input a custom branch name and a subfolder in this resource. Given that we are going to request Windmill to create one branch per script/flow/app, setting a custom branch will have no effect. However, if you wish to persist the windmill workspace in a subfolder of your repository, you can set it here.
41
-
1. In Windmill workspace settings > Git sync tab, pick the `git_repository` resource and toggle ON "Create one branch per per deployed script/flow/app"
46
+
1. In Windmill, create a [git_repository](https://hub.windmill.dev/resource_types/135/git_repository)[resource](../../core_concepts/3_resources_and_types/index.mdx) pointing to the GitHub repository and containing the token generated previously. You URL should be `https://[USERNAME]:[TOKEN]@github.com/[ORG|USER]/[REPO_NAME].git`. Note that you have the possibility to input a custom branch name and a subfolder in this resource. Given that we are going to request Windmill to create one branch per script/flow/app, setting a custom branch will have no effect. However, if you wish to persist the windmill workspace in a subfolder of your repository, you can set it here.
47
+
2. In Windmill workspace settings > Git sync tab, pick the `git_repository` resource and toggle On "Create one branch per deployed script/flow/app"
42
48
43
-
#### Github actions setup
49
+
###GitHub actions setup
44
50
45
51
Two actions are needed.
46
52
47
53
1. The first one to automatically create a PR when Windmill commits a change after a user deployed a script/flow/app in the staging workspace. The workflow file is available in [the example repo](https://github.com/windmill-labs/windmill-sync-example/blob/main/.github/workflows/open-pr-on-commit.yaml). All branches created by Windmill will have a `wm_deploy/` prefix, which is handy to trigger this action only when a branch matching this pattern is created.
48
-
1. The second one to automatically push the content of the repo to the Windmill production workspace when a PR is merged. The workflow file is available in [the example repo](https://github.com/windmill-labs/windmill-sync-example/blob/main/.github/workflows/push-on-merge.yaml). This action uses the [Github CLI](https://cli.github.com/) which is available by default on Github action workers.
49
-
50
-
## Alternatives
51
-
52
-
If you don't have and Enterprise Edition license, alternatives exists to achieve similar workflows.
53
-
54
-
#### Using Windmill's embedded promotion feature
55
-
56
-
Windmill provides an easy way to "promote" scripts, flow and apps from one workspace to another. From the workspace settings, you can defined a workspace to be the "production" version of your current workspace. When this is set, any script flow or app can be promoted to the production workspace by clicking the ... button at the right of the script / flow / app in the home menu, and then "Deploy to Staging/Prod".
57
-
58
-
#### Using Windmill CLI in Github actions
59
-
60
-
Finally, you can define your own github actions to pull Windmill workspace regularly from Github using Windmill CLI. To automatically deploy a PR to the Windmill workspace, the (push-on-merge.yaml)[https://github.com/windmill-labs/windmill-sync-example/blob/main/.github/workflows/push-on-merge.yaml] mentioned above can be used.
61
-
62
-
And another Github action can be created to regularly pull Windmill workspace to the Github repo using Windmill CLI. This action can be run on a schedule to keep the repo and the workspace in sync.
54
+
1. The second one to automatically push the content of the repo to the Windmill production workspace when a PR is merged. The workflow file is available in [the example repo](https://github.com/windmill-labs/windmill-sync-example/blob/main/.github/workflows/push-on-merge.yaml). This action uses the [GitHub CLI](https://cli.github.com/) which is available by default on GitHub action workers.
Copy file name to clipboardExpand all lines: docs/core_concepts/0_draft_and_deploy/index.mdx
+2-2Lines changed: 2 additions & 2 deletions
Original file line number
Diff line number
Diff line change
@@ -18,9 +18,9 @@ Once deployed, scripts, flows and apps will be visible, editable and/or runnable
18
18
19
19
<br />
20
20
21
-
:::tip Deploy to Staging or Prod
21
+
:::tip Deploy to prod
22
22
23
-
For achieving complete isolation between staging and production environments, consider using [Deploy to Staging or Prod](../12_staging_prod/index.md) feature, which facilitates the deployment of scripts, flows, variables, and resources to separate workspaces such as staging or production.
23
+
For all details on Deployments to Prods, see [Deploy to Prod](../../advanced/12_deploy_to_prod/index.mdx).
Copy file name to clipboardExpand all lines: docs/core_concepts/12_staging_prod/index.md
+6Lines changed: 6 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -2,6 +2,12 @@
2
2
3
3
From a workspace in Windmill, you can deploy a script/flow/resource/variable and all its dependencies to another workspace. This is a natural way of implementing staging/prod. This feature is available for [Enterprise Edition](../../misc/7_plans_details/index.mdx) only.
4
4
5
+
:::tip Deploy to prod
6
+
7
+
For all details on Deployments to Prods, see [Deploy to Prod](../../advanced/12_deploy_to_prod/index.mdx).
0 commit comments