This repo specifies details of messages, which should be sent out by Upstream/Downstream CI systems to fedmsg/UMB on events related to artifacts testing. Currently there is low unification of these messages and there are various types of messages sent out by the CI systems. Unification will make it possible to build simpler services which will provide useful features for everyone.
The message format is described by JSON Schema. In order to
allow better readability and review we store the schemas in the
YAML format. Use make convert
to convert the spec into JSON.
Repository contains also a set of example messages which can be
validated against the specification using make test
. Use
make clean
to clean up all temporary files. Run make
to
convert spec, validate messages and clean up in a single step.
Note: Make sure that python-jsonschema
and python-anymarkup
are installed on your system when converting specification and
validating examples.
When implementing CI Messages specification in your application it
is a good idea to validate generated messages against the schema.
Make sure that schemas are converted and run the validate.py
script to ensure your message.json
file has proper format:
make convert ./scripts/validate.py schemas/brew-build.test.complete.json message.json
The messages will use a unique UMB virtual topic namespace to mitigate collisions with other systems:
UMB: /topic/VirtualTopic.eng.ci fedmsg: org.fedoraproject.prod.ci
For all the tests on all the artifacts the systems will use this topic naming convention:
UMB: /topic/VirtualTopic.eng.ci.<artifact>.test.{queued,running,complete,error} fedmsg: org.fedoraproject.prod.ci.<artifact>.test.{queued,running,complete,error}
where artifact
is one of the defined build artifacts, for
example:
All data should be stored in the body of the message. Additional fields can be added to the messages as required by the senders, although it is advised to document them here.
Syntax requirements for field names:
[a-z0-9_]
Syntax requirements for field values:
true
or false