Hey Bruno,
Yeah, the SQL style syntax is exactly the sort of thing I am wishing I could apply to Job properties and other entities within Jenkins as well.
Since we need Folders for RBAC anyway, Folders end up being our single and dominant form of metadata and we use them to define product based job groups. That works okay, but in particular, its a poor mechanism for fetching the list of all products that went to production this past Thursday, which on the surface of it, would be a perfectly normal question to ask a build manager.
As I see it, there are three types of settings/metadata I would want to track....
- Config settings established prior to a job run: what repositories, what security context, what Docker image, which type of build-step constructors are being used, what slave pool should be used, what test environments should be used, who gets notified, etc....
- Settings that are purely metadata: what project name do I want to apply to these groups of Jenkins items, what are the sorts of stage/environment names I want to use across projects to track comparative progress between projects...
- Results determined by the job execution: What artifacts were made, what compute units actually did the build, how long did it take, did it succeed, where did the artifacts go...
For the Config settings, it seems helpful to me that these setting be robustly accessible prior to the job running, as one of the key things one might want to examine is how the planned process ends up comparing to the factual results. These being computers, of course they will do what you tell them, but you might have open pieces in your job-chain that someone else can edit, or your rules may be so abstract and complicated comparing the expected to the actual is often a very useful visualization.
For the purely metadata, I would hope that they would be minimal, as it is often difficult to know in advance the ways you will want to sort and group your information later.
And for the results set, it really feels to me that the Jenkins Job centered approach might not be right here. It might be better to look first at the artifacts, which are obviously related to the job, but are the product of it, and thus slightly different.
Have you used our new CloudBees Analytics plugins at all?
They are meant to do some of this results and post-process settings sorting.
Thanks Bruno,
Always a pleasure.
Gus