Enable declarative projects.
This allows fully declarative project specifications. This is best
illustrated by example:
* I create a new project, setting the declarative spec file to
"spec.json" and the declarative input to a git repo pointing
at git://github.com/shlevy/declarative-hydra-example.git
* hydra creates a special ".jobsets" jobset alongside the project
* Just before evaluating the ".jobsets" jobset, hydra fetches
declarative-hydra-example.git, reads spec.json as a jobset spec,
and updates the jobset's configuration accordingly:
{
"enabled": 1,
"hidden": false,
"description": "Jobsets",
"nixexprinput": "src",
"nixexprpath": "default.nix",
"checkinterval": 300,
"schedulingshares": 100,
"enableemail": false,
"emailoverride": "",
"keepnr": 3,
"inputs": {
"src": { "type": "git", "value": "git://github.com/shlevy/declarative-hydra-example.git", "emailresponsible": false },
"nixpkgs": { "type": "git", "value": "git://github.com/NixOS/nixpkgs.git release-16.03", "emailresponsible": false }
}
}
* When the "jobsets" job of the ".jobsets" jobset completes, hydra
reads its output as a JSON representation of a dictionary of
jobset specs and creates a jobset named "master" configured
accordingly (In this example, this is the same configuration as
.jobsets itself, except using release.nix instead of default.nix):
{
"enabled": 1,
"hidden": false,
"description": "js",
"nixexprinput": "src",
"nixexprpath": "release.nix",
"checkinterval": 300,
"schedulingshares": 100,
"enableemail": false,
"emailoverride": "",
"keepnr": 3,
"inputs": {
"src": { "type": "git", "value": "git://github.com/shlevy/declarative-hydra-example.git", "emailresponsible": false },
"nixpkgs": { "type": "git", "value": "git://github.com/NixOS/nixpkgs.git release-16.03", "emailresponsible": false }
}
}
This commit is contained in:
@@ -30,6 +30,9 @@ create table Projects (
|
||||
hidden integer not null default 0,
|
||||
owner text not null,
|
||||
homepage text, -- URL for the project
|
||||
declfile text, -- File containing declarative jobset specification
|
||||
decltype text, -- Type of the input containing declarative jobset specification
|
||||
declvalue text, -- Value of the input containing declarative jobset specification
|
||||
foreign key (owner) references Users(userName) on update cascade
|
||||
);
|
||||
|
||||
|
||||
4
src/sql/upgrade-48.sql
Normal file
4
src/sql/upgrade-48.sql
Normal file
@@ -0,0 +1,4 @@
|
||||
-- Add declarative fields to Projects
|
||||
alter table Projects add column declfile text;
|
||||
alter table Projects add column decltype text;
|
||||
alter table Projects add column declvalue text;
|
||||
Reference in New Issue
Block a user