Getting started
Bombadil runs on your development machine if you’re on macOS or Linux. You can use it to validate changes to TypeScript specifications, and to run short tests while working on your system. Then you’ll have something like GitHub Actions to run longer tests on your main branch or in nightlies.
Installation
The most straightforward way for you to get started is downloading the executable for your platform:
macOS
Download the bombadil binary using
curl (or wget) and make it
executable:
curl -L -o bombadil https://github.com/antithesishq/bombadil/releases/download/v0.3.1/bombadil-aarch64-darwin
chmod +x bombadilPut the binary somewhere on your PATH, like in
~/.local/bin if that is configured.
mv ./bombadil ~/.local/bin/bombadilYou should now be able to run it:
bombadil --versionDo not download the executable with your web browser. It will be blocked by GateKeeper.
Linux
Download the bombadil binary and make it
executable:
curl -L -o bombadil https://github.com/antithesishq/bombadil/releases/download/v0.3.1/bombadil-x86_64-linux
chmod +x bombadilPut the binary somewhere on your PATH, like in
~/.local/bin if that is configured.
mv ./bombadil ~/.local/bin/bombadilYou should now be able to run it:
bombadil --versionNix (flake)
nix run github:antithesishq/bombadilNot yet available, but coming soon:
- executables bundled in NPM package
(i.e.
npx @antithesishq/bombadil) - Docker images
- a GitHub Action, ready to be used in your CI configuration
If you want to compile from source, see Contributing.
TypeScript support
When writing specifications in TypeScript, you’ll want the types available. Get them from NPM with your package manager of choice:
npm
npm install --save-dev @antithesishq/bombadilYarn
yarn add --dev @antithesishq/bombadilBun
bun add --development @antithesishq/bombadilOr use the files provided in the release package.
Your first test
With the CLI installed, let’s run a test just to see that things are working:
bombadil test https://en.wikipedia.org --output-path my-testThis will run until you shut it down using
CTRL+C. Any property violations will be
logged as errors, and with the --output-path option
you get a JSONL file to inspect afterwards.
Find the URLs with violations (assuming you have
jq installed):
jq -r 'select(.violations != []) | .url' my-test/trace.jsonlNothing? That’s fine, Wikipedia is pretty solid! This confirms that Bombadil runs and produces results.
Bombadil doesn’t yet produce a human-readable test report, so
this requires some jq trickery. Stay tuned, better
UIs are on their way!