I wanted to put together a draft of what I think a Job COB could look like, that allows nodes to collaborate on running jobs for a given commit.
The basic idea is that Job is for a single commit (Oid), and any node in the
network can commit to running the job for that entry.
Each node can run that job as many times as it wants, as long as it provides a UUID for that run, so we can uniquely identify a new run.
Nodes can only say they’ve started and say they finished, giving success or failure as the reason.
The only bit of extra information is that a Run holds a log: Url to point
to.
I believe this should be minimal enough for our use cases:
- Reference updates can be listened for to see if there are new requests, and the node can have its own list of whom it wants to run jobs for
- A user can list jobs and their history
- We can see if things have failed or succeeded
- We have a URL to follow for accessing logs or artifacts
I wanted to put together a draft of what I think a Job COB could look like, that allows nodes to collaborate on running jobs for a given commit.
The basic idea is that Job is for a single commit (Oid), and any node in the
network can commit to running the job for that entry.
Each node can run that job as many times as it wants, as long as it provides a UUID for that run, so we can uniquely identify a new run.
Nodes can only say they’ve started and say they finished, giving success or failure as the reason.
The only bit of extra information is that a Run holds a log: Url to point
to.
I believe this should be minimal enough for our use cases:
- Reference updates can be listened for to see if there are new requests, and the node can have its own list of whom it wants to run jobs for
- A user can list jobs and their history
- We can see if things have failed or succeeded
- We have a URL to follow for accessing logs or artifacts