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
Clone the repo and in the repo and:
- Run
clojure -A:test -m kaocha.runner
if using Clojure CLI orlein kaocha
with leiningen. - Set the
GRAALVM_HOME
env var to the path:<graal_download_path>/Home
. - Run
<graal_donwload_path>/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 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! 🔨 🔨"