Junction Workflow is an upcoming workflow engine that uses compacted Kafka topics to manage state transitions of workflows that users pass into it. It is designed to take multiple workflow definition formats.
It is currently under active development.
- Moby or Docker installed
- Kubernetes environment setup
First need to build your images and upload them to a registry that kubernetes can pull from
make build-images
REGISTRY=example.com make publish-images
kubectl create secret generic jw-gh-token \
--from-literal=JW_GH_TOKEN=<your gh token>
kubectl create configmap jw-config --from-literal=JW_GH_ORGS=<comma-separated list of github orgs you'd like to scan>
make deploy-k8s
- Java version 17 from then set
JAVA_HOME
appropriately. - If you want to use CIX as one of the workflow declarations Install CIX
$ ./gradlew build
Generate a personal access token by going to https://github.com/settings/tokens.
It only needs these permissions: public_repo, read:org, repo:invite, repo:status, repo_deployment
export JW_GH_ORGS=your-org-with-workflow-definitions,comma-separated
export JW_GH_TOKEN=<paste token from above>
The E2ETest will spin up all components, including an embedded local Kafka and put the UI on http://localhost:8888 by default. The test runs for exactly 5 minutes before it shuts itself down.
$ export JW_GH_ORGS=your-org-with-workflow-definitions-samples
$ export JW_GH_TOKEN=<paste token from above>
$ ./gradlew integrationTest