# kn-plugin-workflow

`kn-plugin-workflow` is a plugin of the Knative Client, to enable users to quickly set up a local SonataFlow project from the command line.

[Read the documentation](https://sonataflow.org/serverlessworkflow/main/testing-and-troubleshooting/kn-plugin-workflow-overview.html)

## Build from source

All the commands in this section should be performed in the monorepo root.

### Prerequisites

- Node `>= 18.14.0` _(To install, follow these instructions: https://nodejs.org/en/download/package-manager/)_
- pnpm `8.7.0` _(To install, follow these instructions: https://pnpm.io/installation)_
- Go `1.21.5` _(To install, follow these instructions: https://go.dev/doc/install)_

#### Prerequisites for running end-to-end tests

- docker _(To install, follow these instructions: https://docs.docker.com/engine/install)_
- podman _(To install, follow these instructions: https://podman.io/docs/installation)_

### Installing and linking dependencies

The following command will install the `kn-plugin-workflow` dependencies and link it with any other monorepo
package that is listed in the `package.json`:

- `pnpm bootstrap -F "@kie-tools/kn-plugin-workflow..."`

### Building

It has two different strategies to build the `kn-plugin-workflow`:

- `build:dev` _(The build will generate one artifact that is compatible with your local machine)_
- `build:prod` _(The build will generate artifacts for all available architecture and run the available tests)_

To build the `kn-plugin-workflow` run the following command:

- `pnpm -r -F "@kie-tools/kn-plugin-workflow..." <build-strategy>`

#### Plugin/artifact location

The artifact(s) generated by running the above command are placed in the `packages/kn-plugin-workflow/dist` directory.

### End to End Tests

To build the `kn-plugin-workflow` and run end-to-end tests, use the following commands:

- `export KIE_TOOLS_BUILD__runEndToEndTests=true`
- `pnpm -r -F "@kie-tools/kn-plugin-workflow..." build:prod`
