The best tool you'll ever find to build your Promises!
To install the CLI, run:
go install github.com/syntasso/kratix-cli/cmd/kratix@latestTo build a dev version of the CLI, run:
make buildThe binary will be available at ./bin/kratix.
To bootstrap the Promise, you can use kratix init promise command:
kratix init promise PROMISE-NAME --group API-GROUP --kind API-KIND [--version] [--plural] [--split]
To update the Promise API, you can use the kratix update api command:
kratix update api --property PROPERTY-NAME:string -p PROPERTY-NAME:number [-p PROPERTY-NAME-] [--kind]
To add workflow containers, you can use the kratix add container command:
kratix add container WORKFLOW/ACTION/PIPELINENAME --image CONTAINER-IMAGE [--name] [--language]
If you added containers with kratix add container command, you can build and push these containers by running:
kratix build container LIFECYCLE/ACTION/PIPELINE-NAME [flags]
This command supports docker and podman as the build engine, and you can provide an optional flag --push to
push the container after building it.
To add Promise dependencies, you can run the kratix update dependencies dependencies command:
kratix update dependencies DEPENDENCIES-DIRECTORY/
To update Destination selectors of the Promise, you can use the kratix update destination-selector command:
kratix update destination-selector env=dev
If you initialized the Promise by providing --split flag in kratix init promise command, run
the kratix build promise command to combine the Promise api, workflow, and dependencies:
kratix build promise PROMISE-NAME
To see helpful messages about using the cli, you can run:
kratix help
kratix help init
kratix help update api
kratix add container --help
To run the tests, run:
make testTo release merge the auto-created Release PR
(example). This PR is auto
created by the Release Please
Github Action we have in our .github/workflows/release.yml file. When this PR
is merged the following happens:
- A tag and Github release is created. The release notes is equal to the contents of the PRs description (NOT the contents of the file committed).
- Goreleaser gets triggered in Github actions, creating and uploading the binaries to the existing release.