From 69ceb5c44c1a2d1799279d49b066a75c5fe53089 Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Thu, 23 Aug 2018 12:39:32 +0200 Subject: Spec CI functionality --- mod/options.cli | 90 ++++++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 86 insertions(+), 4 deletions(-) (limited to 'mod/options.cli') diff --git a/mod/options.cli b/mod/options.cli index 59aceb6..33ed9a1 100644 --- a/mod/options.cli +++ b/mod/options.cli @@ -444,7 +444,7 @@ namespace brep { "", "The handler program to be executed on package submission. The handler - is executed as part of the submission request and is passed additional + is executed as part of the HTTP request and is passed additional arguments that can be specified with \cb{submit-handler-argument} followed by the absolute path to the submission directory. See \l{brep The \cb{build2} Repository Interface Manual} for more @@ -462,9 +462,69 @@ namespace brep size_t submit-handler-timeout { "", - "The handler program timeout in seconds. If specified and the handler - does not exit in the alloted time, then it is killed and its - termination is treated as abnormal." + "The submission handler program timeout in seconds. If specified and + the handler does not exit in the allotted time, then it is killed and + its termination is treated as abnormal." + } + }; + + class ci: page, handler + { + dir_path ci-data + { + "", + "The directory to save CI request data to. If unspecified, the + package CI functionality will be disabled. See \l{brep The + \cb{build2} Repository Interface Manual} for more information on + package CI. + + Note that the directory path must be absolute and the directory + itself must exist and have read, write, and execute permissions + granted to the user that runs the web server." + } + + path ci-form + { + "", + "The package CI form fragment. If specified, then its contents are + treated as an XHTML5 fragment that is inserted into the + element of the CI page. If unspecified, then no CI page will be + displayed. Note that the file path must be absolute." + } + + string ci-email + { + "", + "The package CI email. If specified, the CI request and result + manifests will be sent to this address. See \l{brep The \cb{build2} + Repository Interface Manual} for more information." + } + + path ci-handler + { + "", + "The handler program to be executed on CI request. The handler is + executed as part of the HTTP request and is passed additional + arguments that can be specified with \cb{ci-handler-argument} + followed by the absolute path to the CI request directory. See + \l{brep The \cb{build2} Repository Interface Manual} for more + information. Note that the program path must be absolute." + } + + strings ci-handler-argument + { + "", + "Additional arguments to be passed to the CI handler program (see + \cb{ci-handler} for details). Repeat this option to specify multiple + arguments." + } + + size_t ci-handler-timeout + { + "", + "The CI handler program timeout in seconds. If specified and the + handler does not exit in the allotted time, then it is killed and + its termination is treated as abnormal." } }; @@ -655,5 +715,27 @@ namespace brep // string simulate; }; + + // Parameters, except simulate, must either be all present (actual CI + // request) or absent (CI form request). + // + // Note also that besides these parameters there can be others. We don't + // recognize their semantics and just save them to the CI request + // manifest. + // + class ci + { + // Package repository URL. + // + url repository; + + // Package names/versions. + // + strings package; + + // Submission simulation outcome. + // + string simulate; + }; } } -- cgit v1.1