She is an opinionated client
for Bob and takes care of the following tasks:
- Implement a full CLI to all of Bob's REST API with corresponding and semantic commands
- Read a
build.toml
file and translate to REST API calls to Bob - Plan a build:
- Bob doesnt know of the order of execution of pipelines
- Wendy reads the dependencies of a pipeline on other pipelines and schedules them accordingly
- Trigger all of the upstream pipelines of a pipeline such that Bob can proceed with the builds
Wendy is a reference client for Bob implementing a build with certain opinions but others are encouraged to build their own CLIs using Bob as an engine in ways they see fit.
This is a work in progress in conjunction with Bob and will be evolving.
TBD
- Graal VM
- Clojure CLI(faster) or Leiningen(better Windows support).
- A running instance of Bob
Installing GraalVM:
- Download and extract GraalVM CE. Go to the extracted location and navigate to the directory where you can find bin, lib, jre and other directories.
- Run
export GRAALVM_HOME=$PWD
.
Clone the repo and from the repo directory:
- Run
clojure -A:test -m kaocha.runner
if using Clojure CLI orlein kaocha
with leiningen. - Run
$GRAALVM_HOME/bin/gu install native-image
to get the Graal native compiler. - Run
clojure -A:native-image
if using Clojure CLI orlein native-image
with leiningen to compile it to a native executable. (Warning: Quite a resource heavy step) - The executable is found in
target/
if compiled via Clojure CLI or in/target/default+uberjar/
with leiningen. - Running
./wendy can-we-build-it
should output"Yes we can! ๐จ ๐จ"