aboutsummaryrefslogtreecommitdiff
path: root/doc/schema-job.rst
blob: 64135f96893d7a2e956b322c4b7935646fa45a70 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
.. _schema_job:

job
---

A job ``name`` is composed of an actual job name and a kernel name: ``job``-``kernel``.

At a lower level, a job is the top level directory of the results from a CI
build.

.. _schema_job_get:

GET
***

::

    {
        "title": "job",
        "description": "A job as provided by the CI loop",
        "type": "object",
        "properties": {
            "version": {
                "type": "string",
                "description": "The version number of this JSON schema",
                "enum": ["1.0"]
            },
            "_id": {
                "type": "string",
                "description": "The ID associated with this object"
            },
            "name": {
                "type": "string",
                "description": "The name of the object"
            },
            "created_on": {
                "type": "object",
                "description": "Creation date of the object",
                "properties": {
                    "$date": {
                        "type": "number",
                        "description": "Milliseconds from epoch time"
                    }
                }
            },
            "private": {
                "type": "boolean",
                "description": "If the job is private or not",
                "default": false
            },
            "kernel": {
                "type": "string",
                "description": "The name of the kernel"
            },
            "job": {
                "type": "string",
                "description": "The name of the job"
            },
            "status": {
                "type": "string",
                "description": "The status of the job",
                "enum": ["BUILD", "FAIL", "PASS", "UNKNOWN"]
            },
            "git_branch": {
                "type": "string",
                "description": "The name of the branch"
            },
            "git_commit": {
                "type": "string",
                "description": "The git SHA of the commit used for the build"
            },
            "git_describe": {
                "type": "string",
                "description": "The name of the git describe command"
            },
            "git_url": {
                "type": "string",
                "description": "The URL of the git web interface where the code used to build can be found"
            }
        }
    }

.. _schema_job_post:

POST
****

The following schema covers the data that should be available in the JSON
data sent to the server.

::

    {
        "title": "job",
        "description": "A job data to trigger build import",
        "type": "object",
        "properties": {
            "version": {
                "type": "string",
                "description": "The version number of this JSON schema",
                "enum": ["1.0"]
            },
            "job": {
                "type": "string",
                "description": "The job associated with this object"
            },
            "kernel": {
                "type": "string",
                "description": "The kernel associated with this object"
            },
            "boot_report": {
                "type": "boolean",
                "description": "If the boot report should be created and sent",
                "default": 0
            },
            "build_report": {
                "type": "boolean",
                "description": "If the build report should be created and sent",
                "default": 0
            },
            "boot_send_to": {
                "type": ["array", "string"],
                "description": "A single email address or a list of addresses where to send the boot report"
            },
            "build_send_to": {
                "type": ["array", "string"],
                "description": "A single email address or a list of addresses where to send the build report"
            },
            "send_to": {
                "type": ["array", "string"],
                "description": "A single email address or a list of addresses where to send the reports"
            }
        },
        "required": ["job", "kernel"]
    }

Notes
+++++

* By default boot and build reports will not be created nor sent. It is necessary to explicitly set both via ``boot_report`` and ``build_report``.

* ``boot_send_to`` and ``build_send_to`` will each be combined with ``send_to`` to create a list of email addresses (``boot_send_to`` + ``send_to``; ...).


More Info
*********

* :ref:`Job resource <collection_job>`
* :ref:`API results <intro_schema_results>`
* :ref:`Schema time and date <intro_schema_time_date>`