{:title "JSON example" :category :getting-started :index 40 :related [["intro/basic-example" "Basic example"] ["intro/useful-example" "A more useful example"] ["intro/edn-example" "Edn example"] ["intro/yaml-example" "Yaml example"] ["jobs" "Jobs"]]}
Next to EDN and YAML, MonkeyCI also
supports JSON. This is a very widely supported format, and the lingua franca
for just about every machine-to-machine communication over the web.
Similar to EDN and YAML, JSON is only usable for simple scripts. These three
formats are mostly interchangeable so you can use either. You can even combine them, as
MonkeyCI will read all files with supported extensions in the .monkeyci/ directory.
Below is a basic build configuration for a single job, stored in
.monkeyci/build.json:
{
"id": "echo-job",
"image": "docker.io/alpine:latest",
"script": ["echo \"Hi there, this is a test\""]
}
Of course, multiple jobs are also possible:
[
{
"id": "test",
"image": "docker.io/maven:latest",
"script": ["mvn verify"],
"saveArtifacts":
[
{ "id": "target", "path": "target/"}
]
},
{
"id": "publish",
"image": "docker.io/maven:latest",
"script": ["mvn deploy:deploy"],
"dependencies": ["test"],
"restoreArtifacts":
[
{ "id": "target", "path": "target/"}
]
}
]
This build script declares two jobs: test, which runs Java unit tests using
Apache Maven, and publish, which publishes the
artifacts and which is dependent on the test job in order to execute.
The test job also saves artifacts to pass on to the publish job.
As stated, this is only useful for the simplest build scripts. As soon as you need
conditions or you want to run action jobs, you'll need to
code your scripts using Clojure. Don't forget you can also combine
JSON with Clojure code!
Can you improve this documentation?Edit on GitHub
cljdoc builds & hosts documentation for Clojure/Script libraries
| Ctrl+k | Jump to recent docs |
| ← | Move to previous article |
| → | Move to next article |
| Ctrl+/ | Jump to the search field |